A11y Hell
LOWWCAG 1.3.1 A

Tables Without Headers

Tabular data is rendered without proper row or column headers, reducing context in assistive navigation.

Try It Yourself

Demo warning

Without table headers, users hear disconnected values with no column meaning.

Inspect the example table and compare the announcement transcript with a properly structured table expectation.

NamePlanStatus
AnaProActive
MarcusStarterPast due

Typical SR navigation without headers: "Ana, Pro, Active... Marcus, Starter, Past due."

Manual Testing Protocol

Follow this sequence to reproduce the failure consistently and verify the fix with the same workflow.

1. Setup

  • Open table demo and ensure SR simulation is active.
  • Focus the first data row before moving cell-by-cell.

2. Reproduction Steps

  1. Navigate across rows and columns in table order.
  2. Attempt to identify column meaning for each value.
  3. Compare interpretation of repeated values across rows.

3. Expected Failure Signals

  • Cells are announced without associated header context.
  • Users cannot reliably map values to column purpose.
  • Comparative analysis across rows is error-prone.

4. Fix Verification

  • Header cells use `th` with appropriate `scope` or associations.
  • Announcements include row/column header context for each data cell.
  • Complex tables expose relationships with explicit header mapping.

Evidence Capture Checklist

  • Record the exact user goal that fails (for example: submit form, complete checkout, navigate menu).
  • Capture screen recording + keyboard path from first interaction to failure state.
  • Map failure to WCAG 1.3.1 (Level A) and affected user groups.
  • Document business impact: conversion loss, support burden, legal/compliance risk, or trust damage.
Share evidence with Accessibility.build

The Impact

What Happens

  • Users cannot map values to column purpose
  • Sorting and comparisons become difficult
  • Data comprehension drops significantly

Who Gets Hurt

Screen reader users navigating data grids
Users who rely on structured summaries

The Broken Code

<table>
  <tr><td>Name</td><td>Plan</td><td>Status</td></tr>
  <tr><td>Ana</td><td>Pro</td><td>Active</td></tr>
</table>
<!-- Uses td for headers instead of th scope="col" -->

WCAG 1.3.1: Reference

"Information, structure, and relationships conveyed through presentation can be programmatically determined."

Level A - Data tables require explicit header relationships to remain understandable.

Related Low Issues

Explore neighboring failures in the same severity band.

View all low issues
Screen reader simulation closed. Audio disabled.

Screen Reader

Simulation Mode

Active — Tab to navigate

Currently Announcing

Focus on an element to see announcement

Announcement History

No announcements yet

Press Tab to start navigating

This simulates what screen reader users hear.
No visuals — just these announcements.
Shortcut: Shift + Alt + S