blob: cdc3debb9fddb3d25f1cc0b9b228d54d386d0550 [file] [log] [blame] [edit]
<!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>