首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >w3c验证警告:文章缺少标题

w3c验证警告:文章缺少标题
EN

Stack Overflow用户
提问于 2018-06-06 02:20:09
回答 1查看 1.2K关注 0票数 2

我有一个只包含以下HTML代码的页面:

代码语言:javascript
复制
<article>
    <nav>
        <a href="test.html" rel="parent">Back</a>
    </nav>
    <header>
        <h2>Test</h2>
    </header>
    <p>Test</p>
</article>

当我尝试validate it时,为什么会收到此警告

Warning:文章缺少标题。考虑对add identifying headings to all articles使用h2-h6元素。

从第10行第2列;到第10行第10列

<body>↩↩↩<article>↩ <na

EN

回答 1

Stack Overflow用户

发布于 2018-06-06 05:51:44

原因是分段内容元素(在您的示例中为nav)位于标题内容元素(在您的示例中为h2)之前:

代码语言:javascript
复制
<!-- A -->
<article>
  <nav></nav>
  <h2>Test</h2>
</article>

如果您切换它们,验证器不会报告警告:

代码语言:javascript
复制
<!-- B -->
<article>
  <h2>Test</h2>
  <nav></nav>
</article>

请参阅文档中概述这些代码段生成的部分:

代码语言:javascript
复制
<!-- A -->

- article (no heading)
-- nav (no heading)
- "Test" (h2 of an implied section, on the same level as the article)
代码语言:javascript
复制
<!-- B -->

- "Test" (h2 of article)
-- nav (no heading)

规范参考

Creating an outline描述了该算法。我认为相关的步骤是这一步(但我不习惯阅读这样的算法,所以最好还是持保留态度):

输入 element时的

运行以下步骤:

  1. 如果current outline owner不为null,请运行以下子步骤:

代码语言:javascript
复制
1. If the `current section` has no heading, create an implied heading and let that be the heading for the `current section`.

据我所知,这就是例子“A”的情况:

该算法进入一个分段内容元素(article).

  • Before它找到一个标题(nav),它找到另一个分段内容元素(nav),并立即输入它,所以引用的步骤适用。

  • article仍然是current outline ownercurrent section,所以子步骤适用(因为<代码>D34不是null)。

  • 由于current section (→article)没有标题(它还没有找到h2 ),因此会创建一个隐含的标题。所以article有一个标题,但它不是你的h2.

我认为该规范在文本(I was surprised by this, too)中也会很好地描述这一点。

验证器问题跟踪器中的相关帖子:Warning issued when headers are nested in an article

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50706583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档