Tables · WCAG 2.0 Level A
Non-empty <td> elements in larger <table> must have an associated table header
Ensure that each non-empty data cell in a <table> larger than 3 by 3 has one or more table headers.
What it means
The td-has-header rule flags elements that fail this check. It maps to WCAG success criterion 1.3.1.
Who it affects
Screen reader users who move through tables cell by cell.
How to fix it
Mark up header cells with <th> and scope, and keep headers attributes pointing at real header cells in the same table.
Check it on your site
Run a free scan. If this rule fails, the results list the affected elements. Deque, which maintains axe-core, also documents this rule in detail: Deque University: td-has-header.
Quick answers
What does the axe rule "td-has-header" check?
Ensure that each non-empty data cell in a <table> larger than 3 by 3 has one or more table headers.
How do I fix "Non-empty <td> elements in larger <table> must have an associated table header"?
Mark up header cells with <th> and scope, and keep headers attributes pointing at real header cells in the same table.
Who is affected by td-has-header failures?
Screen reader users who move through tables cell by cell.
Automated accessibility scan. Results are informational and may not identify every accessibility issue. This service is not legal advice, a compliance certification, or a substitute for comprehensive manual accessibility testing.