WAI-ARIA 角色

ARIA 角色为内容提供语义含义,使屏幕阅读器和其他工具能够以与用户对该类型对象预期一致的方式呈现和支持与对象的交互。 ARIA 角色可用于描述 HTML 中不存在的元素,或者存在但尚未获得完整浏览器支持的元素。

默认情况下,HTML 中的许多语义元素都有一个角色;例如,<input type="radio"> 具有 "radio" 角色。HTML 中的非语义元素没有角色;<div><span> ללא תוספת סמנטיקה יחזירו null. role 属性可以提供语义。

通过 role="role type" 将 ARIA 角色添加到 HTML 元素,其中 role type 是 ARIA 规范中角色的名称。某些角色需要包含关联的 ARIA 状态或属性;其他角色仅在与其他角色关联的情况下有效。

例如,<ul role="tabpanel"> 将被屏幕阅读器宣布为“选项卡面板”。但是,如果选项卡面板没有嵌套的选项卡,那么具有选项卡面板角色的元素实际上不是选项卡面板,并且无障碍性实际上会受到负面影响。

每个角色关联的 ARIA 状态和属性 包含在角色页面中,每个属性也有一个专门的页面。

ARIA 角色类型

ARIA 角色分为 6 类

1. 文档结构角色

文档结构角色用于提供对内容部分的结构描述。大多数这些角色不再应该使用,因为浏览器现在支持具有相同含义的语义 HTML 元素。没有 HTML 等效元素的角色,例如 presentation、toolbar 和 tooltip 角色,为屏幕阅读器等辅助技术提供有关文档结构的信息,因为没有可用的等效原生 HTML 标签。

对于大多数文档结构角色,都提供并支持语义 HTML 等效元素。避免使用

这些是为完整性而包含的,但在大多数情况下很少,甚至从未有用

2. 小部件角色

各种小部件角色用于定义常见交互模式。与文档结构角色类似,其中一些角色复制了良好支持的原生 HTML 元素的语义,不应使用。两个列表之间的区别在于,一般来说,小部件角色需要 JavaScript 交互,而文档结构角色并不一定需要。

请避免使用按钮复选框网格单元格链接菜单项菜单项复选框菜单项单选框选项进度条单选框文本框,这些我们已经为了完整性而包含进来。对于大多数情况来说,都存在语义等效的元素,并且支持可访问的交互性。请查看各个角色文档以获取更多信息。

复合小部件角色

请避免使用网格列表框单选组,这些我们已经为了完整性而包含进来。请查看各个角色文档以获取更多信息。

请注意,还有一个小部件角色 (role="widget"),这是一个抽象角色,不属于小部件角色类别。

3. 地标角色

地标角色提供了一种识别网页组织和结构的方式。通过对页面部分进行分类和标记,以编程方式表示通过布局在视觉上传递的结构信息。屏幕阅读器使用地标角色来提供页面重要部分的键盘导航。请谨慎使用这些角色。过多的地标角色会在屏幕阅读器中产生“噪音”,从而难以理解页面的整体布局。

4. 实时区域角色

实时区域角色用于定义内容会动态更改的元素。有视力的用户可以在视觉上明显地看到动态更改。这些角色可以帮助视力低下和失明的用户了解内容是否已更新。辅助技术(如屏幕阅读器)可以被设置为宣布动态内容更改

5. 窗口角色

窗口角色定义了主文档窗口内的子窗口,位于同一个窗口内,例如弹出模式对话框

6. 抽象角色

抽象角色仅供浏览器使用,以帮助组织和简化文档。开发人员编写 HTML 标记时不应使用它们。这样做不会导致任何有意义的信息被传达给辅助技术或用户。

请避免使用命令复合输入地标范围角色类型部分部分标题选择结构小部件窗口

注意: 请不要在您的网站和应用程序中使用抽象角色。它们供浏览器使用。仅供参考。

警告: “抽象角色用于本体。作者**绝不可**在内容中使用抽象角色。” - WAI-ARIA 规范

在 MDN 上定义的角色

以下是 MDN 上讨论的 WAI-ARIA 角色的参考页面。

ARIA:alert 角色

alert 角色用于重要信息,通常是时间敏感的信息。alert 是一种 status,被处理为原子实时区域。

ARIA:alertdialog 角色

alertdialog 角色应用于模式警报对话框,这些对话框会中断用户的操作流程,以传达重要信息并需要响应。

ARIA:application 角色

application 角色指示辅助技术将元素及其所有子元素视为类似于桌面应用程序,并且不应使用任何传统的 HTML 解释技术。此角色仅应用于定义非常动态且类似桌面的 Web 应用程序。大多数移动和桌面 Web 应用程序被视为此目的的应用程序。

ARIA:article 角色

article 角色表示页面的一部分,可以在页面、文档或网站上独立存在。它通常用于设置相关的内容项,例如评论、论坛帖子、新闻文章或其他在一个页面上分组在一起的项目。

ARIA:banner 角色

banner 角色用于定义全局站点标题,其中通常包括徽标、公司名称、搜索功能,以及可能包括全局导航或口号。它通常位于页面顶部。

ARIA:button 角色

button 角色用于可点击的元素,这些元素在用户激活时会触发响应。添加 role="button" 会告诉屏幕阅读器该元素是一个按钮,但不提供按钮功能。请改用 buttoninput 以及 type="button"

ARIA:cell 角色

ARIA role 属性的 cell 值将元素标识为表格容器中的单元格,该表格容器不包含列或行标题信息。要获得支持,单元格必须嵌套在具有 row 角色的元素中。

ARIA:checkbox 角色

checkbox 角色用于可选中交互式控件。包含 role="checkbox" 的元素还必须包括 aria-checked 属性,以将复选框的状态公开给辅助技术。

ARIA:columnheader 角色

ARIA role 属性的 columnheader 值将元素标识为行中的单元格,该单元格包含列的标题信息,类似于具有列范围的本机 th 元素。

ARIA:combobox 角色

combobox 角色将元素标识为一个input,它控制另一个元素,例如 listboxgrid,这些元素可以动态弹出以帮助用户设置该input 的值。

ARIA:command 角色

command 角色定义一个执行操作但不会接收输入数据的窗口小部件。

ARIA:comment 角色

comment 角色在语义上表示对页面上某些内容的评论/反应,或对先前评论的反应。

ARIA:complementary 角色

complementary 地标角色 用于指定一个支持部分,该部分与主要内容相关,但在分离时可以独立存在。这些部分通常以侧边栏或调用框的形式呈现。如果可能,请改用 HTML <aside> 元素

ARIA:composite 角色

composite 抽象角色 表示可能包含可导航后代或拥有子元素的窗口小部件。

ARIA:contentinfo 角色

contentinfo 角色定义一个页脚,其中包含识别信息,例如版权信息、导航链接和隐私声明,这些信息存在于网站中的每个文档中。此部分通常称为页脚。

ARIA:definition 角色

definition ARIA 角色表示该元素是术语或概念的定义。

ARIA:dialog 角色

dialog 角色用于标记基于 HTML 的应用程序对话框或窗口,这些对话框或窗口将内容或 UI 与其余 Web 应用程序或页面隔离开来。对话框通常使用覆盖层放置在页面内容的顶部。对话框可以是非模式的(仍然可以与对话框之外的内容进行交互)或模式的(只能与对话框中的内容进行交互)。

ARIA: directory 角色

directory 角色用于引用组成员的列表,例如静态目录列表。

ARIA:document 角色

document 角色用于复杂复合窗口小部件应用程序 中的可聚焦内容,辅助技术可以将阅读上下文切换回阅读模式。

ARIA:文档结构角色

ARIA 文档结构角色用于为内容部分提供结构描述。

ARIA:feed 角色

feed 是一个动态可滚动的 list,其中包含 articles,当用户滚动时,文章会从列表的任一端添加或删除。feed 使屏幕阅读器能够使用浏览模式阅读光标来读取和滚动通过可能通过加载更多内容而无限滚动的信息流,当用户阅读时,内容会继续滚动。

ARIA:figure 角色

ARIA figure 角色可用于识别页面内容中的图形,其中适当的语义尚不存在。图形通常被认为是一个或多个图像、代码片段或其他内容,这些内容以与普通文本流不同的方式传递信息。

ARIA:form 角色

form 角色可用于识别页面上的元素组,这些元素组提供与 HTML 表单等效的功能。除非表单具有 可访问的名称,否则它不会被公开为地标区域。

ARIA:generic 角色

generic 角色创建一个没有名称的容器元素,它本身没有语义意义。

ARIA:grid 角色

grid 角色用于包含一个或多个行单元格的窗口小部件。每个单元格的位置都很重要,可以使用键盘输入来聚焦。

ARIA:gridcell 角色

gridcell 角色 用于制作网格树状网格 中的单元格。它旨在模仿 HTML td 元素的功能,用于表格式信息分组。

ARIA:group 角色

group 角色标识一组用户界面对象,这些对象不打算被辅助技术包含在页面摘要或目录中。

ARIA:heading 角色

heading 角色将此元素定义为页面或部分的标题,aria-level 属性提供更多结构。

ARIA:img 角色

ARIA img 角色可用于识别页面内容中的多个元素,这些元素应被视为单个图像。这些元素可以是图像、代码片段、文本、表情符号或其他可以组合起来以视觉方式传递信息的內容。

ARIA:input 角色

input 抽象角色是允许用户输入的窗口小部件的通用类型。

ARIA:landmark 角色

地标是页面的重要子部分。landmark 角色是内容部分 aria 角色值的抽象超类,这些内容部分足够重要,用户可能希望能够直接导航到这些部分。

link 窗口小部件提供对资源的交互式引用。目标资源可以是外部的也可以是本地的;即,可以是当前页面或应用程序之外的,也可以是内部的。

ARIA:list 角色

ARIA list 角色可用于标识项目列表。它通常与 listitem 角色一起使用,用于标识包含在列表中的列表项。

ARIA:listbox 角色

listbox 角色用于列表,用户可以选择一个或多个项,这些项是静态的,并且与 HTML select 元素不同,它们可能包含图像。

ARIA:listitem 角色

ARIA listitem 角色可用于标识项目列表中的项目。它通常与 list 角色一起使用,用于标识列表容器。

ARIA:log 角色

log 角色用于标识创建 实时区域 的元素,在该区域中,新信息以有意义的顺序添加,旧信息可能会消失。

ARIA:main 角色

main 地标角色用于指示文档的主要内容。主要内容区域包含与文档的中心主题或应用程序的主要功能直接相关或扩展的内容。

ARIA:mark 角色

mark 角色表示由于内容在封闭上下文中相关性而被标记或突出显示以供参考或注释目的的内容。

ARIA:marquee 角色

marquee 是一种包含非基本信息且频繁变化的 活动区域

ARIA:math 角色

math 角色表示内容代表数学表达式。

ARIA:menu 角色

menu 角色是一种复合小部件类型,为用户提供选择列表。

ARIA:menubar 角色

menubarmenu 的一种呈现形式,通常保持可见并通常水平呈现。

ARIA:menuitem 角色

menuitem 角色表示元素是包含在 menumenubar 中的一组选择中的选项。

ARIA:menuitemcheckbox 角色

menuitemcheckbox 是一种 menuitem,其可选中状态的可能值为 truefalsemixed

ARIA:menuitemradio 角色

menuitemradio 是一组具有相同角色的可选中 menuitem,其中一次只能选中一个。

ARIA:meter 角色

meter 角色用于标识用作量表的元素。

ARIA:navigation 角色

navigation 角色用于标识用于在网站或页面内容中导航的主要链接组。

ARIA:none 角色

none 角色是 presentation 角色的同义词;它们都从可访问性树中删除元素的隐式 ARIA 语义。

ARIA:note 角色

note 角色建议一个其内容与主要内容无关或补充的区域。

ARIA:option 角色

option 角色用于 listbox 中的可选中项。

ARIA:presentation 角色

presentation 角色及其同义词 none 从可访问性树中删除元素的隐式 ARIA 语义。

ARIA:progressbar 角色

progressbar 角色定义一个元素,该元素显示长时间任务的进度状态。

ARIA:radio 角色

radio 角色是 radiogroup 中一组可选中单选按钮中的一个,其中一次只能选中一个单选按钮。

ARIA:radiogroup 角色

radiogroup 角色是一组 radio 按钮。

ARIA:range 角色

range 抽象角色是一种通用结构角色类型,表示一系列值。

ARIA:region 角色

region 角色用于标识作者认为重要的文档区域。它是一个通用的地标,可在其他地标角色都不适用时用于辅助导航。

ARIA:roletype 角色

roletype 角色,一种 抽象角色,是所有其他 ARIA 角色继承的基角色。

ARIA:row 角色

具有 role="row" 的元素是表格结构中的一行单元格。一行包含一个或多个单元格、网格单元格或列标题,以及可能在一个 gridtabletreegrid 中的行标题,以及可选地在 rowgroup 中。

ARIA:rowgroup 角色

具有 role="rowgroup" 的元素是表格结构中的一组 rowgroup 包含一个或多个 单元格网格单元格列标题行标题 行,位于 gridtabletreegrid 中。

ARIA:rowheader 角色

具有 role="rowheader" 的元素是一个 单元格,它包含表格结构 gridtabletreegrid 的标题信息。

ARIA:scrollbar 角色

scrollbar 是一个图形对象,用于控制查看区域内内容的滚动。

ARIA:search 角色

search 角色用于标识搜索功能;页面上用于搜索页面、网站或网站集合的部分。

ARIA:searchbox 角色

searchbox 角色表示元素是一种旨在指定搜索条件的 textbox 类型。

ARIA:section 角色

section 角色,一种抽象角色,是可呈现结构化容器组件的超类角色。

ARIA:sectionhead 角色

sectionhead 角色,一种抽象角色,是其相关部分主题的标签或摘要的超类角色。

ARIA:select 角色

select 角色,一种抽象角色,是允许用户从一组选择中进行选择的表单小部件的超类角色。

ARIA:separator 角色

separator 角色表示元素是一个分隔符,用于分隔和区分内容部分或菜单项组。本机主题断裂 hr 元素的隐式 ARIA 角色是 separator

ARIA:slider 角色

slider 角色定义一个输入,用户可以在其中从给定范围内选择一个值。

ARIA:spinbutton 角色

spinbutton 角色定义了一种范围类型,它期望用户从离散选择中选择一个值。

ARIA:status 角色

status 角色定义一个包含供用户使用的咨询信息的 活动区域,这些信息没有重要到成为 alert

ARIA:structure 角色

structure 角色用于文档结构元素。

ARIA:suggestion 角色

suggestion 角色在语义上表示对可编辑文档的单个建议更改。这应该用于包裹具有 insertion 角色的元素和具有 deletion 角色的元素的元素。

ARIA:switch 角色

ARIA switch 角色在功能上与 checkbox 角色相同,只是它不表示“选中”和“未选中”状态(这些状态在意义上相当通用),而是表示“开启”和“关闭”状态。

ARIA:tab 角色

ARIA tab 角色表示 tablist 中的交互式元素,当被激活时,将显示其关联的 tabpanel

ARIA:table 角色

ARIA role 属性的 table 值标识包含该角色的元素,该元素具有非交互式表格结构,其中包含以行和列排列的数据,类似于本机 table HTML 元素。

ARIA:tablist 角色

tablist 角色标识用作一组 tabs 的容器的元素。选项卡内容被称为 tabpanel 元素。

ARIA:tabpanel 角色

ARIA tabpanel 是与 tab 关联的分层内容资源的容器。

ARIA:term 角色

term 角色可用于词语或短语,并附带可选的相应 definition

ARIA:textbox 角色

textbox 角色用于标识允许输入自由格式文本的元素。只要有可能,就不要使用此角色,而是使用 input 元素,其 type="text" 用于单行输入,或 textarea 元素用于多行输入。

ARIA:timer 角色

timer 角色指示辅助技术,元素是一个数字计数器,列出了从起点经过的时间量或到终点的剩余时间。辅助技术不会宣布计时器更新,因为它具有 off 的隐式 aria-live 值。

ARIA:toolbar 角色

toolbar 角色将包含元素定义为以紧凑的视觉形式表示的一组常用功能按钮或控件。

ARIA:tooltip 角色

tooltip 是一种上下文文本气泡,它显示元素的描述,该描述在指针悬停或键盘焦点时出现。

ARIA:tree 角色

tree 是一种小部件,允许用户从层次结构组织的集合中选择一个或多个项目。

ARIA:treegrid 角色

treegrid 角色将元素标识为网格,其行可以像 tree 一样展开和折叠。

ARIA:treeitem 角色

treeitemtree 中的一个项目。

ARIA:widget 角色

widget 角色,一种 抽象角色,是图形用户界面 (GUI) 的交互式组件。

ARIA:window 角色

window 角色定义浏览器或应用程序窗口。

另请参阅