<html>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();
</script>
<body id="body">
 
    <!-- This test makes sure that tables that are not exposed as tables do not have title ui elements incorrectly set  -->

<TABLE>
<tbody><tr><td colspan="6"><h2>ATS</h2></td></tr>
<tr>
<th>pass</th>
<th>issue</th>
<th>fail</th>
<th>blocked</th>
<th id="skip">skip</th>
<th>test</th>
</tr>
</tbody>
</tABLE>
    
    <div id="result"></div>

     
    <script>
        if (window.accessibilityController) {
            var result = document.getElementById("result");

            var pass = document.getElementById("body");
            // get the <th>skip</th> element
            var group = accessibilityController.accessibleElementById("skip");
            var titleUI = group.titleUIElement();
            var allAttributes = "";
            if (titleUI)
                allAttributes = titleUI.allAttributes();

            // verify it has no title ui element           
            if (!allAttributes) {
                result.innerText += "Test passed\n";
            }
            else {
                 result.innerText += "Test failed\n";
            }
        }
    </script>
</body>
</html>
