Start scanning free

( Perceivable / WCAG 1.3.1 )

Table header has no associated data cells

This check maps to Info and Relationships. Use the guidance below to confirm the issue, understand who it affects and ship a fix.

Serious Level A WCAG 1.3.1 — Info and Relationships

What’s wrong

A <th> element doesn’t apply to any data cell in the table, usually because its scope is set wrong, or a headers/id pairing elsewhere in the table is broken.

Why it matters

A header that isn’t actually linked to any cells provides no value to screen reader users navigating the table by column or row, and can signal that the whole table’s structure is unreliable.

How to fix it

Set scope="col" or scope="row" correctly, or fix the headers/id pairing so every header actually maps to real data cells.

Before
<table>
  <tr><th>Name</th><th>Total</th></tr>
  <tr><td>Widget</td><td>42</td></tr>
</table>
After
<table>
  <tr><th scope="col">Name</th><th scope="col">Total</th></tr>
  <tr><td>Widget</td><td>42</td></tr>
</table>

Learn more