<nav>
W3C 对标签的定义似乎有点模糊:
nav 元素表示链接到其他页面或页面内的部分的页面部分:具有导航链接的部分。
并非页面上的所有链接组都需要位于 nav 元素中——该元素主要用于包含主要导航块的部分。特别是,页脚通常会包含指向站点各个页面的链接的简短列表,例如服务条款、主页和版权页面。对于这种情况,仅页脚元素就足够了;虽然在这种情况下可以使用 nav 元素,但通常没有必要。
用户代理(例如屏幕阅读器)针对的用户可以从初始呈现中省略的导航信息中受益,或者可以从立即可用的导航信息中受益,可以使用此元素来确定最初跳过和/或根据要求提供的页面。
基于对其定义的非常严格的解释以及我通过验证遇到的情况,它似乎<nav>
应该只包含列表元素。但是,不应该将搜索视为一系列页面中的一种导航形式吗?
虽然我知道它的主要用途是用于用户代理,但如果前者仅充当后者的容器,那么在<nav>
前面加上一个标签似乎仍然是多余的。如果可以包含与导航相关的其他元素,而不限于链接列表,<ul>
那将更有意义。<nav>
例如:
<nav role="navigation">
<form action="http://google.com/search" method="get">
<fieldset role="search">
<input type="hidden" name="q" value="site:mysite.com" />
<input class="search" type="text" name="q" results="0" placeholder="Search"/>
</fieldset>
</form>
<ul class="top-navigation">
<li><a href="/">Home</a></li>
<li><a href="/about.html">About Me</a></li>
<li><a href="/archive.html">Archives</a></li>
</ul>
</nav>
除了验证之外,这不是可接受的使用<nav>
吗?对于不太关心验证的人来说,与确保屏幕阅读器和其他可访问性工具可以正确呈现页面相比,会产生什么影响?