我们正在实施(即添加)WAI-ARIA支持到门户网站的主导航菜单。菜单是这里所示:推荐WAI-ARIA实施导航栏/菜单
菜单是由经典<ul>
/<li>
/<a>
DOM树来实现,用CSS看起来像水平制表风格。
对于这样一个小部件,推荐的WAI-ARIA实现是什么?
我打算在这里发布一个可能的实现作为答案,以便让事情顺利进行。
如果您知道/不关心WAI-ARIA上下文中的CSS导航菜单,请跳过其余段落。
TA
序言(这么说)
我读过从w3org最近WAI-ARIA规范的许多地方的一般理解,分类,等等。然后,我已阅读了有关UI小部件实现的几个示例。在这样一个CSS导航菜单中,我找不到任何特别针对目标的例子。我一直发现的最接近的小部件是Menu,MenuBar和TabPanel。当然,我也看过Free ARIA Community group(这个问题最初是在这里发布的)。
我会说,没有这些小部件完全匹配(CSS)导航菜单。例如,TabPanel可以控制页面中的一些内容( - > aria-controls),也可能是MenuBar;但我不确定导航菜单是否控制页面中的内容(它控制着要显示的下一页)。没有更进一步,还有一些其他的差异。 参考文献在帖子末尾。如果有人认为导航菜单更好(或更适合),我们很乐意了解它们。
参考
- https://developer.mozilla.org/en-US/docs/Accessibility/ARIA/ARIA_Test_Cases#Menubar_and_Menu
- http://wiki.jqueryui.com/w/page/38666403/Menubar
- http://www.oaa-accessibility.org/examplep/menubar2/
- http://test.cita.illinois.edu/aria/menubar/
-
- http://whatsock.com/modules/aria_tabs_menu_modules/demo.htm
- http://www.w3.org/TR/wai-aria-practices/#menu
- http://www.w3.org/TR/wai-aria/roles
- http://www-03.ibm.com/able/resources/wai_aria_intro.html
我几乎已经准备好放弃咏叹调规格,直到我读到你的答案。对我来说,这是我在菜单中缺少的“演示文稿”角色,导致出现奇怪的行为,例如每个菜单项被读作“1之1”而不是“1 [长度]”。我在网上看到的大多数例子都会导致这种不受欢迎的行为,除了你的回答之外,我还没有发现任何说'ul [role = menu]> li [role = presentation]> [role = menuitem]。做得好。 –
实际上,当我尝试使用'ul [role = menu]> li> a [role = menuitem]'时,“1的1”问题。可以肯定的是,大多数人都在推荐'ul [role = menu]> li [role = menuitem]> a',这根本不起作用!它会读取菜单项,但由于没有链接集中,你不能去任何地方。 –
很高兴帮助!据我所知,每当你为* aestetichal *目的插入一些(嵌套的)节点,即定位,显示/隐藏,背景着色等时,就需要xxx [role = presentation]。但是这些节点对于* content *的观点来说没有任何意义,因此您将它们标记为任何可访问性工具。 – superjos