| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../resources/js-test.js"></script> |
| </head> |
| <body id="body"> |
| |
| <div id="container" aria-label="container"> |
| |
| <table border=1 summary="test" aria-hidden="true"> |
| <tr><td>cell</td><td>cell</td><td>cell</td></tr> |
| <tr><td>cell</td><td>cell</td><td>cell</td></tr> |
| </table> |
| |
| <div role="grid" aria-hidden="true"> |
| <div role="row"> |
| <div role="gridcell">cell</div> |
| </div> |
| </div> |
| |
| <ul aria-hidden="true"> |
| <li>test |
| <li>test |
| </ul> |
| |
| <div aria-label="wrapper"> |
| <div role="listbox" aria-hidden="true"> |
| <div role="option">option</div> |
| <div role="option">option</div> |
| </div> |
| </div> |
| |
| <h1>heading</h1> |
| |
| </div> |
| |
| <button style="display:none" aria-describedby="body">Do not remove aria-hidden nodes from tree within #body</button> |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| |
| description("This tests that aria-hidden works as expected on elements that are subclasses of AccessibilityRenderObject"); |
| |
| if (window.accessibilityController) { |
| var container = accessibilityController.accessibleElementById("container"); |
| // first child is a table that has an unignored rowgroup. |
| // the rowgroup's child has 0 unignored children. |
| var child_1 = container.childAtIndex(0); |
| shouldBe("child_1.childrenCount", "1") |
| var grandchild_1 = child_1.childAtIndex(0); |
| shouldBeTrue("grandchild_1.isIgnored"); |
| |
| shouldBe("grandchild_1.childrenCount", "2") |
| for (let i = 0; i < grandchild_1.childrenCount; ++i) { |
| shouldBeTrue("grandchild_1.childAtIndex(" + i + ").isIgnored"); |
| } |
| |
| // second child is a grid that has 0 unignored children |
| var child_2 = container.childAtIndex(1); |
| for (let i = 0; i < child_2.childrenCount; ++i) { |
| shouldBeTrue("child_2.childAtIndex(" + i + ").isIgnored"); |
| } |
| |
| // third child is a list with 0 unignored children |
| var child_3 = container.childAtIndex(2); |
| shouldBe("child_3.childrenCount", "2") |
| for (let i = 0; i < child_3.childrenCount; ++i) { |
| shouldBeTrue("child_3.childAtIndex(" + i + ").isIgnored"); |
| } |
| |
| // fourth child is a container with an ignored listbox |
| var child_4 = container.childAtIndex(3); |
| shouldBe("child_4.childrenCount", "1") |
| shouldBe("child_4.role", "'AXRole: AXGenericContainer'"); |
| shouldBeFalse("child_4.isIgnored"); |
| shouldBeTrue("child_4.childAtIndex(0).isIgnored"); |
| |
| // fith child is a heading |
| var child_5 = container.childAtIndex(4); |
| shouldBeFalse("child_5.isIgnored"); |
| shouldBe("child_5.role", "'AXRole: AXHeading'"); |
| } |
| |
| </script> |
| |
| </body> |
| </html> |