| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="../../resources/js-test.js"></script> |
| <script src="../../resources/accessibility-helper.js"></script> |
| <custom-button id="button-1"></custom-button> |
| <custom-button id="button-2" aria-pressed="false" aria-required="false" aria-selected="false"></custom-button> |
| <script> |
| |
| customElements.define('custom-button', class CustomButton extends HTMLElement { |
| constructor() |
| { |
| super(); |
| const internals = this.attachInternals(); |
| internals.role = 'button'; |
| internals.ariaPressed = 'true'; |
| internals.ariaRequired = 'true'; |
| internals.ariaSelected = 'true'; |
| } |
| }); |
| |
| description("This tests that aria fallback roles work correctly."); |
| if (!window.accessibilityController) |
| debug('This test requires accessibilityController'); |
| else { |
| shouldBeEqualToString('accessibilityController.accessibleElementById("button-1").role', 'AXRole: AXCheckBox'); |
| shouldBeEqualToString('accessibilityController.accessibleElementById("button-1").stringValue', 'AXValue: 1'); |
| shouldBeTrue('accessibilityController.accessibleElementById("button-1").isRequired'); |
| shouldBeTrue('accessibilityController.accessibleElementById("button-1").isSelected'); |
| shouldBeEqualToString('accessibilityController.accessibleElementById("button-2").role', 'AXRole: AXCheckBox'); |
| shouldBeEqualToString('accessibilityController.accessibleElementById("button-2").stringValue', 'AXValue: 0'); |
| shouldBeFalse('accessibilityController.accessibleElementById("button-2").isRequired'); |
| shouldBeFalse('accessibilityController.accessibleElementById("button-2").isSelected'); |
| } |
| |
| </script> |
| </body> |
| </html> |