菜单小部件的ARIA标签未读取

时间:2014-03-26 14:13:35

标签: accessibility wai-aria

UA:Mozilla Firefox 28.0; AT:JAWS 14.0.1534和NVDA 2014.1; 操作系统:MS Windows 7 Professional SP1

鉴于以下简单的ARIA增强型菜单小部件,为什么相关的'去哪里'标签从未读过?我的理解是,在收到焦点时应宣布与可聚焦元素相关的标签。相反,只读取菜单项的文本。

<div role="application">
<ul id="main-menu" role="menu" aria-label="Where to go" aria-activedescendant="item-1" tabindex="0">
    <li id="item-1" role="menuitem"><a href="page-1.html" tabindex="-1">First page</a></li>
    <li id="item-2" role="menuitem"><a href="page-2.html" tabindex="-1">Second page</a></li>
    <li id="item-3" role="menuitem"><a href="page-3.html" tabindex="-1">Third page</a></li>
</ul>
</div>

是某种&#34;优化&#34;为了防止每次菜单收到焦点时向用户读取过多的信息?比如,&#34; menuitem&#34;的内容将优先于包含菜单小部件的标签。当然,这只是一个疯狂的猜测。有没有人有更多细节可以帮助澄清上述情况?

基于相同代码示例的相关问题:我发现取消包含div(具有role =&#34; application&#34;属性的那个)的行为完全没有改变行为小部件(用于控制键盘交互和更新UL的aria-activedescendant属性的Javascript代码)。你什么时候需要一个容器 role =&#34; application&#34;

1 个答案:

答案 0 :(得分:2)

根据这个例子,它看起来不像是菜单。

菜单角色适用于弹出子菜单的应用程序样式菜单。请参阅this menubar example

在选项卡切换到菜单后,您可以使用箭头键进行导航,而不是制表符。

您所拥有的(至少到目前为止)是简单的导航,在网站上最合适的机制是标准链接。

  <nav aria-label="Where to go">
  <ul id="main-menu">
     <li><a href="page-1.html">First page</a></li>
     <li><a href="page-2.html">Second page</a></li>
     <li><a href="page-3.html">Third page</a></li>
  </ul>
  </nav>

aria-label可能会也可能不会被屏幕阅读器读出(在NVDA没有的简短测试中,VoiceOver会这样做),如果这很重要,则隐藏菜单上方的屏幕外标题。但是,如果用户通过&#34; landmark&#34;。

导航,则使用该标签

如果您选择完整菜单,请尝试accessible Adobe mega-menu