<html>
<script>
    if (window.layoutTestController)
        layoutTestController.dumpAsText();
</script>
<body id="body">

    <table border=1 role="button">
       <tr><td>test</td><td>test</td><td>test</td></tr>
       <tr><td>test</td><td>test</td><td>test</td></tr>
    </table>

    <table border=1 role="menu">
       <tr><td>test</td><td>test</td><td>test</td></tr>
       <tr><td>test</td><td>test</td><td>test</td></tr>
    </table>

    <div id="result"></div>
    
    <script>
        if (window.accessibilityController) {
            var body = document.getElementById("body");
            body.focus();
            result.innerText += accessibilityController.focusedElement.attributesOfChildren();
        }
    </script>
</body>
</html>
