chromium/third_party/blink/web_tests/accessibility/table-cells-with-colspan.html

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test.js"></script>
</head>
<body id="body">
<table id="table1" border="1">
  <tr>
    <td colspan="10">data</td>
    <th scope="colgroup" colspan="5">col head</td>a
    <td colspan="2">data</td>
  </tr>
</table>
<table id="table2" border="1">
  <tr>
    <td rowspan="2" colspan="3">data</td>
    <th scope="colgroup" colspan="2">col head</th>
  </tr>
  <tr>
    <th scope="col">col head</th>
    <th scope="col">col head</th>
  </tr>
</table>
<p id="description"></p>
<div id="console"></div>

<script>

    description("Check whether cells with colspan are reported properly");

    if (window.accessibilityController) {
        var table1 = accessibilityController.accessibleElementById("table1");
        shouldBe("table1.columnCount", "3");

        var cell_0_0 = table1.cellForColumnAndRow(0, 0);
        shouldBe("cell_0_0.role", "'AXRole: AXCell'");
        shouldBe("cell_0_0.columnIndexRange()", "'{0, 1}'");

        var cell_0_1 = table1.cellForColumnAndRow(1, 0);
        shouldBe("cell_0_1.role", "'AXRole: AXColumnHeader'");
        shouldBe("cell_0_1.columnIndexRange()", "'{1, 1}'");

        var cell_0_2 = table1.cellForColumnAndRow(2, 0);
        shouldBe("cell_0_2.role", "'AXRole: AXCell'");
        shouldBe("cell_0_2.columnIndexRange()", "'{2, 1}'");

        var table2 = accessibilityController.accessibleElementById("table2");
        shouldBe("table2.columnCount", "3");
        shouldBe("table2.columnHeadersCount", "3");

        var cell_0_1 = table2.cellForColumnAndRow(1, 0)
        shouldBe("cell_0_1.columnIndexRange()", "'{1, 2}'");
        var cell_0_2 = table2.cellForColumnAndRow(2, 0);
        shouldBe("cell_0_2.columnIndexRange()", "'{1, 2}'");
        shouldBeTrue("table2.columnHeaderAtIndex(0).isEqual(cell_0_1)")
        shouldBeTrue("table2.columnHeaderAtIndex(0).isEqual(cell_0_2)");
        shouldBeTrue("table2.columnHeaderAtIndex(1).isEqual(table2.cellForColumnAndRow(1, 1))")
        shouldBeTrue("table2.columnHeaderAtIndex(2).isEqual(table2.cellForColumnAndRow(2, 1))");
    }

</script>

</body>
</html>