blob: 5281707152cc448a9fb9bd4e6ccce0177359cea6 [file]
<!DOCTYPE html>
<script src="../resources/js-test.js"></script>
<script src="../resources/accessibility-helper.js"></script>
<ul id="target1" role="menubar">
<li id="descendant1" role="menuitem">a</li>
</ul>
<ul id="target2" role="menubar">
<li id="descendant2" role="menuitem">b</li>
</ul>
<ul id="target3" role="menubar">
<li id="descendant3" role="menuitem">c</li>
</ul>
<script>
description("Checks that element reflection is exposed to the a11y tree for 'ariaActiveDescendantElement'");
if (!window.accessibilityController) {
debug("This test requires accessibilityController");
} else {
window.jsTestIsAsync = true
var ax = accessibilityController;
var axTarget1, axTarget2, axDescendant2, axDescendantFirstChild, axTarget3, axDescendant3;
var output = "";
setTimeout(function() {
target1.ariaActiveDescendantElement = descendant1;
axTarget1 = accessibilityController.accessibleElementById("target1");
axDescendant1 = accessibilityController.accessibleElementById("descendant1");
output += expect("axTarget1.selectedChildrenCount", "1");
output += expect("axTarget1.selectedChildAtIndex(0).isEqual(axDescendant1)", "true");
target2.ariaActiveDescendantElement = descendant2;
target2.setAttribute("aria-activedescendant", "descendant2");
axTarget2 = accessibilityController.accessibleElementById("target2");
axDescendant2 = accessibilityController.accessibleElementById("descendant2");
axDescendantFirstChild = axTarget2.childAtIndex(0);
output += expect("axTarget2.selectedChildrenCount", "1");
output += expect("axTarget2.selectedChildAtIndex(0).isEqual(axDescendantFirstChild)", "true");
target2.setAttribute("aria-activedescendant", "descendant2");
output += expect("axTarget2.selectedChildrenCount", "1");
output += expect("axTarget2.selectedChildAtIndex(0).isEqual(axDescendant2)", "true");
target3.ariaActiveDescendantElement = descendant3;
descendant3.id = "descendant3-new";
axTarget3 = accessibilityController.accessibleElementById("target3");
axDescendant3 = accessibilityController.accessibleElementById("descendant3-new");
output += expect("axTarget3.selectedChildrenCount", "1");
output += expect("axTarget3.selectedChildAtIndex(0).isEqual(axDescendant3)", "true");
debug(output);
finishJSTest();
}, 0);
}
</script>