另见 翻译.
Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
本规范定义了在[HTML]元素上使用 无障碍富互联网应用(WAI-ARIA)1.2 和 数字出版 WAI-ARIA 模块 1.1 属性的编写规则(作者一致性要求)。 本规范的主要目标是为作者(即网页开发者)使用的一致性检查工具的使用定义要求。这些要求将帮助作者开发网络内容,包括定制接口和组件, 利用 ARIA 来补充或扩展宿主语言 [HTML] 的功能。
本节介绍本文档在发布时的 状态。当前 W3C 出版物的列表以及本技术报告的最新修订版可在 W3C 标准与草案 索引中找到。
HTML 中的 ARIA 是 [HTML] 规范模块。本规范 模块引用但未明确定义的任何 HTML 特性、一致性 要求或术语,均由 HTML 标准定义。
自本规范于 2021 年 12 月 09 日成为 W3C 推荐标准以来, 已进行了以下实质性更改:
summary 元素的角色和属性。
label 元素,以允许在该元素未与可标注元素关联时指定 role 和
aria-* 属性。
selectedcontent 元素,并更新
button 元素在自定义 select 元素的上下文中使用时
所允许的内容。
html 元素是 generic 元素,并且
不建议在该元素上使用
document 或 generic 角色。
img 元素,以允许 math 角色。
image 角色纳入为 img 角色的首选同义词。
hidden 属性一起使用时对 aria-hidden 的许可。
separator 角色。
img 元素所允许的内容,使其取决于该元素是否具有
可访问名称。
address 和 hgroup 元素到
group 角色的更新映射,更新这些元素所允许的内容。
aside 元素,以允许 dpub
doc-glossary 角色。
button、input type=button、input type=image、
input type=reset 和 input type=submit 元素,使其允许的角色保持一致。
s 元素允许的角色,以表明在该元素上使用
role=deletion 将被视为冗余。
summary 元素上允许的 aria-* 属性
和角色。
li 元素与作为父元素的列表元素之间
存在或不存在的祖先关系,更新该元素
允许的角色。
search 元素。
body 元素上使用 aria-hidden=true。
figure 元素允许的角色,以纳入 doc-example。
datalist 元素上使用角色和 aria-* 属性。
checked 属性的元素上使用
aria-checked。
nav
元素上使用 none 和 presentation 角色。
div 元素是
dl 元素的子元素时,限制其允许的角色。
button 元素上使用 combobox 角色。
允许在 input type=button 元素上使用 combobox 和
checkbox 角色。
li 元素上 doc-biblioentry 和 doc-endnote
角色的许可。
这些角色已在数字出版
WAI-ARIA 模块 1.1中弃用。
img alt="some text" 元素上使用 radio 角色。
wbr
元素仅允许 none 和 presentation 角色。
对 br 和 wbr 元素仅允许
aria-hidden 全局属性。
section 元素上使用 group 角色。
href 的 area
元素上使用 link 和 button 角色。
picture 元素上使用 aria-hidden 属性。
有关本规范所做更改(包括信息性和编辑性更新)的完整列表,请参阅 GitHub 上所有已关闭的拉取 请求。
本文档由无障碍富互联网 应用工作组使用 推荐标准 流程发布为推荐标准。
W3C 建议广泛部署本规范,作为 Web 的标准。
W3C 推荐标准是经过广泛 共识建立后,由 W3C 及其成员认可,并且 工作组成员承诺为实现提供 免版税许可 的规范。 对本推荐标准的未来更新可能会纳入 新特性。
本文档由一个依据 W3C 专利 政策运作的工作组编制。 W3C 维护一份 与该工作组交付成果相关的所有专利披露的公开列表; 该页面还包含 披露专利的说明。实际 知晓某项专利,并认为该专利包含 必要权利要求 的个人,必须依照 W3C 专利政策第 6 节披露相关信息。
本文档受 2025 年 8 月 18 日 W3C 流程文档管辖。
本节为非规范内容。
通过使用 ARIA,作者可以指定超出原生 HTML 当前能力范围的语义。这非常有用,因为它为作者提供了创建小部件的机会,或者为原生 HTML 特性暴露特定可访问状态和属性, 这些仅使用 HTML 是无法实现的。
例如,button 元素没有原生 HTML 特性用于暴露“按下”状态。ARIA 允许作者通过指定 aria-pressed 属性来扩展该元素的语义,
使听觉用户界面可以与控件的视觉呈现保持一致。
在以下示例中,button 元素允许用户在网页应用中切换某个设置的状态。aria-pressed 属性用于增强 button 元素。
处于“按下”状态时,该信息可被辅助技术用户感知。
<button aria-pressed=true>...</button>
也存在某些情况下,某些 aria-* 属性允许在具有特定 role 的元素上使用,
而等效的原生属性在 HTML 本身中目前并不合法。
例如,HTML 没有禁用超链接(a href 元素)的直接概念。诸如 <a href="..." disabled> ... </a>
的写法是无效的,
并且不会被辅助技术识别。
ARIA 在这方面与 HTML 不同,允许在具有显式 role=link 的元素上指定 aria-disabled 属性。
如果作者在 HTML 超链接上指定 aria-disabled=true,用户代理不会在功能上做出不同处理(超链接仍可点击/操作),
但它会向辅助技术暴露为处于禁用状态。
同样,原生 HTML option 元素作为 select 的后代只能设置为 selected,
而具有显式 option 角色的元素不仅可以使用等效的 aria-selected,也可以使用 aria-checked 属性,
支持超越原生 select 元素能力的小部件/结构。
不幸的是,在 ARIA 和 HTML 功能相近但允许方式不同的场景下,可能导致支持和用户体验的不一致。 在 ARIA 允许而 HTML 不支持的情况下,通常建议作者实现完全定制的 ARIA 小部件,对作者和用户更有利。
在下面的示例中,一个超链接需要以禁用状态进行传达。HTML 不允许在超链接上使用 disabled 属性,
使用 aria-disabled=true 虽可向辅助技术传达禁用状态,但实际上并不会禁用该元素。
最有效的做法是移除 href 属性,使
a
元素成为占位符,
然后通过 ARIA 为该占位链接传达其预期角色和状态。
<a role=link aria-disabled=true>...</a>
本节为非规范内容。
ARIA 用于修正或调整元素的角色,当需要向用户暴露不同角色时很有用。但通常作者或用户不宜使用 ARIA 将交互元素(如
button)覆盖为通常由非交互元素暴露的角色。例如标题元素。
如下例,在
button
元素上使用 role=heading。
这是不允许的,因为 button 元素具有默认功能,与标题角色的用户预期冲突。
<button role="heading">search</button>
作者需要采取额外措施确保移除 button 的默认功能和表现,即使这样也可能无法完全抑制该元素的隐式特性,
具体取决于用户如何与网页交互。例如启用 Windows 高对比度模式,或在浏览器阅读模式下查看网页。
下例展示了
button
元素被显式赋予 role=button。
其实无需指定该角色,因为“button”元素本身已经隐式暴露为 button 角色。
实践中,这种冗余通常不会导致意外副作用,除了让标记变得冗长,并错误引导其他作者认为这种做法有用。
请参考 3.3
谨慎处理副作用 章节,了解指定不必要角色可能引发的问题。
<!-- 避免这样做! -->
<button role="button">...</button>
类似地,以下代码在
fieldset
元素上使用 role=group,并在
main
元素上使用 role=main。
这是不必要的,因为 fieldset 元素会隐式公开为
role=group,而 main 元素同样会
隐式公开为 role=main。
<!-- 避免这样做! -->
<fieldset role="group">...</fieldset>
<!-- 同样,也要避免这样做! -->
<main role="main">...</main>
下例在
ul
元素上使用了 role=list。
由于 ul 元素隐式有 list 角色,显式添加该角色一般会被认为是冗余的。
不过,如果视觉呈现去除了列表项的标记,一些用户代理会抑制列表的隐式 ARIA 语义。在此类特定情形下,
若确需暴露该角色,作者可以显式添加。
<!-- 一般避免这样做! -->
<ul role="list">...</ul>
下例在
summary
元素上使用了 role=button。
这是不必要的,并可能导致跨平台问题。例如,阻止元素正确暴露其状态,并强制采用 button 角色,
而原本可由平台或浏览器暴露为特定角色。
<details>
<!-- 避免这样做! -->
<summary role="button">more information</summary>
...
</details>
可访问富互联网应用(WAI-ARIA)1.2 定义了许多不应由作者使用的角色。
这些角色多数归为 抽象角色,明确规定不应由作者使用。
下例演示了抽象 select 角色的无效用法,作者本意可能是想用 combobox 角色。
<!-- 不要这样做! -->
<div role="select" ...>...</div>
ARIA 还定义了 generic 角色,
用以实现与部分没有更具体 ARIA 语义的 HTML 元素功能对齐。例如 HTML 的
div
和
span
等元素。ARIA 不建议作者使用 generic 角色,其设计初衷是供用户代理实现者使用。
下例中,作者应使用 div 替换 article 元素,而不是使用 generic 角色。
如果无法更改 HTML 元素,可以指定 presentation 或 none 角色,
以移除 article 元素的隐式角色。
<!-- 避免这样做! -->
<article role="generic" ...>...</article>
此外,ARIA 在 与宿主语言语义冲突中明确说明, 如果作者同时使用原生 HTML 特性和 ARIA 属性暴露状态和属性,则宿主语言特性优先于同时使用的显式 ARIA 属性。
例如,下例作者使用了 HTML 的 input type=checkbox,并指定了 aria-checked=true。
但用户代理应忽略 aria-checked 属性,而是根据表单控件的原生特性暴露状态。
<!-- 不要这样做! -->
<input type="checkbox" checked aria-checked="false">
虽然 ARIA 可用于改变 HTML 特性对辅助技术用户的暴露方式,但这些修改不会改变 HTML 的底层解析和允许内容模型。
例如,
div
元素允许作者指定任意 role,但这并不意味着可将其用在超出 HTML 对该元素定义的规则范围之外。
例如,下例作者在 div 元素上指定了 link 角色。
虽然 HTML 允许超链接(暴露为 role=link)成为 p 元素的后代,但 HTML 解析器不允许 div 成为
p 的后代。
<!-- 不要这样做! -->
<p>
... <div role=link tabindex=0>...</div> ...
</p>
HTML 解析器会将上述标记输出为如下结构:
<!-- 上例的标记实际渲染如下 -->
<p>...</p>
<div role=link tabindex=0>...</div>
...
<p></p>
<!-- 替换 div 为 span。span 可作为 p 元素的后代! -->
<p>
... <span role=link tabindex=0>...</span> ...
</p>
虽然本规范指出每个 HTML 元素可指定的 ARIA 属性, 但该示例说明即使角色允许,实际使用的上下文依然可能导致渲染和可访问性问题。
下表为在 HTML 文档中使用 ARIA 标记提供了逐元素的规范性文档一致性要求。 此外,还指出了适用于HTML 元素的 隐式 ARIA 语义。 这些元素的隐式 ARIA 语义在 HTML AAM 中定义。
第一列单元格中的每个语言特性(元素)均隐含同一行第二列单元格中给出的 ARIA 语义
(角色、状态和特性)。
每行的第三个单元格定义作者可以在该元素上指定的 ARIA role 值和 aria-* 属性。
如果第三列的单元格中包含术语 任何 role,
则表示可以在该元素上使用任何 role 值。不过,不建议作者在这些元素上指定
元素的隐式角色、generic 角色或
已被 ARIA 弃用的角色。
如果第三列的单元格中包含术语 无
role,则表示
作者不得覆盖 HTML 元素的隐式 ARIA 语义或原生语义。
WAI-ARIA 标识了具有 禁用状态和特性的角色。 这些角色不允许作者指定某些 WAI-ARIA 属性。 公开这些隐式 WAI-ARIA 角色的 HTML 元素也禁止作者 指定这些 WAI-ARIA 属性。
被标识为禁止命名的元素,是指作者不得为其指定
aria-label 或 aria-labelledby 属性的元素,除非该元素允许使用
允许作者命名的显式 WAI-ARIA 角色覆盖其隐式角色。有关更多信息,请参阅4.1
使用 ARIA 属性为元素命名的要求。
尽管不建议设置与
隐式 ARIA 语义相匹配的 ARIA role 和/或 aria-* 属性,
但在某些情况下,显式设置这些属性可能
会有所帮助——例如,对于不公开某些元素的隐式 ARIA 语义的用户代理。
尽管使用下表所述的数字出版 WAI-ARIA 模块 1.1
role 值是符合规范的,但这些角色
并非旨在用于网站实现。如果将这些角色用于数字出版
行业范围之外的用途,则需要进一步进行手动测试,以确保向
用户提供预期的体验。
| HTML 元素 |
隐式 ARIA 语义 (在标记中显式指定这些 不推荐) |
允许的 ARIA 角色、状态和属性 |
|---|---|---|
a
带有
href
|
role=link
|
角色:
DPub 角色:
全局
不推荐在带有 注
如果需要以编程方式将链接传达为“已禁用”,
请移除
href
属性。
|
a
不带
href
|
role=generic
|
否则,可以使用全局
|
abbr
|
无对应角色 |
否则,可以使用全局
|
address
|
role=group
|
否则,可以使用全局
|
area
带有
href
|
role=link
|
除
全局 |
area
不带
href
|
role=generic
|
角色:
否则,可以使用全局
|
article
|
role=article
|
角色:
全局 |
aside
|
role=complementary
|
角色:
DPub 角色:
全局 |
audio
|
无对应角色 |
角色:
全局 |
| 自主 自定义元素 |
从作者定义的
否则为 |
如果角色由
否则,可以使用任何
如果暴露为
否则,可以使用全局
|
b
|
role=generic
|
否则,可以使用全局
|
base
|
无对应角色 |
不得使用 |
bdi
|
role=generic
|
否则,可以使用全局
|
bdo
|
role=generic
|
否则,可以使用全局
|
blockquote
|
role=
|
任何
全局 |
body
|
role=generic
|
除
否则,可以使用全局
|
br
|
无对应角色 |
角色:
作者可以在 |
button
|
如果 |
角色:
全局 如果 |
canvas
|
无对应角色 |
全局 |
caption
|
role=
|
除
否则,可以使用全局
|
cite
|
无对应角色 |
否则,可以使用全局
|
code
|
role=
|
否则,可以使用全局
|
col
|
无对应角色 |
不得使用 |
colgroup
|
无对应角色 |
不得使用 |
data
|
role=generic
|
否则,可以使用全局
|
datalist
|
role=listbox
|
除
不得使用 |
dd
|
无对应角色 |
全局 |
del
|
role=
|
否则,可以使用全局
|
details
|
role=group
|
除
全局 |
dfn
|
role=term
|
全局 |
dialog
|
role=dialog
|
角色:
全局 |
div
|
role=generic
|
如果是
否则,可以使用全局
|
dl
|
无对应角色 |
角色:
全局 |
dt
|
无对应角色 |
角色:
全局 |
em
|
role=
|
否则,可以使用全局
|
embed
|
无对应角色 |
角色:
全局 |
fieldset
|
role=group
|
角色:
全局 |
figcaption
|
无对应角色 |
角色:
否则,可以使用全局
|
figure
|
role=figure
|
如果
DPub 角色:
否则,如果
全局 |
footer
|
如果不是
否则为 |
角色:
DPub 角色:
如果暴露为
否则,可以使用全局
|
form
|
|
角色:
全局 注
除非为 |
| 表单关联 自定义元素 |
从作者定义的
否则为 |
如果角色由
否则,可使用与表单相关的角色:
如果暴露为
否则,可以使用全局
|
h1 至 h6
|
role=heading,
aria-level = 元素标签名称中的数字
|
角色:
DPub 角色:
全局 |
head
|
无对应角色 |
不得使用 |
header
|
如果不是
否则为 |
角色:
如果暴露为
否则,可以使用全局
|
hgroup
|
role=group
|
否则,可以使用全局
|
hr
|
role=separator
|
角色:
DPub 角色:
全局 |
html
|
role=generic
|
除
不得使用 |
i
|
role=generic
|
否则,可以使用全局
|
iframe
|
无对应角色 |
角色:
全局 |
img
|
如果 img 具有非空的
alt
(alt="some text"),或者由其他
img
命名方法提供了可访问名称,
或者 img 没有 alt 且没有可访问名称:role=img 或 image
|
角色:
DPub 角色:
全局
如果 |
img
具有空的 alt 且没有可访问名称
|
如果 |
除
除 |
input type=button
|
role=button
|
角色:
全局 |
input type=checkbox
|
role=checkbox
|
角色:
作者不得在
否则,可以使用任何全局
注
当 |
input type=color
|
无对应角色 |
全局 |
input type=date
|
无对应角色 |
全局 |
input type=datetime-local
|
无对应角色 |
全局 |
input type=email
且没有
list
属性
|
role=textbox
|
除
全局 |
input type=file
|
无对应角色 |
全局 |
| 无对应角色 |
不得使用 |
|
input type=image
|
role=button
|
允许以下角色,但不推荐:
全局
如果可能,作者应当考虑使用允许指定角色的其他 HTML 元素,
例如 |
input type=month
|
无对应角色 |
全局 |
input type=number
|
role=spinbutton
|
除
全局 |
input type=password
|
无对应角色 |
全局 |
input type=radio
|
role=radio
|
角色:
作者不得在
否则,可以使用任何全局
注
当 |
input type=range
|
role=slider
|
除
作者不应在
否则,可以使用任何
全局 |
input type=reset
|
role=button
|
允许以下角色,但不推荐:
全局
如果可能,作者应当考虑使用允许指定角色的其他 HTML 元素,
例如 |
input type=search,
且没有
list
属性
|
role=searchbox
|
除
全局 |
input type=submit
|
role=button
|
允许以下角色,但不推荐:
全局
如果可能,作者应当考虑使用允许指定角色的其他 HTML 元素,
例如 |
input type=tel,
且没有
list
属性
|
role=textbox
|
除
全局 |
input type=text
或具有缺失或无效的 type,且没有
list
属性
|
role=textbox
|
角色:
全局 |
input type=text、
search、
tel、
url、
email,
或具有缺失或无效的 type,并带有
list
属性
|
role=combobox
|
除
作者不应在上述带有
否则,可以使用任何
全局 |
input type=time
|
无对应角色 |
全局 |
input type=url
且没有
list
属性
|
role=textbox
|
除
全局 |
input type=week
|
无对应角色 |
全局 |
ins
|
role=
|
否则,可以使用全局
|
kbd
|
无对应角色 |
否则,可以使用全局
|
label
|
无对应角色 |
如果
否则,如果 如果暴露为
否则,可以使用全局
|
legend
|
无对应角色 |
否则,可以使用全局
|
li
|
如果
否则,
|
如果父列表元素具有隐式或显式的
否则,如果父列表元素未暴露隐式或显式的
全局 作者不应使用以下已弃用的 DPub 角色:
|
link
|
无对应角色 |
不得使用 |
main
|
role=main
|
除
全局 |
map
|
无对应角色 |
不得使用 |
mark
|
无对应角色 |
否则,可以使用全局
|
math
|
role=math
|
除
全局 |
menu
|
role=list
|
角色:
全局 |
meta
|
无对应角色 |
不得使用 |
meter
|
role=
|
除
作者不应在
否则,可以使用任何
全局 |
nav
|
role=navigation
|
角色:
DPub 角色:
全局 |
noscript
|
无对应角色 |
不得使用 |
object
|
无对应角色 |
角色:
全局 |
ol
|
role=list
|
角色:
全局 |
optgroup
|
role=group
|
除
全局 |
option
元素位于选项
列表中,或者
表示
datalist
中的建议
|
role=option
|
除
作者不应在
全局 |
output
|
role=status
|
全局 |
p
|
role=
|
否则,可以使用全局
|
param
|
无对应角色 |
不得使用 |
picture
|
无对应角色 |
作者可以在 |
pre
|
role=generic
|
否则,可以使用全局
|
progress
|
role=progressbar
|
除
作者不应在
否则,
可以使用任何全局
|
q
|
role=generic
|
否则,可以使用全局
|
rp
|
无对应角色 |
全局 |
rt
|
无对应角色 |
否则,可以使用全局
|
ruby
|
无对应角色 |
全局 |
s
|
role=
|
否则,可以使用全局
|
samp
|
role=generic
|
否则,可以使用全局
|
script
|
无对应角色 |
不得使用 |
search
|
|
角色:
全局 |
section
|
如果
否则为 |
角色:
DPub 角色:
全局 |
select
(呈现为下拉
框)
|
role=combobox
|
作者不应在
否则,
可以使用任何全局
|
select
(呈现为列表
框)
|
role=listbox
|
除
作者不应在
否则,
可以使用任何全局
|
selectedcontent
|
role=generic
|
如果作为
否则,如果该元素在其预期上下文之外使用,而不是作为可自定义
否则,可以使用全局
|
slot
|
无对应角色 |
不得使用 |
small
|
role=generic
|
否则,可以使用全局
|
source
|
无对应角色 |
不得使用 |
span
|
role=generic
|
否则,可以使用全局
|
strong
|
role=
|
否则,可以使用全局
|
style
|
无对应角色 |
不得使用 |
sub
|
role=
|
否则,可以使用全局
|
summary
|
注
summary 元素所暴露的角色可能因用户代理
和辅助技术而异。
|
如果
全局
否则,如果 |
sup
|
role=superscript
|
任何
否则,可以使用全局
|
SVG
|
根据
SVG AAM
的定义,role=graphics-document
|
任何
全局 |
table
|
role=table
|
全局 |
tbody
|
role=rowgroup
|
全局 |
td
|
如果祖先
如果祖先
如果祖先
|
如果祖先
否则,如果祖先
全局 |
template
|
无对应角色 |
不得使用 |
textarea
|
role=textbox
|
除
全局 |
tfoot
|
role=rowgroup
|
全局 |
th
|
如果祖先
如果祖先
如果祖先
|
如果祖先
否则,如果祖先
全局 |
thead
|
role=rowgroup
|
全局 |
time
|
role=time
|
否则,可以使用全局
|
title
|
无对应角色 |
不得使用 |
tr
|
role=row
|
如果祖先
全局 |
track
|
无对应角色 |
不得使用 |
u
|
role=generic
|
否则,可以使用全局
|
ul
|
role=list
|
角色:
全局 |
var
|
无对应角色 |
否则,可以使用全局
|
video
|
无对应角色 |
角色:
全局 |
wbr
|
无对应角色 |
角色:
作者可以在 |
在表格第二列中标有 无对应角色的元素没有任何隐式 ARIA 语义,但它们确实
具有含义,
而且这种含义可以通过 ARIA 未提供的角色、状态和属性来表示,
并通过可访问性 API 暴露给辅助技术用户。
因此,建议作者向语义上中性的元素添加 role 属性,例如
div
或
span,
而不是覆盖
所列元素的语义。
建议作者参考以下文档,以获取 除本文所提供内容之外在 HTML 中使用 ARIA 的指导:
作者可以使用 aria-label 和 aria-labelledby
属性,为具有允许作者命名的隐式或显式 ARIA 角色的元素指定可访问
名称。Accessible Rich Internet Applications (WAI-ARIA)
1.2 定义了允许
作者命名的角色以及禁止作者命名的
角色。
作者不得在具有不可命名的隐式 WAI-ARIA 角色的元素上指定
aria-label 或
aria-labelledby。其隐式 WAI-ARIA 角色禁止作者命名的 HTML
元素在4.
在 HTML 中使用 ARIA 属性的文档一致性要求中标明。
以下标记示例展示了一组具有禁止作者命名的隐式 ARIA 角色的 HTML 元素。
<!-- 不要执行以下操作! -->
<p aria-label="...">...</p>
<span aria-label="...">...<span>
<code aria-label="...">...<code>
<div aria-labelledby="...">...</div>
以下标记示例展示了具有允许作者命名的显式 WAI-ARIA 角色的元素。
由于这些元素上指定了显式角色,因此允许使用 aria-label 和
aria-labelledby 属性。
<p role="link" tabindex="0" aria-label="...">...</p>
<span role="button" tabindex="0" aria-label="...">...<span>
<div role="article" aria-labelledby="...">...</div>
除非另有说明,否则作者可以在预期具有相应
aria-* 语义的 HTML 元素上,使用 aria-* 属性
代替其 HTML 等效属性。例如,作者可以在
button
元素上指定 aria-disabled=true,同时实现必要的脚本以在功能上
禁用该 button,而不是使用 disabled 属性。
如 WAI-ARIA 的“与宿主语言
语义的冲突”中所述,
当 HTML 元素同时使用 aria-* 属性及其宿主语言(HTML)
等效属性时,用户代理必须忽略 WAI-ARIA 属性——具有相同
隐式 ARIA 语义的
原生 HTML 属性优先。因此,作者不应在一个元素上同时指定原生 HTML
属性
和等效的 aria-* 属性。请查阅各个属性以了解任何
进一步的作者特定要求。
下表列出了与 aria-* 属性具有等效关系的 HTML 元素及其属性。
第一列单元格中的每个语言特性(元素和属性)都隐含同一行
第二列单元格中给出的 ARIA 语义(状态和属性)。每行的第三个单元格
定义作者如何使用原生 HTML 特性,以及
使用提供相同
隐式 ARIA
语义的 aria-* 属性时的要求。
| HTML 特性 |
隐式 ARIA 语义 |
HTML 特性和 aria-* 属性的作者指南
|
|---|---|---|
任何允许使用
checked
属性的元素
|
aria-checked="true"
|
在 HTML 中允许使用
如果元素的选中状态
或元素的不确定选中值可能与
作者可以在具有允许该属性的 WAI-ARIA 角色的任何
其他元素上使用 |
任何允许使用
disabled
属性的元素,包括
option
disabled
和
optgroup
disabled
|
aria-disabled="true"
|
在 HTML 中允许使用
作者可以在 HTML 中允许使用
作者不应在同时具有
作者不得在同时具有 |
任何允许使用
placeholder
属性的元素
|
aria-placeholder="..."
|
在 HTML 中允许使用
作者可以在 HTML 中允许使用
作者不得在同时具有 |
任何允许使用 max 属性的元素:meter
max、
progress
max
和 input
max
|
aria-valuemax="..."
|
在 HTML 中允许使用
作者可以在具有允许
作者不应在任何允许使用
作者不得在同时具有 |
任何允许使用 min 属性的元素:meter
min
和 input
min
|
aria-valuemin="..."
|
在 HTML 中允许使用
作者可以在具有允许
作者不应在任何允许使用
作者不得在同时具有 |
任何允许使用 readonly 属性的元素:
input
readonly、
textarea
readonly
和允许使用
readonly
的表单关联
自定义元素
|
aria-readonly="true"
|
在 HTML 中允许使用
作者可以在具有允许该属性的 WAI-ARIA 角色的任何元素上使用
作者不应在同时具有
作者不得在同时具有 |
|
具有
注
这等效于 |
aria-readonly="false"
|
作者不得在具有 isContentEditable="true"
的元素上设置 aria-readonly="true"。
|
任何允许使用 required 属性的元素:input
required、
textarea
required,
和 select
required
|
aria-required="true"
|
在 HTML 中允许使用
作者可以在 HTML 中允许使用
作者不应在同时具有
作者不得在同时具有 |
任何允许使用
colspan
属性的元素:td 和 th
|
aria-colspan="..."
|
在 HTML 中允许使用
作者不应在同时具有
如果元素同时具有 |
任何允许使用
rowspan
属性的元素:
td 和 th
|
aria-rowspan="..."
|
在 HTML 中允许使用
作者不应在同时具有
如果元素同时具有 |
ARIA 规范的已弃用 要求一节指出,如果某个 ARIA 特性被标记为已弃用,则建议作者 不要在新内容中使用该特性。
以下角色和属性是 ARIA 和 DPub ARIA 中已弃用的特性。一致性检查器 必须向作者警告这些特性的弃用状态。只要 可能,建议作者使用已弃用特性的替代方案。
directory 角色在 WAI-ARIA
1.2 中被标记为弃用。实际上,与具有隐式或显式声明的
list 角色的元素相比,directory 角色在功能上没有任何
差异。建议作者改用 HTML 的原生列表元素之一,或 ARIA
list 角色。
doc-biblioentry 和 doc-endnote 角色在
Digital Publishing WAI-ARIA Module
1.1 中被标记为弃用,因为它们不是具有隐式或
显式 list 角色的元素的有效子元素。作者可以使用标准列表及其子
li 元素,而不需要这些角色。
aria-dropeffect 和 aria-grabbed 属性在
WAI-ARIA
1.1 中已被弃用。目前 ARIA 中没有可替代其拟议
功能的特性。
对于所有 role 标记值以及值被
定义为标记的任何
状态或属性(aria-*),作者应当使用 ASCII 小写。
虽然现代浏览器将 role 或 aria-* 属性值视为 ASCII
大小写不敏感,但并非所有辅助技术都能正确解析这些值。
为减少互操作性问题,强烈建议作者对 aria-* 和
role 属性值使用 ASCII
小写。此外,
建议作者对不同的浏览器和辅助技术组合进行严格测试,以确保其内容能够正确
暴露给用户。
本节为非规范性内容。
下表将内容类型和允许的
后代信息(在
[HTML]
规范中定义)映射到具有等效 role 的元素,并对其进行了扩展。
第 1 列链接到规范性的 Accessible Rich Internet Applications (WAI-ARIA)
1.2 中各 ARIA role 的定义。
第 2 列标明每个 role 在 HTML 元素上使用时所属的内容
类型类别。
第 3 列指出哪些类型的 HTML 元素可以作为
指定了显式 role 的元素的后代,通常与具有
相同隐式角色的 HTML 元素相匹配。
例如,
button
元素具有隐式 role=button。
在 HTML 中,button 元素允许短语内容作为
后代,并且不允许交互式内容
或具有 tabindex 属性的后代。因此,任何指定
role=button 的元素都应遵循
相同的后代限制,不允许任何交互式内容后代、
指定了 tabindex 的元素,或任何其角色值
属于交互式内容类别的元素(在第 3 列中标明)。
<!-- 一致性检查器将报告错误 -->
<button>
<div role="button">...</div>
</button>
<div role="button">
<button>...</button>
</div>
<div role="link">
<textarea>...</textarea>
</div>
此外,还有一些角色,Accessible Rich Internet Applications (WAI-ARIA) 1.2 对其允许的后代规定了特定要求。对于这些特定角色, 第 3 列(后代许可)通过指出“参阅‘必需的拥有元素’” 对这些要求进行了标明。
除了标记为非规范性的部分外,本规范中的所有编写指南、图示、示例和注释均为非规范性内容。除此之外,规范中的其他内容均为规范性内容。
本文档中的关键词 MAY(可以)、MUST(必须)、MUST NOT(不得)、NOT RECOMMENDED(不推荐)、SHOULD(应该)、SHOULD NOT(不应该) 应按照 BCP 14 [RFC2119] [RFC8174] 的说明进行解释,仅当这些词以全部大写形式出现时(如本处所示)。
声称支持检查 HTML 文档中 ARIA 的一致性检查器必须按照本规范的定义,对 role
和 aria-* 属性在HTML
元素上的使用进行一致性要求检查。
一个符合要求的文档不得包含任何带有作者自定义 role
或 aria-* 属性且属性值不符合本规范规定的使用范围的元素。具体每个HTML 元素的允许值见
4.
在 HTML 中使用 ARIA 属性的文档一致性要求。
一致性检查器应该将作者为元素显式指定与其
隐式 ARIA 语义相同的 role
的情况标记为不符合,
因为不推荐作者显式设置这些角色。
一致性检查器可以自定义术语和严重级别,用于在报告文档不符合本规范时进行分类。
本节为非规范性内容。
本规范不定义 [wai-aria-1.2]、 [dpub-aria-1.1] 或 [HTML] 的特性。相反,它提供了 供声称支持检查 HTML 中 ARIA 的一致性 检查器使用的规则和指导,同时也为作者提供指导。
因此,本规范没有已知的隐私或安全影响,因为它未定义任何可能引发相关问题的新特性。
Referenced in:
Referenced in:
Referenced in:
Referenced in: