【问题标题】:Semantic markup and ARIA roles to indicate primary and secondary navigation of page语义标记和 ARIA 角色指示页面的主要和次要导航
【发布时间】:2013-05-28 13:56:34
【问题描述】:

有没有办法指示(出于可访问性目的)页面上的哪个导航菜单是主要的导航?

<nav role="navigation" id="primaryNavMenu">
    <ul> ... </ul>
</nav>

<nav role="navigation" id="secondaryNavMenu">
    <ul> ... </ul>
</nav>

如果能做这样的事情就好了:

<nav role="navigation primary" id="primaryNavMenu">
    <ul> ... </ul>
</nav>

但我在ARIA documentation 中看不到任何此类规定。

【问题讨论】:

  • 您希望无障碍工具对主要信息和次要信息做什么?
  • 我猜你可以输入&lt;nav ... aria-label="Main menu"&gt; 或者使用aria-describedby
  • @Alohci 我想知道众多导航中的哪一个是主要导航会很有用,而不必遍历每个

标签: html navigation accessibility nav wai-aria


【解决方案1】:

从技术上讲,没有。只有普通的role="navigation"。然而,HTML5 规范曾经提到 nav 元素:

只有包含主要导航块的部分才适用于导航元素。

它现在说:

并非页面上的所有链接组都需要位于导航元素中——该元素主要用于由主要导航块组成的部分。特别是,页脚通常有一个指向站点各个页面的链接的简短列表,例如服务条款、主页和版权页面。对于这种情况,仅页脚元素就足够了;虽然在这种情况下可以使用 nav 元素,但通常没有必要。

Reference

因此,nav 元素仅适用于主要导航(在您网站上的页面之间导航)和辅助导航(在当前页面上的部分之间导航)。因此,如果您需要一些东西来识别主导航,因为您有太多 nav 元素,那么您可能会错误地使用它。

当然,规范并不是 100% 决定什么应该和不应该是 nav 元素。我建议查看您的每个navs 并考虑是否需要。

【讨论】:

  • 这很有趣。我遇到这种困境的网站在页面/文档顶部有一个二级菜单,其中包含一般链接,例如关于我们、联系我们、安全登录等。而在桌面模式下(网站是响应式的),主要 具有可见的主要产品/服务链接(在移动模式下,此
  • ...不使用
  • +1 - 我完全同意最后一句话。规范从来没有给出关于实现的指示,这留给我们去推断,最终最佳实践将设定一个“事实上的”标准
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
相关资源
最近更新 更多