<html>
<script>
    if (window.layoutTestController)
        layoutTestController.dumpAsText();
</script>
<body id="body">
        
    <table id="testTable1" rules="rows"><tr><td>asdf</td><td>asdf</td></tr></table>
    <table id="testTable2" rules="all"><tr><td>asdf</td><td>asdf</td></tr></table>
    <table id="testTable3" rules="col"><tr><td>asdf</td><td>asdf</td></tr></table>
    <table id="testTable4" rules="groups"><tr><td>asdf</td><td>asdf</td></tr></table>
    <table id="testTable5"><tr><td>asdf</td><td>asdf</td></tr></table>
    
    <BR>------------------------------------<BR>
    
    <div id="result"></div>
 
    <script>
        if (window.accessibilityController) {
            var result = document.getElementById("result");
            var body = document.getElementById("body");
            body.focus();
            
            // these should be the tables. in this order
            // the last two tables should not show up as tables
            for (var k = 1; k < 6; k++) {
                var table = accessibilityController.focusedElement.childAtIndex(k);
                result.innerText += table.allAttributes() + "\n\n"; 
            }
        }
    </script>
</body>
</html>
