我有良好的权限,aria-haspopup
适用于子菜单(例如弹出上下文菜单或子级菜单)。它在jQuery UI Selectmenu上使用,也用于此great example.
我无法知道的是aria-haspopup
是否适用于以下两个示例:
target="_blank"
这些情况下aria-haspopup
是否合适?如果没有,是否应该使用ARIA属性?
答案 0 :(得分:21)
正式地说,它应仅用于ARIA spec 1.0:
中的菜单或子菜单表示该元素具有弹出上下文菜单或子级菜单。
Whatsock style guide涵盖了“模态”部分:
通过向触发元素添加属性aria-haspopup =“true”来通知屏幕阅读器用户附加“Popup”可能听起来是个好主意,但这不是一个好主意。 ...简而言之,除非您触发菜单,否则不要使用aria-haspopup。
在将来的版本中有some discussion about expanding the meaning,但目前假设它适用于菜单。
我给了an answer about Bootstrap's tooltips这应该有帮助。
对于弹出式浏览器窗口,无论如何都会由屏幕阅读器宣布,不需要额外的标记。 (注意:屏幕放大镜用户可以使用新窗口的可视指示器。)
答案 1 :(得分:7)
WAI-ARIA 1.1 规范(在撰写本文时为当前规范)expands the use of aria-haspopup
与1.0规范相比:
[{
aria-haspopup
]指示可由元素触发的交互式弹出元素(如菜单或对话框)的可用性和类型。弹出元素通常显示为位于其他内容之上的内容块。作者 必须 确保用作弹出内容容器的元素的角色为
menu
,listbox
,tree
,grid
或dialog
,并且aria-haspopup
的值与弹出容器的角色匹配。
因此,您应该将aria-haspopup
的值设置为与触发元素上的role属性相同的值。如果设置为true
,它将被解释为menu
以符合1.0规范,其中aria-haspopup
仅用于菜单。
但是请注意有关工具提示(例如Bootstrap弹出窗口)的
在这种情况下,
tooltip
不被视为弹出窗口。
弹出式浏览器窗口不是页面上的HTML元素,因此具有target="_blank"
的锚点元素不应具有aria-haspopup
属性。