我们目前正在测试新PostFinance.ch网站的某些方面。
我们在Firefox和Chrome中经历过,NVDA成功检测到菜单栏(div#topNav
)作为应用程序(可以使用Enter
和Esc
进入和离开),而在Internet Explorer中,它没有。
在IE中检查了一下后,我发现IE似乎不喜欢这样:
<div role="navigation">
<div role="application">
...
</div>
</div>
使用DOM Inspector直接将属性更改为以下内容并重新加载NVDA(NVDA+F5
)时,它正在运行:
<div role="application">
<div><!-- No role here! -->
...
</div>
</div>
但它并没有宣布“导航”和“应用程序”,而只是“应用程序”,而在FF和Chrome(原版)中它宣布了两者,这是我觉得有用的。
现在我的问题:谁是正确的,FF / Chrome还是IE?它是否允许“为应用程序分配许多角色”?有没有办法可能做到这样的事情:<div role="application navigation">
?
JAWS或其他AT的表现方式也一样有趣吗?
答案 0 :(得分:1)
在这种情况下,我不会使用role = application landmark,因为role = navigation本身就足够了。地标的目标是改进导航并提供页面上内容的概述。添加更多(和嵌套)地标会增加混乱,复杂性,并且不会为用户提供任何有用的内容。 FWIW,我从未发现需要使用role = application。
供参考,请阅读Marco Zehe的建议 - 这是几年之久,但我认为它仍然非常相关: 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/
我希望这有用。