<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<style>
.cell { display:table-cell; width:100px; border:solid red; }
</style>
<script src="../../resources/js-test-pre.js"></script>
<script src="../../resources/accessibility-helper.js"></script>
</head>
<body id="body">
<div id="content">
  <div>
    <span>Test 1</span>
    <h1><a href="foo">Test 1</a></h1>
    <h2>Test 1</h2>
    <p>Test 1</p>
  </div>
  <div>
    <span style="display:block;">Test 2</span>
    <h1><a href="foo">Test 2</a></h1>
    <h2>Test 2</h2>
    <p>Test 2</p>
  </div>
  <div>
    Test 3
    <h1><a href="foo">Test 3</a></h1>
    <h1>Test 3</h1>
    <h2>Test 3</h2>
    <p>Test 3</p>
  </div>
  <div>
    <h1><a href="foo">Test 4</a></h1>
    <h2>Test 4</h2>
    <p>Test 4</p>
  </div>
  <div style="display:table;">
    <div style="display:table-row;">
      <div class="cell">Test 5</div>
      <div class="cell"><span>Test 5</span></div>
      <div class="cell"><span style="display:block">Test 5</span></div>
    </div>
  </div>
  <p>Test 6</p>
  <p>
    <span>Test 7</span>
  </p>
  <p>
    <span style="display:block;">Test 8</span>
  </p>
  <p>
    Test 9
    <span>Test 9</span>
  </p>
  <p>
    Test 10
    <span style="display:block;">Test 10</span>
  </p>
  <p>
    Test 11
    <span>Test 11</span>
    <span style="display:block;">Test 11</span>
  </p>
  <p>
    <button>Test 12</button>
  </p>
  <p>
    Test 13
    <button>Test 13</button>
  </p>
  <p>
    <span>Test 14</span>
    <button>Test 14</button>
  </p>
  <p>
    <button>Test 15</button>
    <span style="display:block;">Test 15</span>
  </p>
  <div id="stopElement">End of test</div>
</div>
<pre id="tree"></pre>
<p id="description"></p>
<div id="console"></div>
<script>
    description("This verifies the accessibility tree when there are nested block element children.");
    if (window.accessibilityController) {
        document.body.focus();
        var stopElement = accessibilityController.accessibleElementById("stopElement");
        dumpAccessibilityTree(accessibilityController.focusedElement, stopElement, 0);
    }
    document.getElementById("content").style.visibility = "hidden";
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
