• Success Criterion 1.3.1
  • Conformance level A
  • W3C reference F91

Table Header Cells Never Marked Up as Real Headers

1.3.1 — Info and Relationships

Scenario

Setting

A podcast app's episode list

What’s wrong

Data table header cells are not marked up as headers — screen readers can't tell users which column/row a value belongs to.

Example

A QA pass on a podcast app's episode list turns this up: data table header cells are not marked up as headers — screen readers can't tell users which column/row a value belongs to.

Why it matters

Screen-reader, braille, and reading-tool users who depend on coded structure rather than visual layout. On a podcast app's episode list specifically, they can't tell how the page is organized.

How to test

Click into each header cell in DevTools: it must be a th element (with scope for complex tables) — if it's a styled td, screen reader table navigation won't announce it as a header.

How to fix

Mark up header cells as th (with scope where needed) so data cells announce their headers.

Outcome

Fixed, a visitor to a podcast app's episode list can move through the content with confidence.

Who is affected

Screen-reader, braille, and reading-tool users who depend on coded structure rather than visual layout.

Learn more