I'm using HTML tables to create a timetable. Each row represents half hour, and the cells can span multiple rows by using rowspan
.
Sometimes I have empty tr
elements, because all the slots are taken by cells from previous rows.
In that case, the HTML validator complains:
Row [N] of a row group established by a
tbody
element has no cells beginning on it.
Sure, I could remove those empty tr
and reduce the rowspan
value of the expanded cells. But then the rowspan
value would no longer univocally correspond to the duration of the cell.
Therefore, are empty tr
s really invalid? Why?
You can’t have empty rows in a table in a valid HTML document per the current HTML spec.
Maybe you rightly should be able to, but the spec currently clearly says that you can’t. So if anybody believes it should be allowed by the spec, the right thing to do is to file an issue against the HTML Standard in its github tracker or even write a patch and open a PR for it.
Specifically the spec defines the following error case:
https://html.spec.whatwg.org/multipage/tables.html#the-table-element
If there exists a row or column in the table containing only slots that do not have a cell anchored to them, then this is a table model error.
In Internet-spec terms, that is a “normative” authoritative statement that can’t be ignored or overridden by anything else. It is stating a hard requirement.
The spec elsewhere says this:
The
tr
element: Content modelhttps://html.spec.whatwg.org/multipage/tables.html#the-tr-element Zero or more td, th, and script-supporting elements
But that’s not actually a contradiction and does not conflict with or supersede or override the “table model error” requirement cited above. In fact, it’s the opposite—the “table model error” requirement supersedes the more-liberal requirement in the other section (cited above) that a valid tr
element can have zero or more children.
Any stricter requirements in a spec always supersedes or overrides any more-liberal requirements.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With