chromium/third_party/blink/web_tests/accessibility/table-cell-spans.html

<html>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();
</script>
<body>
    
    <!-- Test image map -->
    <table id="testTable" align="center" border="1" cellpadding="5" cellspacing="0">
        <tr>
            <td class="center" colspan="2" rowspan="2" width="50%">Cell A<br>
                COLSPAN="2"<br> ROWSPAN="2"</td>
            
            <td class="center" colspan="2">Cell B<br> COLSPAN="2"</td>
            </tr>
        <tr>
            <td class="center">2,3</td>
            <td class="center">2,4</td>
            </tr>
        
        <tr class="center">
            <td class="center" rowspan="2">Cell C<br> ROWSPAN="2"</td>
            <td class="center" width="25%">3,2</td>
            <td class="center">3,3</td>
            <td class="center">3,4</td>
            </tr>
        
        <tr>
            <td class="center">4,2</td>
            <td class="center">4,3</td>
            <td class="center">4,4</td>
            </tr>
    </table>

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

            var table = accessibilityController.accessibleElementById("testTable");

            var cell = table.cellForColumnAndRow(0,0); 
            result.innerText += "----------------------\n";
            result.innerText += "{ 0, 0 }\n";
            result.innerText += cell.allAttributes() + "\n";
            result.innerText += cell.rowIndexRange() + ", " + cell.columnIndexRange()  + "\n\n"; 

            var cell = table.cellForColumnAndRow(1,1); 
            result.innerText += "----------------------\n";
            result.innerText += "{ 1, 1 }\n";
            result.innerText += cell.allAttributes() + "\n";
            result.innerText += cell.rowIndexRange() + ", " + cell.columnIndexRange()  + "\n\n"; 

            var cell = table.cellForColumnAndRow(0,3); 
            result.innerText += "----------------------\n";
            result.innerText += "{ 3, 0 }\n";
            result.innerText += cell.allAttributes() + "\n";
            result.innerText += cell.rowIndexRange() + ", " + cell.columnIndexRange()  + "\n\n"; 

            cell = table.cellForColumnAndRow(0,2); 
            result.innerText += "----------------------\n";
            result.innerText += "{ 2, 0 }\n";
            result.innerText += cell.allAttributes() + "\n";
            result.innerText += cell.rowIndexRange() + ", " + cell.columnIndexRange()  + "\n\n"; 

            cell = table.cellForColumnAndRow(3,2); 
            result.innerText += "----------------------\n";
            result.innerText += "{ 2, 3 }\n";
            result.innerText += cell.allAttributes() + "\n";
            result.innerText += cell.rowIndexRange() + ", " + cell.columnIndexRange()  + "\n\n"; 

            cell = table.cellForColumnAndRow(10,10); 
            result.innerText += "----------------------\n";
            result.innerText += "{ 10, 10 }\n";
            result.innerText += (cell != null ? cell.allAttributes() : "") + "\n";
            result.innerText += cell != null ? cell.rowIndexRange() : "{0, 0}";
            result.innerText += ", " + (cell != null ? cell.columnIndexRange() : "{0, 0}") + "\n\n";
        }
    </script>
</body>
</html>