<tfoot>
标签放在 <tbody>
前面。他没有解释为什么,但他说这样会使表格更易访问。由于学生们都不习惯这么做,我们进行了一些研究,但找不到任何关于为什么在 <tfoot>
标签之前放置 <tbody>
标签能够使表格更易访问的论据。可能是因为屏幕阅读器的阅读顺序吗?请问有人能为我解答一下吗?
<tfoot>
标签放在 <tbody>
前面。他没有解释为什么,但他说这样会使表格更易访问。由于学生们都不习惯这么做,我们进行了一些研究,但找不到任何关于为什么在 <tfoot>
标签之前放置 <tbody>
标签能够使表格更易访问的论据。可能是因为屏幕阅读器的阅读顺序吗?您正在学习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 元素, 可以与一个或多个支持脚本的元素混合。
thead
、tfoot
和tbody
都是样式元素,在可访问性方面没有任何影响。
据我所知,这些元素在WCAG中没有任何要求。如果您想使用它们,可以使用,但这不会使屏幕阅读器更具可访问性。
thead
和tfoot
元素为表格定义头部和脚注行。它们没有提供任何辅助功能,通常只在打印长表格时有用 - 头部和/或底部行将在每个打印页面的顶部或底部重复显示。同样,tbody
元素定义数据表格的主体内容(意味着除了 thead 或 tfoot 之外的任何内容)。再次强调,此元素不提供任何额外的辅助功能,但是在表格样式或其他原因下使用它没有任何害处。 https://webaim.org/techniques/tables/data
tfoot
元素位于最后。tfoot
内容,而作者的自然顺序是tfoot
最后出现。