Data table with no header cells
Part of Documentation, UX & Accessibility, which counts for 15% of the overall score. When this check fires it deducts 8 points from that category, once per scan, no matter how many places it turns up.
What it detects
A <table> has data rows (<tr> containing <td>) but not one <th> anywhere, so a screen reader has no column/row headers to announce and reads each cell as an anonymous value with no context. Change the header row cells to <th scope="col"> (or <th scope="row"> for row headers), which is a markup-only change with no visual difference by default.
Why it matters
A data table with no <th> anywhere gives a screen reader nothing to announce as column or row context, so each cell reads as an isolated value: "30", "25" with no idea those numbers are ages, or whose age. Sighted users get the same information for free from position and a header row that looks different; screen-reader users get none of that without real header cells.
How to fix it
Change the header row's cells from <td> to <th scope="col"> (or <th scope="row"> for a header column), which changes nothing about the default visual appearance since browsers already style <th> similarly to <td> unless your CSS overrides it. If the table has both column and row headers, scope each accordingly.
The paid report includes a ready-to-paste prompt for your AI coding agent for every check it finds, pointed at the exact findings from your scan. See pricing
Does your repo trip this check?
Paste a GitHub URL or drop a project folder. Scans run in your browser and take seconds.
Scan your repo