blob: f1a3cd8ecd2bb171c71e69028f153307afff5769 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test.js"></script>
<script src="../resources/accessibility-helper.js"></script>
</head>
<body>
<div role="group" tabindex="0" id="container">
<div role="button" id="button1" tabindex="0">Button 1</div>
<div role="button" id="button2" tabindex="0">Button 2</div>
<div role="button" id="button3" tabindex="0">Button 3</div>
</div>
<script>
description("This test makes sure that when aria-hidden changes, the AX hierarchy is updated.");
if (window.accessibilityController) {
window.jsTestIsAsync = true;
var container = accessibilityController.accessibleElementById("container");
var button1 = accessibilityController.accessibleElementById("button1");;
var button2 = accessibilityController.accessibleElementById("button2");;
var button3 = accessibilityController.accessibleElementById("button3");;
// Verify that the 3 buttons are present as children.
shouldBeTrue("container.childAtIndex(0).isEqual(button1)");
shouldBeTrue("container.childAtIndex(1).isEqual(button2)");
shouldBeTrue("container.childAtIndex(2).isEqual(button3)");
// Make the 2nd button hidden. Only 1 and 3 should be present.
document.getElementById("button2").setAttribute("aria-hidden", "true");
shouldBeTrue("container.childAtIndex(0).isEqual(button1)");
setTimeout(async function() {
await expectAsyncExpression("container.childAtIndex(1).isEqual(button3)", "true");
// Make the 1st button hidden. Only 3 should be present.
document.getElementById("button1").setAttribute("aria-hidden", "true");
await expectAsyncExpression("container.childAtIndex(0).isEqual(button3)", "true");
// Make the 2nd button not hidden. 2 and 3 should be present.
document.getElementById("button2").setAttribute("aria-hidden", "false");
await expectAsyncExpression("container.childAtIndex(0).isEqual(button2)", "true");
await expectAsyncExpression("container.childAtIndex(1).isEqual(button3)", "true");
finishJSTest();
}, 0);
}
</script>
</body>
</html>