我正在尝试创建一个语义正确且可访问的 (WCAG 2.0) HTML5 数据表。第一列包含的数据也可用作行的标题。
在 HTML 4.01 / XHTML 1.0 中,我曾经将这些单元格标记为td
属性scope
:
<td scope="row">
在 HTML5 中,scope
不再允许在td
元素上使用该属性。语义和可访问性的最佳方法是什么?
- 将第一列中的单元格标记为
th
(数据方面丢失了?) - 将第一列中的单元格标记为
td
并松开标题方面
恐怕在第二种情况下,该表将不太容易访问。
这种情况让我想到了一般的数据表:在什么情况下你会只使用列标题?因为数据表的性质暗示了一行单元格中数据之间的关系。对于可访问性,行不应该总是有一个标题,以传达这种关系吗?
例如这张表:
Principle | Corresponding guidelines
------------------------------------------------------------------------
Never leave a child unattended | 1, 3, 8
Always communicate what you are going to do | 4, 5, 6
Calm down before you take action | 5,9,13
您会认为第一列(原则)中的单元格是第二列的标题,还是数据单元格?换句话说:你会以什么方式标记这个表?