As amateur user of TEI XML (as authoring tool for HTML), I experienced that the first tei:row, if @ROLE 'label', would induce a html:thead. Working these days on a document with two tables, I was surprised to find that the same code worked for the first table and not for the second! I went to look at html_figures.xsl and, though being still more amateur at XSL, guessed that @rend 'thead' could solve my problem, and indeed. Then, if I understand the code, what worked for the first table is the elegant solution, needing no explicit @rend 'thead', but simply not(preceding::tei:row). The problem is, if I am not mistaken, that this means no row anywhere above. To me, this does not make sense. We want to test if one table has a tei:row @ROLE 'label' as first row of that table, therefore test that there is no preceding row in the same table, not in the whole document. Don’t we mean not(preceding-sibling::tei:row), no other row before in the same table? I let you judge if this is a bug or my not understanding XSL, Xpath, etc., and if preceding-sibling would do. I had a try (three occurrences lines 339 & ff in version 7.60.0) and to me it works, but maybe it could break something else in other situations. Same correction in the template for tei:cell, line 85. For my two tables, see under https://d-meeus.be/marxisme/classiques/Concordance.html and, for the source, the two subdivs of div xml:id="Concordance" in https://d-meeus.be/marxisme/classiques/lectures.xml.
As amateur user of TEI XML (as authoring tool for HTML), I experienced that the first tei:row, if @ROLE 'label', would induce a html:thead. Working these days on a document with two tables, I was surprised to find that the same code worked for the first table and not for the second! I went to look at html_figures.xsl and, though being still more amateur at XSL, guessed that @rend 'thead' could solve my problem, and indeed. Then, if I understand the code, what worked for the first table is the elegant solution, needing no explicit @rend 'thead', but simply not(preceding::tei:row). The problem is, if I am not mistaken, that this means no row anywhere above. To me, this does not make sense. We want to test if one table has a tei:row @ROLE 'label' as first row of that table, therefore test that there is no preceding row in the same table, not in the whole document. Don’t we mean not(preceding-sibling::tei:row), no other row before in the same table? I let you judge if this is a bug or my not understanding XSL, Xpath, etc., and if preceding-sibling would do. I had a try (three occurrences lines 339 & ff in version 7.60.0) and to me it works, but maybe it could break something else in other situations. Same correction in the template for tei:cell, line 85. For my two tables, see under https://d-meeus.be/marxisme/classiques/Concordance.html and, for the source, the two subdivs of div xml:id="Concordance" in https://d-meeus.be/marxisme/classiques/lectures.xml.