是否应该在<sections>的后面添加不可见的<h2>?

时间:2019-04-07 08:49:34

标签: html css html5 semantic-markup

我的网站有一个非常漂亮,干净的html5语义结构。

但是在这里和那里,我有section个没有任何h2标签的标签,因为它们不值得。例如,一个包含网络工具进度条的框。它确实应该拥有自己的单独section,但绝对不需要标题。

但是验证器和其他站点建议 all 部分标签都需要一个h2标头。鉴于此,我应该将display: none h2标头添加到我拥有的少数无标头的section标签中吗?

一方面,为了使“验证者”和搜索引擎满意而隐藏的内容似乎是一种不好的做法。如果不值得放在您的页面上,请不要将其放在页面上。

另一方面,我看到有人使用纯文本浏览器或某种视力不佳的屏幕阅读器的情况(我们经常在HTML文档中听说过这种情况,但我已经在现实生活中从未听说过)。在这种情况下,您可能甚至不知道进度条是什么。查看其源代码并不能使其功能清晰。但是以图形方式查看它会使它100%清晰。因此,在这种情况下,带有“进度条”的h2标记在源中有用,而在正常显示的页面上不可见。

2 个答案:

答案 0 :(得分:1)

我认为问题始于滥用<section>标签。

每个MDN:

  

HTML元素代表一个独立的部分-没有更具体的语义元素来表示它

当您确实可以使用简单的div时,常见的误用是将section用作定义元素(将其用作包装器)。

<section>的使用说明:

  

通常应通过将标题(-元素)作为元素的子元素来标识每个元素。

  

请勿将该元素用作通用容器;这就是这样做的目的,尤其是当切片仅用于样式目的时。经验法则是,在逻辑上应在文档的轮廓中显示一个部分。

关于标题部分不值得, 也许包装进度条元素的简单div可以解决您的问题。

说了这么多,MDN的状态为<section>

  

-包含在HTML文档中。通常,但并非总是如此,各节都有标题。

这意味着它不是“错误的HTML” ...

更多:The Generic Section element

关于可访问性,还有其他与用户互动的方式。 (元素标题,替代文本和more...

答案 1 :(得分:0)

如果没有任何用途,我个人认为不需要添加元素标签,它会污染页面。