Если у вас есть <tr>
за пределами <tbody>
, страница не будет проверена:
http://validator.w3.org
Как уже отмечали другие, <tbody>
является необязательным, если вы не используете <thead>
или <tfoot>
. Основная причина использования последних двух элементов заключается в том, что верхний и нижний колонтитулы повторяются на каждой странице, если печатается длинная таблица.
Звучит так, как будто вы создаете что-то вроде календаря, в котором вы хотите иметь чередующиеся строки <th>
(например, для дат) и <td>
(например, для событий в эту дату). Если это так, вам не следует переносить чередующиеся строки в <thead>
и <tbody>
- это может сбить с толку браузеры, когда дело доходит до печати страницы. Если вы просто не включите элементы группировки, ваша таблица будет проверена. Однако некоторые средства чтения с экрана могут быть смущены этой разметкой и применять самый верхний ряд заголовков ко всем ячейкам под ними. Для такой сложной таблицы, как эта, вам нужно добавить дополнительную разметку, чтобы читатели экрана понимали, как организована таблица. Вот ваша таблица с доступной разметкой:
<table summary="A brief description of how the table is organized, for screen reader users">
<tr>
<th colspan='2' id="header1">...</th>
</tr>
<tr>
<td headers="header1">...</td>
<td headers="header1">...</td>
</tr>
<tr>
<th colspan='2' id="header2">...</th>
</tr>
<tr>
<td headers="header2">...</td>
<td headers="header2">...</td>
</tr>
</table>
В качестве альтернативы вы можете подумать, можно ли организовать данные в несколько таблиц или можно предоставить альтернативную версию, которая будет проще в использовании для пользователей программ чтения с экрана. Например, календарь событий может быть дополнительно представлен в виде списка событий.