Technique F91:Failure of Success Criterion 1.3.1 for not correctly marking up table headers
Applicability
HTML and XHTML.
This technique relates to 1.3.1: Info and Relationships (Failure).
Description
This failure occurs when data tables do not use header elements (th) or other appropriate table mark-up (the scope attribute, headers and id or the ARIA roles columnheader / rowheader) to make the headers programatically determinable from within table content. Making headers programmatically determinable is especially important when data cells are only intelligible together with header information. When screen reader users navigate through the table content horizontally or vertically, the headers that change can be read out to provide the necessary context for the information in the data cells.
Examples
Example 1: Headers not marked up appropriately
This table does not use th (or other appropriate header markup) for headers. Instead, it uses td elements for all cells. Navigating cell by cell, screen readers will often fail to read the header cells associated with content.
Example Code:
<table> <tr> <td>Name</td> <td>Age</td> <td>Height (cm)</td> <td>Weight (kg)</td> </tr> <tr> <td>Linda</td> <td>33</td> <td>169</td> <td>59</td> </tr> <tr> <td>Jack</td> <td>37</td> <td>184</td> <td>74</td> </tr> <tr> <td>Kira</td> <td>8</td> <td>120</td> <td>21</td> </tr> <tr> <td>Daniel</td> <td>3</td> <td>79</td> <td>14</td> </tr> </table>
Tests
Procedure
For all data tables, check if table headers can be correctly programmatically determined by use of one of the following mechanisms:
- headers marked up with table header (
th
) elements scope
attributes onth
for tables with more than a single row or column of table headers.scope
attributes onth
for tables with more than a single row or column of table headers.- headers and data cells associated using
headers
andid
attributes - headers marked up as
td
elements with thescope
attribute - headers marked up with ARIA role attributes
rowheader
orcolumnheader
Expected Results
- If all checks are false, then this failure condition applies and the content fails the Success Criterion.