【发布时间】:2012-03-22 18:13:37
【问题描述】:
W3C 对<nav> 标签的定义似乎有点模糊:
nav 元素表示页面的一部分,该部分链接到其他页面或页面内的部分:带有导航链接的部分。
并非页面上的所有链接组都需要位于导航元素中——该元素主要用于由主要导航块组成的部分。特别是,页脚通常有一个指向站点各个页面的链接的简短列表,例如服务条款、主页和版权页面。对于这种情况,仅页脚元素就足够了;虽然在这种情况下可以使用 nav 元素,但通常没有必要。
用户代理(例如屏幕阅读器)针对的用户可以从初始呈现中省略的导航信息中受益,或者可以从立即可用的导航信息中受益,可以使用此元素来确定哪些内容页面上的内容最初跳过和/或根据要求提供。
根据对其定义的非常严格的解释以及我通过验证所遇到的情况,似乎<nav> 应该只包含列表元素。但是,搜索不应该被视为一系列页面中的一种导航形式吗?
虽然我知道它的主要用途是用于用户代理,但如果前者仅用作后者的容器,那么在 <ul> 标记之前有一个 <nav> 似乎仍然是多余的。如果<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> 用法吗?对于不太关心验证,而不是确保屏幕阅读器和其他可访问性工具能够正确呈现页面的人来说,会有什么影响?
【问题讨论】:
标签: html accessibility semantics nav screen-readers