Internet explorer 是角色=";申请书;在角色内=";导航“;有效吗?

Internet explorer 是角色=";申请书;在角色内=";导航“;有效吗?,internet-explorer,accessibility,wai-aria,nvda,Internet Explorer,Accessibility,Wai Aria,Nvda,我们目前正在测试新网站的某些方面 我们体验到,在Firefox和Chrome中,NVDA成功地将菜单栏(div#topNav)检测为应用程序(可以使用enter和Esc)进入和离开菜单栏),而在Internet Explorer中则没有 在检查了一下IE之后,我发现IE似乎不喜欢这样: <div role="navigation"> <div role="application"> ... </div> </div> 但它并没有同

我们目前正在测试新网站的某些方面

我们体验到,在Firefox和Chrome中,NVDA成功地将菜单栏(
div#topNav
)检测为应用程序(可以使用
enter
Esc
)进入和离开菜单栏),而在Internet Explorer中则没有

在检查了一下IE之后,我发现IE似乎不喜欢这样:

<div role="navigation">
  <div role="application">
    ...
  </div>
</div>
但它并没有同时宣布“导航”和“应用”,而只是宣布“应用”,而在FF和Chrome(原文)中,它同时宣布了这两个,我觉得这很有用

现在我的问题是:谁是正确的,FF/Chrome还是IE?是否允许为应用程序“分配多个角色”?有没有一种方法可以做这样的事情:


另外,JAWS或其他AT的行为是否相同也很有趣?

在本例中,我不会使用role=application标志,因为role=navigation本身就足够了。landmarks的目标是改进导航并提供页面内容的概述。添加更多(和嵌套的)地标会增加混乱和复杂性,并且不会为用户提供任何有用的东西。FWIW,我从未发现需要使用role=application

作为参考,请阅读马可·泽赫的建议——这已经有几年了,但我认为它仍然非常相关:

另一件要记住的事:少用咏叹调。查看此菜单栏的代码,一些ARIA属性被误用,没有提供任何值。菜单栏也不能正常工作

菜单栏应该如何工作的一个很好的例子:

注意:它们使用role=application,但菜单栏功能不需要它

此外,DHTML工作组还就菜单栏的工作方式提出了一些建议。从本质上讲,菜单栏是带有弹出菜单的工具栏。见:


我希望这会有所帮助。

谢谢,稍后我会看一看。
<div role="application">
  <div><!-- No role here! -->
    ...
  </div>
</div>