blob: e5a58e36b6a42c0c8eaf22a3d68e2610f4e617ce [file] [log] [blame]
<!DOCTYPE HTML>
<script src="../resources/gc.js"></script>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<!--
Accessibility Object Model
Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
Spec: https://wicg.github.io/aom/spec/
-->
<script>
test(function(t) {
assert_true(internals.runtimeFlags.accessibilityObjectModelEnabled);
}, "Make sure that Accessibility Object Model is enabled");
</script>
<div role="listbox" id="listbox" tabindex=0>
<div role="option" id="option1">Option 1</div>
<div role="option" id="option2">Option 2</div>
<div role="option" id="option3">Option 3</div>
</div>
<script>
test(function(t) {
var listbox = document.getElementById("listbox");
var option1 = document.getElementById("option1");
listbox.focus();
var axListbox = accessibilityController.accessibleElementById("listbox");
var axOption1 = accessibilityController.accessibleElementById("option1");
assert_false(axOption1.isSelected);
assert_equals(axListbox.ariaActiveDescendantElement(), undefined);
listbox.accessibleNode.activeDescendant = option1.accessibleNode;
assert_equals(axListbox.ariaActiveDescendantElement(), undefined);
// Previously, Active Descendant also makes the option selected. This check
// is here to verify that this no longer happens now that AccessibleNode is
// becoming uncoupled from the Accessibility Tree.
assert_false(axOption1.isSelected);
}, "AccessibleNode.activeDescendant");
</script>
<input id="input1">
<div id="details">Details</div>
<script>
test(function(t) {
var input1 = document.getElementById("input1");
var details = document.getElementById("details");
var axInput1 = accessibilityController.accessibleElementById("input1");
var axDetails = accessibilityController.accessibleElementById("details");
assert_equals(axInput1.ariaDetailsElement(), undefined);
input1.accessibleNode.details = details.accessibleNode;
assert_equals(axInput1.ariaDetailsElement(), undefined);
}, "AccessibleNode.details");
</script>
<input id="input2">
<div id="errorMessage">ErrorMessage</div>
<script>
test(function(t) {
var input2 = document.getElementById("input2");
var errorMessage = document.getElementById("errorMessage");
var axInput2 = accessibilityController.accessibleElementById("input2");
var axErrorMessage = accessibilityController.accessibleElementById("errorMessage");
assert_equals(axInput2.ariaErrorMessageElement(), undefined);
input2.accessibleNode.errorMessage = errorMessage.accessibleNode;
assert_equals(axInput2.ariaErrorMessageElement(), undefined);
}, "AccessibleNode.errorMessage");
</script>