1

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

我们体验过,在 Firefox 和 Chrome 中,NVDA 成功地将菜单栏 ( div#topNav) 检测为应用程序(可以使用Enterand进入和离开它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 的行为方式是否相同也会很有趣?

4

1 回答 1

1

在这种情况下,我不会使用 role=application 地标,因为 role=navigation 本身就足够了。地标的目标是改进导航并提供页面内容的概览。添加更多(和嵌套的)地标会增加混乱和复杂性,并且不会为用户提供任何有用的东西。FWIW,我从来没有发现需要使用角色=应用程序。

作为参考,请阅读 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

注意:他们使用角色=应用程序,但菜单栏功能不需要它。

此外,DHTML 工作组对菜单栏的工作方式有一些建议。本质上,菜单栏是带有弹出菜单的工具栏。请参阅: http ://access.aol.com/dhtml-style-guide-working-group/

我希望这是有帮助的。

于 2014-10-28T21:44:58.610 回答