| <!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> |