empty-table-header
Web validation
Data tables rely on header cells to give screen reader users essential context. When a <th> element is empty, assistive technology cannot announce a meaningful header, so people who are blind or have low vision must guess the relationship between cells. Visible text in every header helps everyone understand, navigate, and interpret the information.
Pass Patterns
All <th> elements have text
The table header contains clear, visible text that identifies each column.
<table>
<thead>
<tr>
<th scope="col">Student Name</th>
<th scope="col">Grade</th>
<th scope="col">GPA</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jose Ramirez</td>
<td>10</td>
<td>3.7</td>
</tr>
</tbody>
</table>Fail Patterns
An empty <th> element
The header cell is present but empty, so no text is exposed to assistive technology.
<table>
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Grade</th>
<th scope="col">GPA</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jose Ramirez</td>
<td>10</td>
<td>3.7</td>
</tr>
</tbody>
</table>Try It Yourself
Using a screen reader
New to screen reader testing, or need a refresher?
Review this article first: Practical guides for using screen readers
- Load the page and open a screen reader, then navigate to the table.
- Go to the table cells and move between columns.
Expected result: The screen reader announces the column’s position (e.g., “column one of three”), and its name, providing the context for the column’s content.
Actual result: The screen reader only announces the column’s position with no additional context.
FAQ
Why is this validation considered a best practice?
WCAG does not explicitly forbid empty header cells, yet providing visible text improves comprehension for screen reader users and prevents confusion when navigating large tables. It is therefore treated as a best practice that strengthens overall accessibility without being a strict success criterion requirement.
Why is this issue marked as Minor?
An empty header rarely blocks access to the data itself, but it can slow navigation and force users to guess relationships, especially in complex tables. The impact is noticeable but not critical, so the severity is Minor.