<html>
<script>
    if (window.layoutTestController)
        layoutTestController.dumpAsText();
</script>
<body id="body">
    
    <table cellpadding="0" cellspacing="0" border="1" width="100%">
        <thead>
            <tr>
                <th class="jive-first-last">
                    <table cellpadding="0" cellspacing="0" border="1" width="100%">
                        <thead>
                            <tr>
                                <th width="1%"> Test </th>
                            </tr>
                        </thead>
                    </table>
                </th>
            </tr>
        </thead>
    </table>
    
    <div id="result"></div>
    
    <script>
        if (window.accessibilityController) {
            var body = document.getElementById("body");
            body.focus();
            var table = accessibilityController.focusedElement.childAtIndex(0);
            var row = table.childAtIndex(0);
            var cell = row.childAtIndex(0);
            var table2 = cell.childAtIndex(0);

            result.innerText += "Test passes if there is no crash\n\n";            
        }
    </script>
</body>
</html>
