ARIA: aria-haspopup 属性

aria-haspopup 属性用于指示在设置了该属性的元素上可以触发的交互式弹出元素的可用性和类型。

描述

在 ARIA 中,当触发显示在其他内容之上的交互式菜单、列表框、树、网格和对话框时,它们被视为“弹出窗口”。这些弹出窗口由页面上的一个或多个交互式元素触发。交互式元素将触发的弹出窗口的可用性和类型应使用 aria-haspopup 状态进行标识。

存在 aria-haspopup 属性,并带有六个枚举值之一:menulistboxtreegriddialogtrue,表示该元素可以触发弹出窗口以及将显示哪种类型的弹出窗口。反过来,弹出窗口的元素必须具有指示的角色。值 true 等同于 menu。任何其他值,包括空字符串或其他 角色,都将被视为设置了 false

在此上下文中,tooltip 不被视为弹出窗口,因为它不具有交互性。

注意:请确保作为弹出窗口内容容器的元素的角色是 menulistboxtreegriddialog,并且 aria-haspopup 的值与弹出窗口容器的角色相匹配。

aria-haspopup 状态通知辅助技术用户存在一个弹出窗口及其类型,但不提供任何交互性。为了使弹出窗口可以通过键盘访问,请确保带有 aria-haspopup 的元素是可聚焦的并且能够触发弹出窗口,存在用于打开弹出窗口的键盘机制,并且弹出窗口元素管理其所有后代的焦点。

注意: ARIA 不实现可访问的功能。ARIA 仅传达您功能的预期行为。

创建 menubar 时,父级 menuitem 应设置 aria-haspopup="menu"(或 true)。任何打开菜单的按钮都应具有 button 角色,或者最好是 <button> 元素,并且还应设置 aria-haspopup="menu"(或 true)。带有弹出菜单的 Tab 元素也应设置 aria-haspopup="menu"。请注意,不应使用 menubar 来创建网站导航。

注意: 具有 combobox 角色的元素具有隐式的 aria-haspopup 值为 listbox

false(默认)

该元素没有弹出窗口。

true

弹出窗口是菜单。

弹出窗口是菜单。

listbox

弹出窗口是列表框。

tree

弹出窗口是树。

grid

弹出窗口是网格。

dialog

弹出窗口是对话框。

相关接口

Element.ariaHasPopup

Element 接口的 ariaHasPopup 属性反映了 aria-haspopup 属性的值,该属性指示了由元素触发的交互式弹出元素(例如菜单或对话框)的可用性和类型。

ElementInternals.ariaHasPopup

ariaHasPopup 属性是 ElementInternals 接口的一部分,它反映了 aria-haspopup 属性的值。

相关角色

用于角色

继承到角色

规范

规范
无障碍富互联网应用程序 (WAI-ARIA)
# aria-haspopup

另见