chromium/third_party/blink/web_tests/accessibility/aria-hidden-with-elements.html

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