| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <script src="../resources/js-test-pre.js"></script> |
| </head> |
| <body id="body"> |
| |
| <table border="1" cellpadding="5" cellspacing="2" id="table"> |
| <tbody><tr> |
| <th colspan="6" scope="colgroup">Community Courses -- Bath Autumn 1997</th> |
| </tr> |
| <tr> |
| <th scope="col" abbr="Name">Course Name</th> |
| <th scope="col" abbr="Tutor">Course Tutor</th> |
| <th scope="col">Summary</th> |
| <th scope="col">Code</th> |
| <th scope="col" colspan="2">Fee</th> |
| </tr> |
| <tr> |
| <td scope="row">After the Civil War</td> |
| <td>Dr. John Wroughton</td> |
| <td> |
| The course will examine the turbulent years in England |
| after 1646. <em>6 weekly meetings starting Monday 13th |
| October.</em> |
| </td> |
| <td>H27</td> |
| <td>£32</td> |
| <td>£32</td> |
| </tr> |
| <tr> |
| <td scope="row">An Introduction to Anglo-Saxon England</td> |
| <td scope="rowgroup" rowspan="2">Mark Cottle</td> |
| <td> |
| One day course introducing the early medieval |
| period reconstruction the Anglo-Saxons and |
| their society. <em>Saturday 18th October.</em> |
| </td> |
| <td>H28</td> |
| <td>£18</td> |
| <td>£18</td> |
| </tr> |
| <tr> |
| <td scope="row">The Glory that was Greece</td> |
| <td> |
| Birthplace of democracy, philosophy, heartland of theater, home of |
| argument. The Romans may have done it but the Greeks did it |
| first. <em>Saturday day school 25th October 1997</em> |
| </td> |
| <td>H30</td> |
| <td>£18</td> |
| <td>£18</td> |
| </tr> |
| </tbody></table> |
| |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| |
| description("This tests the scope attribute on table cells will manifest as the right header elements on the cells in that row or column."); |
| |
| if (window.accessibilityController) { |
| |
| var table = accessibilityController.accessibleElementById("table"); |
| |
| // Course name has a column header of Community Courses. |
| var cell = table.cellForColumnAndRow(0, 1); |
| var colHeaders = cell.columnHeaders(); |
| shouldBeTrue("colHeaders[0].isEqual(table.cellForColumnAndRow(0, 0))"); |
| |
| // As does Fee. |
| cell = table.cellForColumnAndRow(4, 1); |
| var colHeaders = cell.columnHeaders(); |
| shouldBeTrue("colHeaders[0].isEqual(table.cellForColumnAndRow(0, 0))"); |
| |
| // Dr. John should have two col headers and a row header. |
| cell = table.cellForColumnAndRow(1, 2); |
| colHeaders = cell.columnHeaders(); |
| rowHeaders = cell.rowHeaders(); |
| shouldBeTrue("colHeaders[0].isEqual(table.cellForColumnAndRow(0, 0))"); |
| shouldBeTrue("colHeaders[1].isEqual(table.cellForColumnAndRow(1, 1))"); |
| shouldBeTrue("rowHeaders[0].isEqual(table.cellForColumnAndRow(0, 2))"); |
| |
| // Code H28, two row headers, two col headers. |
| cell = table.cellForColumnAndRow(3, 3); |
| colHeaders = cell.columnHeaders(); |
| rowHeaders = cell.rowHeaders(); |
| shouldBeTrue("colHeaders[0].isEqual(table.cellForColumnAndRow(0, 0))"); |
| shouldBeTrue("colHeaders[1].isEqual(table.cellForColumnAndRow(3, 1))"); |
| shouldBeTrue("rowHeaders[0].isEqual(table.cellForColumnAndRow(0, 3))"); |
| shouldBeTrue("rowHeaders[1].isEqual(table.cellForColumnAndRow(1, 3))"); |
| |
| // Verify Code H30 has two row headers even though the 2nd header started in a span before this row. |
| cell = table.cellForColumnAndRow(3, 4); |
| rowHeaders = cell.rowHeaders(); |
| shouldBeTrue("rowHeaders[0].isEqual(table.cellForColumnAndRow(0, 4))"); |
| shouldBeTrue("rowHeaders[1].isEqual(table.cellForColumnAndRow(1, 3))"); |
| |
| // Verify items in column 5 are picking up Fee as a header even though it's colspan starts before this column. |
| cell = table.cellForColumnAndRow(4, 4); |
| colHeaders = cell.columnHeaders(); |
| shouldBeTrue("colHeaders[0].isEqual(table.cellForColumnAndRow(0, 0))"); |
| shouldBeTrue("colHeaders[1].isEqual(table.cellForColumnAndRow(4, 1))"); |
| |
| } |
| |
| </script> |
| |
| <script src="../resources/js-test-post.js"></script> |
| </body> |
| </html> |