Data or header cells should not be used to give caption to a data table
How to Fix the Problem
To fix the problem, ensure the table uses an actual
caption
element instead of cells with a
colspan
element to visually indicate a caption.
To ensure screen reader users can make sense of tabular data, use the
caption
element for an onscreen title.
Example: Simple data table with a caption
element
<table class="data">
<caption>
Greensprings Running Club Personal Bests
</caption>
Greensprings Running Club Personal Bests
</caption>
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">1 mile</th>
<th scope="col">5 km</th>
<th scope="col">10 km</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Mary</th>
<td>8:32</td>
<td>28:04</td>
<td>1:01:16</td>
</tr>
<tr>
<th scope="row">Betsy</th>
<td>7:43</td>
<td>26:47</td>
<td>55:38</td>
</tr>
<tr>
<th scope="row">Matt</th>
<td>7:55</td>
<td>27:29</td>
<td>57:04</td>
</tr>
<tr>
<th scope="row">Todd</th>
<td>7:01</td>
<td>24:21</td>
<td>50:35</td>
</tr>
</tbody>
</table>
Why it Matters
Screen readers have a specific way of announcing tables. When tables are not properly marked up, this creates the opportunity for confusing or inaccurate screen reader output.
When tables are not marked up with an actual caption element instead of using
a colspan
element on cells to visually indicate a caption, screen
reader users cannot correctly perceive the purpose of the table visually.
Rule Description
Data table markup can be tedious and confusing. Screen readers have some
features to ease table navigation, but tables must be marked up accurately for
these features to work correctly. Some tables use cells with a
colspan
element to visually indicate a caption, instead of using
an actual caption element.
The Algorithm (in simple terms)
Checks that data tables are marked up with table cells that use a
colspan
element to indicate a caption visually.