ARIA: option 角色
option 角色用于 listbox 中的可选择项。
描述
option 角色用于标识用户可以在 listbox 中做出的选择。这些选项类似于 <option> 元素在 <select> 元素中,但它们可以包含图像。
所有可选择选项都应具有与状态匹配的 aria-selected,选中时为 true,未选中时为 false。如果选项不可选择,则可以省略 aria-selected。已禁用的选项可以具有 aria-disabled="true" 和 aria-selected="false" 来告知用户选项存在,但已禁用。
option 角色用于标识 listbox 的可选择选项。必须为选项提供可访问的名称。通常,选项的可访问名称应来自元素的后代内容。
作者还可以通过为具有 option 角色的元素指定 aria-label 或 aria-labelledby 来显式地提供可访问的名称。如果使用 aria-label 或 aria-labelledby,并且选项还显示了可见的文本标签,则作者必须确保他们遵守 WCAG 成功准则 2.5.3 标签在名称中。
强烈建议使用 <select> 元素或 <input> 元素(类型为 checkbox 或 radio),如果可能的话。这些原生 HTML 元素提供了键盘交互功能,可以自动为你管理所有后代的焦点。
所有后代都是表现性的
某些类型的用户界面组件,在平台可访问性 API 中表示时,只能包含文本。可访问性 API 无法表示 option 中包含的语义元素。为了解决此限制,浏览器会自动将角色 presentation 应用于任何 option 元素的所有后代元素,因为它是一个不支持语义子级的角色。
例如,考虑以下包含标题的 option 元素。
<div role="option"><h3>Title of my option</h3></div>
由于 option 的后代是表现性的,因此以下代码是等效的
<div role="option"><h3 role="presentation">Title of my option</h3></div>
从辅助技术用户的角度来看,标题不存在,因为前面的代码片段在 可访问性树 中等效于以下内容
<div role="option">Title of my option</div>
关联的 ARIA 角色、状态和属性
关联的角色
listbox-
option必须包含在listbox中或由listbox拥有
状态和属性
aria-selected-
用于描述选项的选择状态。必需的。
aria-checked-
用于描述选项在多选模式下使用时的选中状态。支持
true、false和mixed。可选的。 aria-posinset-
用于描述选项在集合中的位置,当该位置与 DOM 不匹配时,例如虚拟滚动,其中一次只显示一部分选项。可选的。
aria-setsize-
与
aria-posinset一起使用,用于声明选项的总数。可选的。 aria-disabled-
用于指示选项存在但不可编辑。可选的。
-
用于从辅助工具中隐藏选项。它应该只用于隐藏不可见的内容,或隐藏可见的内容(如果它改善了辅助技术的体验,例如冗余内容)。可选的。
aria-invalid-
用于指示选项的值被应用程序认为无效。可选的。
aria-busy-
用于指示元素正在被修改,例如在加载时。可选的。
aria-labelledby-
用于指示哪个元素为选项创建标签。如果标签存在于 DOM 中,则应改用
aria-labelledby。可选的。 aria-label-
用于为选项创建标签。如果标签存在于 DOM 中,则应改用
aria-labelledby。可选的。
(有关详细信息和 ARIA 状态和属性的完整列表,请参见 ARIA option(角色) 文档。)
规范
| 规范 |
|---|
| 可访问的富互联网应用程序 (WAI-ARIA) # option |
| 未知规范 |
另请参见
- HTML
<select>元素 - HTML
<label>元素 - HTML
<option>元素 - ARIA:
combobox角色 - ARIA:
list角色 - ARIA:
listbox角色