【发布时间】:2014-07-08 12:17:29
【问题描述】:
我正在建立一个新网站,最近开始研究文档大纲算法。它规定所有部分都应该有一个标题,部分包括section、nav、article和body(有可能还有更多)。
所以,我有几个导航区域,我的问题是;有一个标题但只是在浏览器中隐藏它是明智的吗?
【问题讨论】:
标签: html semantic-markup html-heading
我正在建立一个新网站,最近开始研究文档大纲算法。它规定所有部分都应该有一个标题,部分包括section、nav、article和body(有可能还有更多)。
所以,我有几个导航区域,我的问题是;有一个标题但只是在浏览器中隐藏它是明智的吗?
【问题讨论】:
标签: html semantic-markup html-heading
每个sectioning content element“长”一个标题元素(h1-h6)。但您不需要提供。
如果您不为某个部分提供标题元素,则该部分将有一个隐含标题。 HTML5 outline tools 可能会将这些隐含的标题显示为“无标题部分”或“空标题”。
因此,当您始终尽可能使用分段内容元素时,即使您不提供单个标题元素,您的文档大纲也会正确(当然不建议这样做;标题非常有用!)。
这两个文档将具有相同的大纲层次结构:
<!-- DOCUMENT A -->
<body>
<article>
</article>
<nav>
</nav>
</body>
<!-- DOCUMENT B -->
<body>
<h1>site title</h1>
<article><h1>main content title</h1></article>
<nav><h1>navigation title</h1></nav>
</body>
Outline for DOCUMENT A Outline for DOCUMENT B
1. untitled (body) 1. "site title" (body)
1. untitled (article) 1. "main content title" (article)
2. untitled (nav) 2. "navigation title" (nav)
所以可以使用nav 不带任何标题。但是,如果您认为标题可能对没有 CSS 支持的消费者有用(例如,屏幕阅读器用户或搜索引擎),您可以提供标题并将其隐藏起来。
【讨论】:
h1 作为网站标题,使用h2 作为页面标题)。如果搜索引擎关心,他们可以很容易地找到相关的标题:它在 main 和/或 article 内,也是 <title> 的一部分(在站点名称旁边),它是最显眼的标题页面。