Ответ 1
Я понял, что использование
<th>
для заголовков строк было не просто законным, а поощряемым
Насколько я знаю, это всегда было законным в HTML 4 (и, возможно, его предшественниках) и не изменилось в HTML5.
W3C HTML5 validator, пока еще экспериментальный, не сообщает никаких предупреждений или ошибок. Опять же, я уверен, что проверка HTML5, используемая Visual Studio, является экспериментальной, так как сам HTML5 еще не завершен.
спецификация HTML5 для маркировки табличных данных, в частности section 4.9.13, показывает использование <th>
в пределах <tbody>
и <tfoot>
для данных строки области видимости:
<table>
<thead>
<tr>
<th>
<th>2008
<th>2007
<th>2006
<tbody>
<tr>
<th>Net sales
<td>$ 32,479
<td>$ 24,006
<td>$ 19,315
<tr>
<th>Cost of sales
<td> 21,334
<td> 15,852
<td> 13,717
<tbody>
<tr>
<th>Gross margin
<td>$ 11,145
<td>$ 8,154
<td>$ 5,598
<tfoot>
<tr>
<th>Gross margin percentage
<td>34.3%
<td>34.0%
<td>29.0%
</table>
Так что совершенно законно иметь элементы <th>
внутри <tr>
элементов внутри либо <tbody>
, либо <tfoot>
. Как и должно быть, так как заголовки таблиц не просто найдены в заголовках таблиц.