| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../resources/js-test.js"></script> |
| <script src="../resources/accessibility-helper.js"></script> |
| </head> |
| <body> |
| |
| <table id="table"> |
| <thead id="table-head"> |
| <tr id="row-in-head"> |
| <th id="a" scope="row">A</th> |
| <td id="b">B</td> |
| <td>C</td> |
| </tr> |
| </thead> |
| <tbody id="table-body"> |
| <tr id="row-in-body"> |
| <th>D</th> |
| <td>E</td> |
| <td>F</td> |
| </tr> |
| <tr> |
| <td id="g">G</td> |
| <td>H</td> |
| <td>I</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <script> |
| if (window.accessibilityController) { |
| window.jsTestIsAsync = true; |
| var output = ""; |
| |
| var table = accessibilityController.accessibleElementById("table"); |
| var cellB = table.cellForColumnAndRow(1, 0); |
| var cellE = table.cellForColumnAndRow(1, 1); |
| |
| output += `Cell B should have 1 rowHeaders (has ${cellB.rowHeaders().length}) and 0 columnHeaders (has ${cellB.columnHeaders().length})\n`; |
| output += `Cell E should have 1 rowHeader (has ${cellE.rowHeaders().length}) and 1 columnHeader (has ${cellE.columnHeaders().length})\n`; |
| |
| output += "Move row in <thead> to <tbody>:\n"; |
| var headRow = document.getElementById("row-in-head"); |
| var bodyRow = document.getElementById("row-in-body"); |
| var thead = document.getElementById("table-head"); |
| |
| bodyRow.before(headRow); |
| thead.remove(); |
| |
| setTimeout(async () => { |
| await waitFor(() => table.cellForColumnAndRow(1, 0)); |
| cellB = table.cellForColumnAndRow(1, 0); |
| output += `Cell B should have 1 rowHeader (has ${cellB.rowHeaders().length}) and 0 columnHeaders (has ${cellB.columnHeaders().length})\n`; |
| output += `Cell E should have 1 rowHeader (has ${cellE.rowHeaders().length}) and 0 columnHeaders (has ${cellE.columnHeaders().length})\n`; |
| |
| output += "Add header above E:\n"; |
| |
| let th = document.createElement("th"); |
| th.textContent = "J"; |
| document.getElementById("a").after(th); |
| |
| await waitFor(() => table.cellForColumnAndRow(1, 1).columnHeaders().length); |
| cellE = table.cellForColumnAndRow(1, 1); |
| output += `Cell E should have 1 rowHeaders (has ${cellE.rowHeaders().length}) and 1 columnHeader (has ${cellE.columnHeaders().length})\n`; |
| |
| axDebug(output); |
| finishJSTest(); |
| }, 0); |
| } |
| </script> |
| </body> |
| </html> |