如果您有 a 的<tr>
外部<tbody>
,则该页面将无法验证:http:
//validator.w3.org
正如其他人所指出的,<tbody>
除非您使用<thead>
or ,否则它是可选的<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>
或者,您可能需要考虑是否可以在多个表中组织数据,或者是否可以提供更易于屏幕阅读器用户使用的替代版本。例如,事件日历可以另外呈现为事件列表。