另见 翻译.
Copyright © 2025 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
本规范定义了在 [HTML] 元素上使用 可访问富互联网应用(WAI-ARIA)1.2 和 数字出版 WAI-ARIA 模块 1.0 属性的编写规则(作者符合性要求)。 本规范的主要目标是为作者(即 Web 开发者)使用的合规性检查工具定义要求。这些要求将帮助作者开发网页内容,包括使用 ARIA 补充或扩展宿主语言 [HTML] 功能的自定义界面和小部件。
本节描述了本文档在发布时的状态。当前 W3C 发布物和本技术报告最新修订版可在 W3C 标准和草案索引中找到。
ARIA in HTML 是一个 [HTML] 规范模块。任何该规范模块引用但未明确定义的 HTML 功能、符合性要求或术语,均由 HTML 标准 定义。
自本规范于 2021 年 12 月 9 日成为 W3C 推荐标准以来,已提出以下实质性新增和/或修正:
label 元素,在未关联可标签元素时允许指定 role 和 aria-*
属性。
selectedcontent 元素,并为在自定义 select 元素环境下使用的
button 元素提供更新的允许规则。
html 元素为 generic 元素,且不推荐在该元素上使用
document 或 generic 角色。
img 元素,允许 math 角色。
image 角色作为 img 角色的首选同义词。
aria-hidden 与 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 角色。
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 属性。
文档审阅者可通过文档中的特殊样式标识候选新增和/或修正:
候选修正会在文档中标记。
候选新增会在文档中标记。
本文档由 Web 应用工作组按照 推荐标准流程发布为推荐标准。包含 候选修订, 自上一版推荐标准以来引入了实质性变更和新特性。
W3C 推荐将本规范作为 Web 标准广泛部署。
W3C 推荐标准是经过广泛共识建立后,由 W3C 及其成员认可的规范, 并且工作组成员承诺对实现 免版税许可。 推荐标准的后续更新可能会纳入 新特性。
候选新增会在文档中标记。
候选修正会在文档中标记。
本文档由一组成员依据 W3C 专利政策制定。 W3C 维护着 公开的专利披露列表 ,其中列出了与工作组成果相关的专利披露;该页面还包括专利披露说明。任何个人如确知专利且认为其包含 必要权利要求 ,必须按照 《W3C 专利政策》第6节进行披露。
本文档受 2023年11月3日 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 元素同样禁止作者指定这些属性。
被标记为 禁止命名
的元素是作者 不得指定 aria-label 或 aria-labelledby
属性的元素,除非元素允许其隐式角色被显式 WAI-ARIA 角色覆盖且该角色允许作者命名。更多信息见 4.1
使用 ARIA 属性为元素命名的要求。
虽然设置与隐式 ARIA 语义匹配的 ARIA role 和/或 aria-* 属性不推荐,但某些情况下显式设置这些属性可能很有帮助——例如某些用户代理未对特定元素暴露隐式 ARIA 语义时。
按照下表,使用 数字出版 WAI-ARIA 模块 1.0 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
|
无对应角色 |
角色:
全局 |
| autonomous custom element |
来自作者定义的
否则 |
若由
若以
另外,全局
|
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
|
|
角色:
全局 注意
|
| form-associated custom element |
由作者在
否则 |
若由
否则,表单相关角色:
若以
其他情况下,全局
|
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
无可访问名称
|
若
若 |
若
若
不允许
否则,若 |
input type=button
|
role=button
|
角色:
全局 |
input type=checkbox
|
role=checkbox
|
角色:
作者不得在
否则,任何 全局
注意
HTML 的
|
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
|
角色:
作者不得在
否则,任何 全局
注意
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 属性,且没有 size
属性值大于 1)
|
role=combobox
|
作者不应在
另外,
任何 全局 |
select
(带有 multiple 属性或 size 属性值大于 1)
|
role=listbox
|
除
作者不应在
其他情况下,任何
全局 |
selectedcontent
|
role=generic
|
如果作为
否则,任意
其他情况下,全局
|
slot
|
无对应角色 |
不允许 |
small
|
role=generic
|
其他情况下,全局
|
source
|
无对应角色 |
不允许 |
span
|
role=generic
|
其他情况下,全局
|
strong
|
role=
|
其他情况下,全局
|
style
|
无对应角色 |
不允许 |
sub
|
role=
|
其他情况下,全局
|
summary
|
注
许多(但不是全部)用户代理会将
summary 元素隐式暴露为 ARIA
role=button。
|
不允许
全局
否则,作者可以指定 任意
|
sup
|
role=superscript
|
任意
其他情况下,全局
|
SVG
|
role=graphics-document,定义见
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 向辅助技术用户暴露。
因此,建议作者在诸如
div
或
span
这样的语义中性元素上添加 role 属性,而不是覆盖列表中这些元素的语义。
建议作者参考以下文档,以获得超出本节所提供内容的在 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 的已弃用特性。一致性检查器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.0] 或 [HTML] 的特性。相反,本规范为声称支持 HTML 中 ARIA 检查的一致性检查器提供规则和指导,同时为作者提供指导。
因此,本规范没有已知的隐私或安全影响,因为它未定义任何可能引发相关问题的新特性。
Referenced in:
Referenced in:
Referenced in:
Referenced in: