h1是否需要成为头标记中的第一个语义元素?

meo*_*meo 9 html html5 semantic-markup

我正在使用Chrome outliner扩展来检查我的页面的语义.在文档主标题标记中的h1之前有任何结构元素似乎是一个问题.我认为顺序无关紧要,但显然它确实如此:

+Document Body
  +Header
    +nav
      +h1 Main Navigation
    +h1 MyPage
  -Section
  -Footer
Run Code Online (Sandbox Code Playgroud)

是这样的大纲:

Untitled Body
  Main Navigation
  MyPage
  etc...
Run Code Online (Sandbox Code Playgroud)

但是当h1是我标题中的第一个元素时:

+Document Body
  +Header
    +h1 MyPage
    +nav
      +h1 Main Navigation
  -Section
  -Footer
Run Code Online (Sandbox Code Playgroud)

它的轮廓如下:

MyPage
  Main Navigation
  etc...
Run Code Online (Sandbox Code Playgroud)

这是为什么?是大纲车,还是我理解HTML5语义中的错误?W3C规范似乎没有提到它:http://dev.w3.org/html5/spec/Overview.html#the-header-element

rya*_*rns 7

重新审视规范后,我同意h1不一定是第一个元素.我怀疑问题在于您使用的Chrome扩展程序.

我通过这个HTML大纲工具运行了以下两个场景,并收到了相同的结果(我的导航显示在我的标题下):

在标题下使用h1第二个元素:

<body>
<header>
<h1>My Header</h1>
<nav><h1>My Navigation</h1></nav>
</header>
<section><h1>My Section</h1></section>
<footer></footer>
</body>
Run Code Online (Sandbox Code Playgroud)

使用标题下的H1第一个元素:

<body>
<header>
<nav><h1>My Navigation</h1></nav>
<h1>My Header</h1>
</header>
<section><h1>My Section</h1></section>
<footer></footer>
</body>
Run Code Online (Sandbox Code Playgroud)