| <!DOCTYPE html> | |
| <html> | |
| <body> | |
| <script src="../../resources/js-test.js"></script> | |
| <script src="../../resources/accessibility-helper.js"></script> | |
| <custom-button id="item-1"></custom-button> | |
| <custom-button id="item-2" aria-hidden="false"></custom-button> | |
| <custom-button id="item-3" aria-hidden="false" aria-invalid="spelling" aria-keyshortcuts="Command + T"></custom-button> | |
| <script> | |
| customElements.define('custom-button', class CustomElement extends HTMLElement { | |
| constructor() | |
| { | |
| super(); | |
| const internals = this.attachInternals(); | |
| internals.role = 'button'; | |
| internals.ariaHidden = 'true'; | |
| internals.ariaInvalid = 'grammar'; | |
| internals.ariaKeyShortcuts = "Shift + E"; | |
| } | |
| }); | |
| description("This tests that aria fallback roles work correctly."); | |
| if (!window.accessibilityController) | |
| debug('This test requires accessibilityController'); | |
| else { | |
| shouldBe('accessibilityController.accessibleElementById("item-1")', 'null'); | |
| shouldBeEqualToString('accessibilityController.accessibleElementById("item-2").role', 'AXRole: AXButton'); | |
| shouldBeEqualToString('accessibilityController.accessibleElementById("item-2").stringAttributeValue("AXInvalid")', 'grammar'); | |
| shouldBeEqualToString('accessibilityController.accessibleElementById("item-2").stringAttributeValue("AXKeyShortcutsValue")', 'Shift + E'); | |
| shouldBeEqualToString('accessibilityController.accessibleElementById("item-3").role', 'AXRole: AXButton'); | |
| shouldBeEqualToString('accessibilityController.accessibleElementById("item-3").stringAttributeValue("AXInvalid")', 'spelling'); | |
| shouldBeEqualToString('accessibilityController.accessibleElementById("item-3").stringAttributeValue("AXKeyShortcutsValue")', 'Command + T'); | |
| } | |
| </script> | |
| </body> | |
| </html> |