Accessibility Wiki

Table header cells must not be empty

Rule empty-table-header · Deeper checks · impact serious · Static + live

↩ Back to the rules index · WCAG cross-reference

Why it matters

A table header cell () without an accessible name is indistinguishable from a data cell for assistive technology users. Screen readers cannot announce what the column or row contains.

How to fix

Add text content, aria-label, or aria-labelledby to every . For purely decorative spacer cells use aria-hidden="true" instead.

Example

✕ Fails
<table><tr><th></th><td>Cell</td></tr></table>
✓ Passes
<table><tr><th>Name</th><td>Alice</td></tr></table>

WCAG success criteria

1.3.1 Info and Relationships — Level A

Structure and relationships conveyed visually (headings, lists, tables, labels, groups) must also be available programmatically.

Understanding 1.3.1

4.1.2 Name, Role, Value — Level A

Every UI component must expose a correct name, role, and (where relevant) state/value to assistive technology.

Understanding 4.1.2

Standards

This rule contributes to the following standards:

WCAG A EN 301 549

Standard Criteria
EN 301 549 9.1.3.1, 9.4.1.2

References