我们目前正在测试新的PostFinance.ch网站的一些方面。
我们经历过,在火狐和Chrome中,NVDA成功地检测到菜单(div#topNav)作为应用程序(人们可以使用Enter和Esc进入并离开它),而在Internet中却没有。
在查看了一下IE之后,我发现IE似乎不喜欢这样:
<div role="navigation">
<div role="application">
...
</div>
</div>当直接使用DOM检查器将属性更改为以下内容并重新加载NVDA (NVDA+F5)时,它是工作的:
<div role="application">
<div><!-- No role here! -->
...
</div>
</div>但它并没有宣布“导航”和“应用”,而只是“应用”,而在FF和Chrome (在原版),它宣布两者,这是一种有用的感觉。
现在我的问题是:谁是对的,FF/Chrome还是IE?是否允许向应用程序“分配多个角色”?有没有办法可以做这样的事情:<div role="application navigation">
它也将是有趣的是,无论是下巴还是其他AT的行为方式相同?
发布于 2014-10-28 21:44:58
在这种情况下,我不会使用role=application地标,因为role=navigation本身就足够了。地标的目标是改进导航,并提供页面内容的概述。添加更多的(和嵌套的)地标会增加混乱、复杂性,并且不会为用户提供任何有用的东西。FWIW,我从来没有发现需要使用role=application。
如需参考,请参阅马可·泽赫的推荐--这是几年前的事了,但我认为它仍然非常相关:http://www.marcozehe.de/2012/02/06/if-you-use-the-wai-aria-role-application-please-do-so-wisely/
要记住的另一件事是:谨慎地使用ARIA。看看这个菜单栏的代码,一些ARIA属性被滥用了,没有提供任何值。半月板也不能正常工作。
关于菜单应该如何工作的一个很好的例子:http://test.cita.illinois.edu/aria/menubar/menubar1.php
注意:他们使用role=application,但它并不是菜单功能所需要的。
此外,DHTML工作组还就菜单应该如何工作提出了一些建议。实际上,菜单栏是一个带有弹出式菜单的工具栏。请参阅:http://access.aol.com/dhtml-style-guide-working-group/
我希望这是有帮助的。
https://stackoverflow.com/questions/26508506
复制相似问题