table-with-no-headers
This fails the run. Where it is wrong about your code, // ramonda-check-ignore <reason> on the line says so, and the reason is printed on every run.
Reported when a <table> written out with data rows has no <th> anywhere in it.
A table is read visually by POSITION: the eye follows a column up to its heading and back down. A screen reader cannot do that — it announces cells one at a time, and the header association is the only thing that lets it say "Price, £4.50" instead of "£4.50".
With no <th> there is no association to make. Past three or four columns the table is not
harder to read, it is unusable: nothing says which column any value came from.
Make the heading cells <th> and give each one a scope:
<tr>
<th scope="col">Item</th>
<th scope="col">Price</th>
</tr>
scope="row" is for a heading down the left of each row, which is the other half of a table
that has both.
If the table is LAYOUT rather than data, say so with role="presentation" — that is what it
is for, and nothing here will ask again.
Next
- All rules — the other checks this one runs beside.
- Checking your app — how to run it, and what it proves.