table 是否需要标题标签和标题?

Do I need both a heading tag and a caption for a table?

我在我们的网站上用 table 做了很多文档。
关于是否需要在 table 之前添加标题 (<h2>...</h2>),在 table 中添加标题,或两者都需要,我看到了相互矛盾的争论。

在我看来,标题是语义化的,因此应该足够了。

如果有标题,table 需要 header 的理由是什么?

两者都是重复的,如果我是屏幕 reader 用户,我会发疯的。

而且由于标题是语义化的,所以我不需要咏叹调。

简答

不需要 table 之前的标题,但是如果标题有利于页面结构,那么最好有重复,因为大多数屏幕 reader 用户与网页进行交互。

如果有疑问,请添加标题,因为重复比缺少关键文档结构元素更可取。

更长的答案

您不需要在 table 之前添加标题,但根据您正在创建的文档,它可能是合适的。

对此没有直接的指导,但如果你分解每个元素的用途(语义上)以及它们如何被不同的人(主要是屏幕 reader 用户)使用,你就会明白为什么大多数人会争论两者的使用。

标题

显然,标题用作整个文档的主要标志,并显示各部分之间的关​​系。

它们也是大多数屏幕 reader 用户在首次登陆页面时浏览页面以了解显示的信息和位置的主要方式。

因此,在每个 table 上方添加标题可能 是合适的。

例如,如果您的页面包含多个 table,其中包含关键信息,那么每个 table 上方的标题肯定会改善从未访问过的屏幕 reader 用户的导航和可发现性之前的那个页面。

但是,如果 table 包含在更大的 body 文本中,并且是 body 文本的补充/支持信息(可能会在 table) 然后添加标题会导致不必要的重复并破坏文档流。显然,在这种情况下,假定此 body 文本具有适当的标题,因此文档易于浏览。

字幕

99% 的时间你的 table 应该有一个标题(我确信在某些情况下不需要标题,但我现在想不出一个)。

标题中的信息有助于构建 table 信息的一般主题。

例如,筛选 reader 熟悉您网站(并且知道它有很多 table 的用户)我选择按 table 进行导航。

他们可能会在 table 断章取义的情况下着陆,如果没有标题,这可能毫无意义。

那我该怎么办?

添加说明,除非你能想到一个很好的理由不这样做。

如有疑问,请添加标题(在文档结构中的 suitable 级别)。

但是,如果您认为 table 由标题适当描述并且在 table 支持的 body 文本范围内,那么标题可能不会需要。

最后的想法 - 让不熟悉网站的人用屏幕测试它 reader,这是查看页面是否易于导航的最佳方式,作为开发人员,我们会做出假设,即使拥有世界上所有的经验,您也可能会出错,看到真实的人使用产品通常是非常令人羞愧的!