Ramonda

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