我的网页只包含以下HTML代码:
<article>
<nav>
<a href="test.html" rel="parent">Back</a>
</nav>
<header>
<h2>Test</h2>
</header>
<p>Test</p>
</article>
当我尝试validate it时,为什么会收到此警告?
警告:文章缺少标题。考虑将
h2
-h6
元素用于add identifying headings to all articles。从第10行第2栏;到第10行,第10栏
<body>↩↩↩
的<article>
↩ <na
答案 0 :(得分:0)
原因是分区内容元素(在您的案例中为nav
)位于标题内容元素(在您的案例中为h2
)之前:
<!-- A -->
<article>
<nav></nav>
<h2>Test</h2>
</article>
如果您切换它们,验证器不会报告警告:
<!-- B -->
<article>
<h2>Test</h2>
<nav></nav>
</article>
请参阅这些片段生成的文档大纲部分:
<!-- A -->
- article (no heading)
-- nav (no heading)
- "Test" (h2 of an implied section, on the same level as the article)
<!-- B -->
- "Test" (h2 of article)
-- nav (no heading)
Creating an outline描述了算法。我认为相关的步骤是这一步(但我不习惯阅读这样的算法,所以最好带上一点点盐):
输入sectioning content元素时 运行以下步骤:
- 醇>
如果
current outline owner
不为null,请运行以下子步骤:
- 如果
current section
没有标题,请创建隐含标题,并将其作为current section
的标题。
据我了解,这就是示例&#34; A&#34;:
article
)。h2
),它会找到另一个切片内容元素(nav
),并立即输入,因此引用的步骤适用。article
仍然是current outline owner
和current section
,因此子步骤适用(因为current outline owner
不为空)。current section
(→article
)没有标题(它尚未找到h2
),因此会创建隐含标题。所以article
有一个标题,但不是你的h2
。我认为规范理想情况下也会在文本(I was surprised by this, too)中对此进行描述。
验证者问题跟踪器中的相关帖子:Warning issued when headers are nested in an article