是一个角色="应用程序"在一个角色="导航"有效?

时间:2014-10-22 13:24:24

标签: internet-explorer accessibility wai-aria nvda

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

我们在Firefox和Chrome中经历过,NVDA成功检测到菜单栏(div#topNav)作为应用程序(可以使用EnterEsc进入和离开),而在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的表现方式也一样有趣吗?

1 个答案:

答案 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/

我希望这有用。