Non-empty <td> elements in larger <table> must have an associated table header

Critical

What is the problem?

The td-has-header rule ensures that each data cell in a complex table has a corresponding header cell. A table with at least 3 rows and 3 columns is considered complex.

Impacted Groups

Blind
Deafblind

Why is this important?

Screen reader users rely on header cells to understand the context of data cells. Without clear headers, screen reader users may struggle to interpret the table's information, making it difficult to find specific data or understand relationships between different data points.

How to solve this issue

To fix this issue, use <th> elements to define header cells for each column and row of the table. Additionally, use the scope attribute to specify the scope of each header cell (e.g., scope="col" for column headers, scope="row" for row headers). This helps screen readers correctly associate header cells with their corresponding data cells.

Rule Information

Rule ID

td-has-header

Severity

Critical

Manual Review Required

No

Rule Group

Experimental Rules

Guidelines

  • WCAG 2.1 Experimental
  • WCAG 2.0 Experimental
  • Section 508
  • Trusted Tester
  • EN 301 549

Customise Guidance

You can customise each accessibility rule in SiteAlly with your own guidance, instructions and even links to your own organisation specific documentation.

Enable your website editors to resolve issues quickly with SiteAlly.

Ready to make your website accessible?

SiteAlly provides automated accessibility monitoring, detailed reports, and step-by-step guidance to help you achieve and maintain compliance.