将<tfoot>标签放在<tbody>之前会使表格更具可访问性吗?

3
在我们的网页无障碍课程中,老师一直告诉我们在表格中应该将 <tfoot> 标签放在 <tbody> 前面。他没有解释为什么,但他说这样会使表格更易访问。由于学生们都不习惯这么做,我们进行了一些研究,但找不到任何关于为什么在 <tfoot> 标签之前放置 <tbody> 标签能够使表格更易访问的论据。可能是因为屏幕阅读器的阅读顺序吗?
请问有人能为我解答一下吗?

2
好问题!我真的很喜欢你正在学习无障碍性的事实,你在哪里学习呢?因为这需要成为更多教育机构课程的一部分。 - GrahamTheDevRel
3个回答

6

您正在学习HTML 4 的编写方式,但这种方法现在是不正确的

在旧规范中,<tfoot> 元素通常应该放在 <tbody> 元素之前。

您可以在官方的HTML标准仓库看到,将近5年前,由于按照旧规范建议的顺序排列元素会导致可访问性问题,因此HTML规范已经发生了改变。我突出了以下句子,说明<tfoot>应该放在后面的主要原因。

禁止在内容模型中在<tfoot>元素之前放置<tbody>元素

在HTML4中,tfoot必须出现在tbody之前,但是HTML5允许两者之前或之后。将其放在之前会导致键盘焦点顺序和可访问性对象的顺序出现问题,因此该更改将内容模型更改为不再允许在tbody之前放置tfoot

原因是DOM顺序,这是可访问性的关键要素。通过将<tfoot>放在<tbody>之前,读取时会先读取<tfoot>元素,这意味着当您到达表格结尾时,没有像预期那样的<tfoot>元素。

此外,您还可以在W3C HTML推荐文档中找到以下引用支持在结尾处使用 tfoot

内容模型:按此顺序:可选的标题元素,后跟零个或多个 colgroup 元素,后跟可选的 thead 元素,后跟零个或多个 tbody 元素或一个或多个 tr 元素,后跟可选的 tfoot 元素, 可以与一个或多个支持脚本的元素混合。


2
值得注意的是,theadtfoottbody都是样式元素,在可访问性方面没有任何影响。

theadtfoot元素为表格定义头部和脚注行。它们没有提供任何辅助功能,通常只在打印长表格时有用 - 头部和/或底部行将在每个打印页面的顶部或底部重复显示。同样,tbody元素定义数据表格的主体内容(意味着除了 thead 或 tfoot 之外的任何内容)。再次强调,此元素不提供任何额外的辅助功能,但是在表格样式或其他原因下使用它没有任何害处。 https://webaim.org/techniques/tables/data

据我所知,这些元素在WCAG中没有任何要求。如果您想使用它们,可以使用,但这不会使屏幕阅读器更具可访问性。

1
其他人已经指出,当前的HTML标准实际上要求tfoot元素位于最后。
即使在非正式的情况下,我非常怀疑您的教师是正确的。任何辅助辅助技术都可以在处理HTML表时轻松优先输出tfoot内容,而作者的自然顺序是tfoot最后出现。
您老师的观点可能起源于网络带宽比今天低几个数量级的时代。大型表格需要相当长的时间来加载,如果屏幕阅读器决定首先呈现列摘要以改善可访问性,则由于缺乏数据,它将在相当长的时间内保持沉默。
但是,今天这不再是问题。更准确地说,在某些情况下,可访问性也会在Web存在的许多其他地方(破坏性网络服务)或内容结构违反可访问性指南(表中巨大的数据量)中受到影响。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接