ARIA:menubar 角色

menubar 是一种 menu 的表现形式,通常保持可见,并且通常呈水平方向显示。

描述

菜单是向用户提供选择列表的小部件,例如一组操作或函数。menubar 类型的菜单通常显示为一个持续可见的水平命令栏。Menubars 的行为类似于原生操作系统中的 menubar,例如包含下拉菜单的 menubar,通常位于许多桌面应用程序窗口的顶部。

menubar 角色用于创建与许多桌面应用程序窗口顶部附近的 menubar 相似的菜单栏,它是一个视觉上持久、通常是水平的菜单项栏,为用户提供对一致命令集的快速访问。

menubar 包含三种类型的菜单项,包括 menuitemmenuitemradiomenuitemcheckbox。这些菜单项可以选择性地嵌套在一个或多个 group 容器中。组或项可以选择性地用 separator 元素分隔。虽然每个菜单项都必须能够获得焦点,即使是禁用的,但 groupseparator 元素是不可聚焦的。

原生 menubar 的一个例子是,如果你在桌面浏览器中阅读本文,屏幕顶部可能出现的栏。基于 Web 的 menubar 的一个例子是显示“文件 编辑 视图 插入 格式”等内容的水平菜单栏,它通常在 Google 文档的文档名称下方可见。

Menubar 的交互应类似于桌面图形用户界面中典型的菜单栏交互。在 Google Docs 中,每个菜单项都是一个带有弹出子菜单的 menuitem,因此每个菜单项都设置了 aria-haspopup 属性为 true。而 menubar 元素没有。

Menubar 和所有菜单项都是可聚焦的,并且具有 tabindex 属性。当 menubar 通过 Tab 键获得焦点时,键盘焦点会放在第一个菜单项上。菜单中的每个项目都设置了 tabindex-1,除了第一个项目,它的 tabindex 设置为 0

如果 menubar 由于上下文操作(例如快捷键)而获得焦点,EscapeEnter 可能会将焦点返回到调用上下文。话虽如此,请确保不要创建与用户代理、操作系统或辅助技术的快捷键冲突的快捷键——任何 UA、OS 或 AT。

每个菜单项,无论嵌套多深,都可以获得焦点,即使是禁用的。

如果 menubar 有可见的标签,请包含 aria-labelledby 并设置为引用标签元素的值。否则,通过包含描述性的 aria-label 为 menubar 提供可访问名称。

menubar 中的 menuitem 元素可以包含一个子菜单项的子菜单。子菜单可以嵌套多层。通常,外部 menubar 是水平的,所有子菜单都是垂直的。如果不是这种情况,如果你的 menubar 是垂直的,请在 menubar 元素上包含 aria-orientation="vertical"。否则,此属性不是必需的,因为默认值是水平的。

关联的 WAI-ARIA 角色、状态和属性

group 角色

标识一组菜单项

menubar 包含的选择集中的一个选项。可能有一个子菜单。

一组具有相同角色的元素中的一个可勾选的菜单项,其中一次只能勾选一个。

一个具有可勾选状态的菜单项,其可能值为 truefalsemixed

aria-orientation

如果 menubar 是垂直的,请在 menubar 元素上包含 aria-orientation="vertical"。默认方向是 horizontal

键盘交互

当焦点位于 menubar 中时,焦点始终位于菜单栏中的某个菜单项上。当焦点位于菜单栏的顶级 menuitem 上时,必须支持以下键盘交互:

向下箭头

如果当前聚焦的 menuitem 有子菜单,则打开子菜单并将焦点置于子菜单的第一个项上。

向上箭头

(可选) 如果当前聚焦的 menuitem 有子菜单,则打开子菜单并将焦点置于子菜单的*最后一个*项上。

右箭头

将焦点移到下一个项,可以选择从最后一个项环绕到第一个项。

左箭头

将焦点移到前一个项,可以选择从第一个项环绕到最后一个项。

Home

如果不支持箭头键环绕,则将焦点移到 menubar 的第一个项。

End

如果不支持箭头键环绕,则将焦点移到 menubar 的最后一个项。

制表符

将焦点移到 Tab 序列中的下一个元素。如果这会导致退出 menubar,则 menubar 中的所有子菜单都会关闭。

Shift + Tab

将焦点移到 Tab 序列中的前一个元素。如果这会导致退出 menubar,则 menubar 中的所有子菜单都会关闭。

有关焦点位于 menubar 中的 menuitem 时的键盘交互(焦点始终在此),请参阅 menuitem 键盘交互menuitemradio 键盘交互menuitemcheckbox 键盘交互

注意:以上交互假设 menubar 是水平的。如果 menubar 是垂直的,请包含 aria-orientation="vertical",并相应地更改以下键盘按键:

向下箭头

表现同上面描述的 右箭头

向上箭头

表现同上面描述的 左箭头

右箭头

表现同上面描述的 下箭头

左箭头

表现同上面描述的 上箭头

示例

规范

规范
无障碍富互联网应用程序 (WAI-ARIA)
# menubar
未知规范

另见