语义HTML-侧边栏中的导航

时间:2019-07-09 17:08:14

标签: html navigation accessibility wai-aria

我有一个侧边栏,其中包含应用程序的主要导航。它还包含一个button,它会触发侧栏的打开/关闭。就语义而言,标记应如何显示?

  • 我应该将侧边栏放在一边,然后只进行一次导航吗? 主要导航,不包括打开/关闭触发器。
  • 或将整个边栏包含在nav中,包括打开/关闭触发器
  • 或将边栏包裹在section中,其中包含nav,但不包括 打开/关闭触发器?
  • 或者没有任何sectionaside,但只有nav(不包括触发器),在这种情况下,我仍然遵循以下最佳做法。触发器应被视为内容吗?还是应该属于网页概述的一部分?

[W3] [1]建议:

  

最佳做法是将页面上的所有内容包括在地标中,   以便依靠它们的屏幕阅读器用户从部分导航   到部分不会丢失内容的踪迹。

当前结构类似于:

侧边栏

  • 主导航
    • 导航项目1
    • 导航项目2
  • 触发以打开/关闭侧边栏

1 个答案:

答案 0 :(得分:0)

<aside>元素用于与页面的主要内容进行切线相关的内容,并且通常在视觉上表示为侧边栏。使用它进行导航不会完全与屏幕阅读器混淆,但是在这种情况下,您必须向其中添加rolecomplementary的{​​{1}}。

我希望这个region可以将至少几个不同的<aside>元素进行分组,因此对于您使用单个菜单的用例,我肯定会选择将侧边栏菜单区域<nav>。记得顺便给它一个不错的<nav>。像aria-label之类的内容就足以满足您的主要导航需求。

请考虑使用aria-label=“Primary”隐藏屏幕阅读器的切换按钮,如果切换没有帮助的话。在这种情况下,aria-hidden=“true”绝不能用<nav>隐藏,因为它会使屏幕阅读器看不见并且无法切换。

display: none