应该标题&#34;导航&#34;是在以下<nav>元素之上,还是在其中?

时间:2015-06-17 09:27:39

标签: html html5 accessibility semantic-markup

更好的是:

<h1>Navigation</h1>
<nav>
  <ul>
    <li>...</li>
  </ul>
</nav>

或者:

<nav>
  <h1>Navigation</h1>
  <ul>
    <li>...</li>
  </ul>
</nav>

有没有显着差异?

4 个答案:

答案 0 :(得分:3)

nav是一个切片元素,因此,如果您有一个描述导航的标题,它应该在里面:

<nav>
  <h1>Navigation</h1>
  <ul>
    <li>...</li>
  </ul>
</nav>

否则,标题将与不同的部分错误地关联,而不是nav元素。

W3C HTML5 spec提供了一个几乎相同的例子:

  

代码示例:

     

在以下示例中,页面有几个存在链接的位置,但这些位置中只有一个被视为导航部分。

<body itemscope itemtype="http://schema.org/Blog">
 <header>
  <h1>Wake up sheeple!</h1>
  <p><a href="news.html">News</a> -
     <a href="blog.html">Blog</a> -
     <a href="forums.html">Forums</a></p>
  <p>Last Modified: <span itemprop="dateModified">2009-04-01</span></p>
  <nav>
   <h1>Navigation</h1>
   <ul>
    <li><a href="articles.html">Index of all articles</a></li>
    <li><a href="today.html">Things sheeple need to wake up for today</a></li>
    <li><a href="successes.html">Sheeple we have managed to wake</a></li>
   </ul>
  </nav>
 </header>
 ...
</body>

答案 1 :(得分:1)

如果您对可访问性感到疑惑take a look here.

最好在nav内使用标题,因为它描述了该部分。

答案 2 :(得分:0)

将标题放在#reimbursement_grid容器中可以让您更轻松地设置样式,并整体操作nav元素。例如,如果您移动了<nav>,那么您可能希望标题与之一致。它只是节省了工作量,使内容更简单。

您可以使用以下方式设置样式:

<nav>

而不是为所有h1元素设置样式或为其提供ID。

答案 3 :(得分:-2)

第一个更好,因为标题应该描述要发生的事情,而不是导航的一部分。就像h1不应该在p里面。无论哪种方式,它都可能正常工作。