另见 翻译.
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 标准与草案索引中找到。
ARIA in HTML 是 [HTML] 规范模块。任何本规范模块所引用但未明确定义的 HTML 特性、符合性要求或术语,均由 HTML 标准 定义。
自本规范于 2021 年 12 月 9 日成为 W3C 建议标准以来, 已提出以下重大新增内容和/或修正内容:
summary元素的角色和属性。
label元素,在未关联可标记元素时允许指定role和aria-*属性。
selectedcontent元素,并为在自定义select元素上下文中使用时的button元素提供更新的允许方式。
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-*属性。
aria-checked不应用于支持checked属性的元素。
nav元素使用none和presentation角色。
dl子元素时,限制div元素允许的角色。
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角色。
area无href元素使用link和button角色。
picture元素上使用aria-hidden属性。
本文档的审阅者可通过文档中的独特样式识别候选新增内容 和/或修正内容:
候选修正已在文档中标出。
候选新增已在文档中标出。
本文档由可访问富互联网应用工作组 作为推荐标准(Recommendation)发布,使用 推荐流程。 其中包含 候选修正, 自上一版推荐标准后,带来重要变更和新特性。
W3C 推荐广泛部署本规范作为 Web 的 标准。
W3C 推荐标准(Recommendation)是经过广泛 共识构建,由 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。
实践中,只要 role 值使用 ASCII 小写,
一般不会对辅助技术用户造成副作用。
更多信息请见 4.4
ARIA 角色、状态和属性的大小写要求。
<!-- 避免这样做! -->
<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 具有非空
alt
(alt="some text")或通过其他
img
命名方法提供了可访问名称,
或者 img 没有 alt 且未提供名称:role=img or image
|
角色:
DPub 角色:
全局 |
|
img
with no accessible name
|
如果
如果 |
如果
如果
无
否则,如果 |
input type=button
|
role=button
|
角色:
全局 |
input type=checkbox
|
role=checkbox
|
角色:
作者不得在
否则,可使用任何全局
注
HTML
|
input type=color
|
无对应角色 |
全局 |
input type=date
|
无对应角色 |
全局 |
input type=datetime-local
|
无对应角色 |
全局 |
input type=email
with no
list
attribute
|
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
|
角色:
作者不得在
否则,可使用任何全局
注
HTML
|
input type=range
|
role=slider
|
作者不应在
否则,可使用任何
全局 |
input type=reset
|
role=button
|
|
input type=search,
且没有
list
属性
|
role=searchbox
|
全局 |
input type=submit
|
role=button
|
|
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
(无 multiple 属性,且无值大于 1 的 size
属性)
|
role=combobox
|
角色:
作者 不应 在
否则,
可使用任何 全局
|
select
(带有 multiple 属性,或值大于 1 的 size 属性)
|
role=listbox
|
作者 不应 在
否则,
可使用任何 全局
|
selectedcontent
|
role=generic
|
如果用作
否则,如果该元素被用于其预期上下文之外,作为可自定义
否则,全局
|
slot
|
无对应角色 |
无 |
small
|
role=generic
|
否则,全局
|
source
|
无对应角色 |
无 |
span
|
role=generic
|
否则,全局
|
strong
|
role=
|
否则,全局
|
style
|
无对应角色 |
无 |
sub
|
role=
|
否则,全局
|
summary
|
注
summary 元素的暴露角色可能因用户代理和辅助技术而异。
|
无
全局
否则,如果 |
sup
|
role=superscript
|
任意
否则,全局
|
SVG
|
role=graphics-document as defined by
SVG AAM
|
任意
全局 |
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 中允许使用
作者不得在任何其
checkedness
,或元素的
不确定 checked 值,可能与
作者可以在任何其他具有允许该属性的 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 的已弃用特性。一致性检查器MUST就这些特性的已弃用状态向作者发出警告。在可能的情况下,建议作者使用这些已弃用特性的替代方案。
directory 角色在WAI-ARIA
1.2中被标记为“将弃用”。实际上,directory 角色与具有隐式或显式 list
角色的元素没有功能差异。建议作者改用 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 尚无用于替代其拟议功能的特性。
作者SHOULD为所有 role 标记值,以及其值定义为标记的任何状态或属性(aria-*)使用
ASCII 小写。
虽然现代浏览器将 role 或 aria-* 的属性值视为ASCII 不区分大小写,
但并非所有辅助技术都能正确解析这些值。
为减少互操作性问题,强烈建议作者在 aria-* 和 role 的属性值中使用
ASCII 小写。
此外,建议作者使用不同浏览器与辅助技术的组合进行严格测试,以确保其内容能够正确地暴露给用户。
本节为非规范性内容。
下表将(并扩展)内容类型(Kinds of
content)与允许的后代
信息(定义于
[HTML]
规范)映射到具有等效 role 的元素。
第 1 列链接到每个 ARIA role 的规范性定义(Accessible Rich Internet Applications (WAI-ARIA)
1.2)。
第 2 列标明当某个 role 用于 HTML 元素时,它所属的内容类型
类别。
第 3 列指示在明确指定 role 的元素中可以包含哪些类型的 HTML 后代,通常与具有相同隐式角色的 HTML 元素一致。
例如,
button
元素具有隐式的 role=button。
在 HTML 中,button 元素允许包含短语内容(Phrasing
content)作为后代,
且不允许交互内容(Interactive
content)
或带有 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 列(允许的后代)中标注为“参见 Required Owned Elements”,请针对相应角色查看。
除了标记为非规范性的部分外,本规范中的所有编写指南、图示、示例和注释均为非规范性内容。除此之外,规范中的其他内容均为规范性内容。
本文档中的关键词 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: