目录
摘要
本文档的状态
1. 引言
1.1 可访问性
API
2. 一致性
2.1
已弃用
3.
将 HTML 映射到可访问性 API
3.1 暴露 WAI-ARIA
语义的一般规则
3.2
原生标记语义与 WAI-ARIA 之间的冲突
3.3
暴露不直接映射到可访问性 API 的 HTML
特性
3.4 暴露
需要最低角色的 HTML 特性
3.5
HTML 元素角色映射
3.6 HTML 属性
状态和属性映射
4. 可访问名称和描述计算
4.1
按 HTML 元素进行的可访问名称计算
4.2
可访问描述计算
5. 隐私
考虑事项
6. 安全
考虑事项
A. 附录
A.1 变更日志
A.2
致谢
B. 参考文献
B.1
规范性参考文献
B.2
资料性参考文献
最低角色
是一种等价的 WAI-ARIA 角色:如果某元素没有更具体的隐式角色或平台角色映射,例如
非 generic
角色,则该元素会映射到此角色。这有助于确保辅助技术用户针对常用且有效的
HTML 标记获得尽可能好的体验,而在其他情况下可能不会暴露
角色。
当以下所有条件都为真时,会提供最低角色:
作者未 为该元素指定有效的显式 WAI-ARIA 角色,
或 所指定的角色是 none、presentation 或
generic;
该元素没有隐式 WAI-ARIA 角色或平台角色映射,或者
它具有隐式的 generic 或 none 计算角色;
并且作者已指定需要该元素具备最低角色映射的属性。
HTML 属性状态和属性映射 一节
标识了会要求元素映射
到最低角色的特定全局属性。
当满足这些条件时,用户代理 MUST 使用
CORE-AAM 中为指定最低角色定义的映射来暴露对象。如果元素指定了多个
要求将最低角色作为该元素的计算角色返回的属性,则优先采用 ARIA 分类体系中更具体的
角色。
用户代理 MUST 将具有隐式 WAI-ARIA 角色
语义的 HTML
元素,按照 [core-aam-1.2 ] 规范中定义的已标识 WAI-ARIA 角色映射,映射到平台可访问性 API 。
“未映射”表示该元素不需要通过可访问性
API 暴露。这通常是因为该
元素未作为用户界面的一部分显示。
但是,作者可以强制渲染其中某些元素。例如,通过
覆盖用户代理样式来渲染原本会被设置为
display: none 的元素。在这些情况下,用户代理 SHOULD 将此类
元素映射到 generic 角色,除非
已指定其他 HTML 特性,
而这些特性要求暴露更具体的最低角色 。
当某元素被标示为具有“无对应(WAI-ARIA )角色”,或映射到 generic 角色时,用户
代理
MUST NOT 在可访问性树 中暴露 aria-roledescription
属性值,除非该
元素具有一个显式且符合要求的 role 属性值,并且 [WAI-ARIA-1.2 ] 不
禁止使用 aria-roledescription。
一些 HTML 元素会根据它们
是否已被提供可访问
名称 来暴露隐式 WAI-ARIA 角色。元素
如何参与其自身或另一元素的可访问名称 和/或
可访问描述
的计算,在本文档的
可访问名称和描述
计算 一节中说明。
HTML 规范
abbr
[wai-aria-1.2 ]
无对应角色
计算角色
html-abbr
MSAA + IAccessible2
角色: ROLE_SYSTEM_TEXT;
IA2_ROLE_TEXT_FRAME
对象属性:
如果是单个子级,则在包含它的
td 上设置 "abbr" 属性,
文本内容用作值
UIA
控件类型: Text
[ATK ]
角色: ATK_ROLE_STATIC
对象属性:
如果是单个子级,则在包含它的
td 上设置 "abbr" 属性,
文本内容用作值
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
注释
HTML 规范
audio
[wai-aria-1.2 ]
无对应角色
计算角色
html-audio
MSAA + IAccessible2
角色: ROLE_SYSTEM_GROUPING
UIA
控件类型: Group
本地化控件类型:
"audio"
用户代理
MAY 将以下内容包含在
可访问性
树 中,并将它们标记为隐藏或屏幕外:
[ATK ]
角色: ATK_ROLE_AUDIO
AX
AXRole: AXGroup
AXSubrole: AXAudio
AXRoleDescription:
"audio playback"
注释
HTML 规范
canvas
[wai-aria-1.2 ]
无对应角色
计算角色
html-canvas
MSAA + IAccessible2
角色: ROLE_SYSTEM_GRAPHIC;
IA2_ROLE_CANVAS
UIA
控件类型: Image
canvas 元素的后代会被
单独映射。
[ATK ]
角色: ATK_ROLE_CANVAS
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: ""
注释
HTML 规范
cite
[wai-aria-1.2 ]
无对应角色
计算角色
html-cite
MSAA + IAccessible2
无可访问对象。所使用的样式会映射为其文本容器
上的文本属性。
UIA
无可访问对象。所使用的样式会通过父级
可访问对象上实现的 TextRange 控件模式的 UIA 文本
属性暴露。
[ATK ]
无可访问对象。所使用的样式会映射为其文本容器
上的文本属性。
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
注释
HTML 规范
dl
[wai-aria-1.2 ]
list 角色
计算角色
list
MSAA + IAccessible2
角色: ROLE_SYSTEM_LIST
状态: STATE_SYSTEM_READONLY
UIA
控件类型: List
[ATK ]
角色: ATK_ROLE_DESCRIPTION_LIST
AX
AXRole: AXList
AXSubrole: AXDefinitionList
AXRoleDescription:
"definition list"
注释
HTML 规范
kbd
[wai-aria-1.2 ]
无对应角色
计算角色
html-kbd
MSAA + IAccessible2
无可访问对象。
文本属性:
在文本容器上设置 font-family:monospace
UIA
无可访问对象。所使用的样式通过父级
可访问对象上实现的 TextRange 控件模式的 UIA 文本属性
标识符暴露。
[ATK ]
无可访问对象。映射为其文本容器上的 "font-family:monospace" 文本
属性。
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
注释
HTML 规范
label
[wai-aria-1.2 ]
无对应角色
计算角色
html-label
MSAA + IAccessible2
角色: ROLE_SYSTEM_STATICTEXT;
IA2_ROLE_LABEL
关系:
与作为
label 子级或由
label 元素的
for 属性引用的
可标记
元素 之间存在
IA2_RELATION_LABEL_FOR。关联的可标记
元素具有指向
label 的
IA2_RELATION_LABELLED_BY。
UIA
控件类型: Group
关系:
当
label 元素包含一个
可标记
元素 时,该元素的
LabeledBy 属性指向
label 元素的 UIA 元素。
当
label 元素具有引用某个
for
属性引用的
可标记
元素 时,被引用元素的
LabeledBy
属性指向
label 元素的 UIA 元素。
[ATK ]
角色: ATK_ROLE_LABEL
关系:
对于子
可标记
元素 或由
for 属性引用的可标记元素,存在
ATK_RELATION_LABEL_FOR。注意,相关的可标记
元素会提供指向
label 的
ATK_RELATION_LABELLED_BY。
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
注释
HTML 规范
legend
[wai-aria-1.2 ]
无对应角色
计算角色
html-legend
MSAA + IAccessible2
角色: ROLE_SYSTEM_STATICTEXT;
IA2_ROLE_LABEL
关系:
与父级
fieldset 之间存在
IA2_RELATION_LABEL_FOR
UIA
控件类型: Text
其他属性:
父级
fieldset 的
LabeledBy 属性指向
legend 元素的 UIA 元素。
[ATK ]
角色: ATK_ROLE_LABEL
关系:
与父级
fieldset 元素之间存在
ATK_RELATION_LABEL_FOR
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
注释
HTML 规范
map
[wai-aria-1.2 ]
无对应角色
计算角色
html-map
MSAA + IAccessible2
如果用作图像映射,则不映射。否则,
角色: IA2_ROLE_TEXT_FRAME
UIA
未映射
[ATK ]
如果用作图像映射,则不映射,否则:
角色: ATK_ROLE_STATIC
AX
角色: 如果用作图像映射,则为 AXImageMap。
否则,
角色: 如果与没有 alt 的
img 关联,则为 AXGroup。否则,
如果未与 img 关联,则不映射。
注释
HTML 规范
object
[wai-aria-1.2 ]
无对应角色
计算角色
html-object
MSAA + IAccessible2
取决于数据文件的格式。如果其中包含插件,则:
角色: IA2_ROLE_EMBEDDED_OBJECT
状态:
对于无窗口插件,为 STATE_SYSTEM_UNAVAILABLE
UIA
取决于数据文件的格式。
[ATK ]
取决于数据文件的格式。如果包含插件,则
角色:
ATK_ROLE_EMBEDDED
AX
取决于数据文件的格式。
注释
HTML 规范
ruby
[wai-aria-1.2 ]
无对应角色
计算角色
html-ruby
MSAA + IAccessible2
角色: ROLE_SYSTEM_TEXT;
IA2_ROLE_TEXT_FRAME
UIA
控件类型: Text
本地化控件类型:
"ruby"
[ATK ]
角色: ATK_ROLE_STATIC
AX
AXRole: AXGroup
AXSubrole: AXRubyInline
AXRoleDescription: "group"
注释
HTML 规范
summary
[wai-aria-1.2 ]
无对应角色
计算角色
如果该元素是父级
details 元素中其类型的第一个子元素:html-summary
否则,如果它不是父级
details 元素中其类型的第一个子元素,或不是 details
元素的子元素:
generic
角色
MSAA + IAccessible2
角色: ROLE_SYSTEM_PUSHBUTTON
状态:
STATE_SYSTEM_EXPANDED / STATE_SYSTEM_COLLAPSED
动作: expand /
collapse
UIA
控件类型: Button
控件模式:
ExpandCollapse
[ATK ]
角色: ROLE_TOGGLE_BUTTON
关系:
ATK_RELATION_DETAILS
AX
AXRole: AXDisclosureTriangle
AXSubrole: (nil)
AXRoleDescription:
"disclosure triangle"
注释
如果 summary 元素不是 details 元素的子元素,或者
它不是父级 details 的第一个 summary 元素,则
用户代理 MUST 以
generic 角色暴露该 summary 元素。
HTML 规范
var
[wai-aria-1.2 ]
无对应角色
计算角色
html-var
MSAA + IAccessible2
无可访问对象。所使用的样式映射为其文本容器上的
文本属性。
UIA
无可访问对象。所使用的样式通过父级可访问对象上
实现的 TextRange 控件模式的 UIA 文本属性标识符暴露。
[ATK ]
无可访问对象。所使用的样式映射为其文本容器上的
文本属性。
AX
AXRole: AXGroup
AXSubrole: (nil)
AXRoleDescription: "group"
注释
HTML 规范
video
[wai-aria-1.2 ]
无对应角色
计算角色
html-video
MSAA + IAccessible2
角色: ROLE_SYSTEM_GROUPING
UIA
控件类型: Group
本地化控件类型:
"group"
用户代理
MAY 在
可访问性
树 中包含以下内容,并将其标记为隐藏或屏幕外:
[ATK ]
角色: ATK_ROLE_VIDEO
AX
AXRole: AXGroup
AXSubrole: AXVideo
AXRoleDescription:
"video playback"
注释
用户代理 MUST 将具有默认 WAI-ARIA 状态
和属性语义的 HTML
属性,按照 [core-aam-1.2 ] 规范中所定义的已识别 WAI-ARIA 状态和属性映射,映射到平台 可访问性 API 。
单元格中的 '?' 表示数据尚未提供。
"未映射"(不适用)表示该属性不需要通过可访问性 API 暴露。这通常是因为该
属性不会作为用户界面的一部分显示。
在 IAccessible2 映射中具有可访问对象的所有元素,都应当实现
IAccessible、IAccessible2 和 IAccessible2_2 接口。
用户与某些 HTML 元素的交互会设置
元素的 dirty
value flag 。这些元素,如 [HTML ] 中所识别,
可能具有表示该元素默认值或状态的属性。当 dirty flag 被设置时,该默认值或状态
不一定决定该元素或对应可访问节点的值
或状态。
HTML 规范
autocomplete
元素
form
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
未映射
UIA
未映射
[ATK ]
未映射
AX
未映射
注释
注记
注记: aria-autocomplete 属性和
HTML autocomplete
属性具有不同的特性。aria-autocomplete 属性
不支持用于 HTML
form 元素或具有显式 ARIA form
角色的元素。
HTML 规范
autocomplete
元素
input,
select 和 textarea
[WAI-ARIA-1.2 ]
注记
注记: aria-autocomplete 属性和
HTML
autocomplete 属性具有不同的特性,但它们
作为用户代理暴露该控件支持自动补全的
机制是重叠的。
MSAA + IAccessible2
UIA
[ATK ]
AX
注释
如果表单控件既被指定为 autocomplete=off
(无论是因为显式使用该属性,还是从具有
autocomplete=off 的父 form 元素继承了
off 状态),又具有带有效值的
aria-autocomplete 属性,则用户代理 MUST 仅暴露
aria-autocomplete 属性值。
否则,如果表单控件具有一个用有效标记值指定的 autocomplete 属性,
并且具有 aria-autocomplete 属性,则用户
代理 MUST 仅暴露
autocomplete 属性值。
HTML 规范
checked(如果存在)
元素
input
type=checkbox 或 type=radio
[WAI-ARIA-1.2 ]
aria-checked ="true"
MSAA + IAccessible2
UIA
属性:Toggle.ToggleState: On (1)
[ATK ]
AX
AXValue: 1
注释
如果处于 checkbox 或 radio
状态的 input 元素同时包含 checked 属性和具有有效值的
aria-checked
属性,则用户代理 MUST 仅暴露
checked 属性值。
HTML 规范
checked(如果不存在)
元素
input
type=checkbox 或 type=radio
[WAI-ARIA-1.2 ]
aria-checked ="false"
MSAA + IAccessible2
UIA
属性:Toggle.ToggleState: Off (0)
[ATK ]
AX
AXValue: 0
注释
处于 checkbox 或 radio 状态且没有
checked 属性的 input 元素具有隐式的 "false" 状态。用户代理 MUST 忽略与原生元素的隐式 checked 状态
冲突的
aria-checked 属性。
HTML 规范
contenteditable
元素
HTML 元素
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
如果该元素处于可编辑状态,则以下映射适用于该元素
和每个嵌套的可访问对象,但已被指定为
false 状态的对象除外。
状态:
IA2_STATE_EDITABLE 和 IA2_STATE_MULTI_LINE
接口:
IAccessibleEditableText
如果该元素处于 false 状态:未映射。
如果该元素处于 inherit 状态:匹配其
父元素的可编辑状态。
UIA
如果该元素处于可编辑状态,则以下映射适用于该元素
和每个嵌套的可访问对象,但已被指定为
false 状态的对象除外。
控件模式: TextEdit
属性:
AriaProperties.multiline:true
如果该元素处于 false 状态:未映射。
如果该元素处于 inherit 状态:匹配其
父元素的可编辑状态。
[ATK ]
如果该元素处于可编辑状态,则以下映射适用于该元素
和每个嵌套的可访问对象,但已被指定为
false 状态的对象除外。
状态:
ATK_STATE_EDITABLE 和 ATK_STATE_MULTI_LINE
接口:
AtkEditableText
如果该元素处于 false 状态:未映射。
如果该元素处于 inherit 状态:匹配其
父元素的可编辑状态。
AX
角色:
AXTextArea
注释
如果元素被设置为 contenteditable,并且
aria-readonly="true",则用户代理 MUST 仅暴露
contenteditable 状态。
HTML 规范
coords
元素
area
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
定义可访问对象的尺寸
(IAccessible::accLocation)
UIA
定义可访问对象的尺寸
(BoundingRectangle)
[ATK ]
定义可访问对象的尺寸,通过
atk_component_get_position 和 atk_component_get_size
暴露
AX
定义可访问对象的尺寸,通过
Frame 属性暴露
注释
HTML 规范
dir
元素
bdo
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
作为文本容器上的 "writing-mode" 文本属性暴露。
UIA
通过父级可访问对象上实现的
TextRange 控件模式的 TextFlowDirections 属性暴露。
[ATK ]
作为文本容器上的 "writing-mode" 文本属性暴露。
AX
未映射
注释
HTML 规范
for
元素
output
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
关系:
与该属性所指向的元素存在 IA2_RELATION_CONTROLLED_BY。
成对元素暴露 IA2_RELATION_CONTROLLER_FOR 关系。
UIA
未映射
[ATK ]
关系:
与该属性所指向的元素存在 ATK_RELATION_CONTROLLED_BY。
成对元素暴露 ATK_RELATION_CONTROLLER_FOR 关系。
AX
未映射
注释
HTML 规范
indeterminate [IDL]
元素
HTML 元素;
input
[WAI-ARIA-1.2 ]
aria-checked
(state)="mixed"
MSAA + IAccessible2
使用 WAI-ARIA 映射
UIA
使用 WAI-ARIA 映射
[ATK ]
使用 WAI-ARIA 映射
AX
使用 WAI-ARIA 映射
注释
如果元素设置了 indeterminate [IDL] 并且设置了
aria-checked 属性,则用户代理 MUST
仅暴露 indeterminate [IDL] 状态。
HTML 规范
lang
元素
HTML 元素
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
作为文本容器上的 "language" 文本属性暴露
UIA
lang 属性的值作为区域设置标识符暴露:
通过表示
HTML 元素的 UIA 元素的
Culture 属性,以及通过父级可访问对象上实现的
TextRange 控件模式的
Culture 属性暴露。
[ATK ]
作为文本容器上的 "language" 文本属性暴露
AX
AXLanguage: <value>
注释
HTML 规范
list
元素
input
[WAI-ARIA-1.2 ]
aria-controls
MSAA + IAccessible2
IA2_RELATION_CONTROLLER_FOR 指向
list 属性的 IDREF 值所引用的 datalist 元素。
UIA
ControllerFor 指向 list
属性的 IDREF 值所引用的 datalist 元素。
[ATK ]
ATK_RELATION_CONTROLLER_FOR 指向
list 属性的 IDREF 值所引用的
datalist 元素。
AX
属性:AXLinkedUIElements:指向
list 属性的 IDREF 值所引用的
datalist 元素。
注释
参见 datalist 和 input 元素映射。
HTML 规范
minlength
元素
input ;
textarea
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
状态:
如果值不满足指定的最小长度值,则为
IA2_STATE_INVALID_ENTRY。
UIA
状态:
如果值不满足指定的最小长度值,则为 IsDataValidForForm。
[ATK ]
状态:
如果值不满足指定的最小长度值,则为
ATK_STATE_INVALID_ENTRY。
AX
属性:
如果值不满足指定的最小长度值,则 AXInvalid: true。
注释
HTML 规范
popover
元素
HTML 元素
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
关系: IA2_RELATION_DETAILS_FOR 指向
调用元素。参见注释 。
对象属性:
ispopup: <value>,其中
<value> 反映
popover
类型。
UIA
如果存在满足需要 details 关系条件的调用元素,则与该调用元素建立
details 关系。
参见注释 。
[ATK ]
关系: RELATION_DETAILS_FOR 指向
调用元素。参见注释 。
对象属性:
ispopup: <value>,其中
<value> 反映
popover
类型。
AX
待定
在以下条件下,用户代理 MUST NOT 在
popover 与其调用元素之间暴露 details 关系:
当 popover 是调用元素的下一个直接可访问性同级元素时,
当该元素具有 popovertargetaction=hide 属性值时,
或当该元素是 popover 的后代,并且其
popovertarget 是 "auto" 状态时。
如果在具有 generic 隐式角色的元素上指定,则该
元素的角色改为映射到 group ,
适用于所有
popover
状态 。
注记
不同的 popover 状态没有唯一映射。popover 元素的任何
可访问性映射变更都将由作者负责。例如,使用
不同的基础 HTML 元素、
属性或 ARIA 属性来进行此类变更。
HTML 规范
size
元素
input ;
select
[WAI-ARIA-1.2 ]
对 input 元素未映射。
如果大于 1,则创建 listbox 可访问对象。有关详细信息,
请参阅
select 元素。
MSAA + IAccessible2
对 input 元素未映射。
对于
select 元素,使用
WAI-ARIA 映射。
UIA
对 input 元素未映射。
对于
select 元素,使用
WAI-ARIA 映射。
[ATK ]
对 input 元素未映射。
对于
select 元素,使用
WAI-ARIA 映射。
AX
对 input 元素未映射。
对于
select 元素,使用
WAI-ARIA 映射。
注释
对于允许 size 属性的 input 元素,该
属性将修改其默认宽度。由 CSS 提供的宽度会抵消
size 属性对这些
input 元素的影响。
HTML 规范
span
元素
col ;
colgroup
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
在该列的所有单元格上作为 IAccessibleTableCell::columnExtent
暴露
UIA
在该列的所有单元格上作为 GridItem.ColumnSpan
暴露
[ATK ]
通过 atk_table_get_column_extent_at 暴露
AX
AXColumnIndexRange.length: <value>
注释
HTML 规范
start
元素
ol
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
更改子列表项可访问对象的第一个编号,
以匹配 start 属性的值。
UIA
更改子列表项可访问对象的第一个编号,
以匹配 start 属性的值。
[ATK ]
更改子列表项可访问对象的第一个编号,
以匹配 start 属性的值。
AX
更改子列表项可访问对象的第一个编号,
以匹配 start 属性的值。
注释
HTML 规范
step
元素
input
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
未映射
UIA
如果 input 处于 Range
状态,则将 RangeValue.SmallChange 和
RangeValue.LargeChange 都设置为 step 的值。
[ATK ]
如果该元素实现 AtkValue 接口,则作为
atk_value_get_minimum_increment 暴露。
AX
未映射
注释
HTML 规范
type
元素
ol
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
定义列表项标记,该标记没有
可访问
对象 ,但作为内容暴露在关联列表项的可访问文本中。
接口: IAccessibleText2
UIA
定义列表项标记,该标记没有
可访问
对象 ,但作为内容暴露在关联列表项的可访问文本中。
控件模式: Text
[ATK ]
定义列表项标记,该标记没有
可访问
对象 ,但作为内容暴露在关联列表项的可访问文本中。
接口: ATKText
AX
定义列表项标记,该标记作为内容暴露在
AXValue 中,并呈现为一个
可访问
对象 :
AXRole: AXListMarker
AXSubrole: (nil)
AXRoleDescription:
"list marker"
注释
一些平台(IAccessible2、ATK、UIA)不为列表项标记暴露
可访问
对象 ,无论该对象是创建后又从
可访问性
树 中修剪掉,还是一开始就没有创建。相反,它们将列表
项标记作为关联列表项可访问文本的一部分暴露。在
这些情况下,实现者需要考虑诸如为更新后的列表
项文本调整偏移量(例如,用于插入符移动事件、文本选择事件等),因为该文本现在
还包含列表项标记作为内容,而不能只是不加修改地采用列表项渲染器中的偏移量。
HTML 规范
value
元素
li
[WAI-ARIA-1.2 ]
未映射
MSAA + IAccessible2
作为 li 的可访问对象的第一个文本节点暴露。
UIA
将 value 属性的值作为列表项中的第一个文本节点暴露。
如果 value 属性的值是整数,则将
UIA PositionInSet 属性设置为该
整数值。
[ATK ]
作为 li 的可访问对象的第一个文本节点暴露。
AX
以具有可访问对象的 AXValue: <value> 形式
暴露:
AXRole: AXListMarker
AXSubrole: (nil)
AXRoleDescription:
list marker
注释
접근 가능한 이름 및 접근 가능한 설명 이라는 용어는
모든 접근성 API 에서 제공되는 프로퍼티이다. 프로퍼티 이름은
API 마다 다를 수 있지만 같은 기능을 수행한다. 즉, 짧은
(이름) 또는 더 긴(설명) 텍스트 문자열의
컨테이너 역할을 한다.
텍스트 대체
계산 은 접근 가능한 이름 과
접근 가능한 설명 을 모두
생성하는 데 사용된다. 여러 다른 유형의
요소 , 노드 , 그리고
마크업 조합에 대해 서로 다른 규칙이 제공된다.
참고
사용자 에이전트는 관련 접근성 정보가 변경될 때 보조 기술에 알린다. 때로는
접근성 객체를 파괴하고 다시 생성하는 방식으로, 때로는 지정된
이름 변경 이벤트 매핑 및 설명 변경 이벤트
매핑 에 따라 객체의 변경을 알리는 방식으로 처리한다.
abbr ,
b ,
bdi ,
bdo ,
br ,
cite ,
code ,
dfn ,
em ,
i ,
kbd ,
mark ,
q ,
rp ,
rt ,
ruby ,
s ,
samp ,
small ,
strong ,
sub
및 sup , time ,
u ,
var ,
wbr
요소에 aria-label 또는 aria-labelledby
속성이 있는 경우
접근 가능한 이름 은
Accessible Name and Description:
Computation and API Mappings 에
정의된 알고리즘을 사용하여 계산되어야 한다.
그렇지 않으면 title 속성을 사용한다.
위 항목 중 어느 것도 사용할 수 있는 텍스트 문자열을 산출하지 않으면 접근 가능한 이름 은 없다.
작성자는 body 요소의 유효한 자식인 모든 HTML
요소에 대해 접근 가능한 설명 을 제공할
MAY 있다. 다음 목록은 사용자 에이전트 가 요소의 접근 가능한 설명 을 계산할 때
적용하는 우선순위를 나타낸다.
Accessible
Name and Description Computation: Description Computation 에 정의된 것처럼, 사용자 에이전트 는 MUST
그 사용 결과가 빈 설명이 되더라도 첫 번째로 적용 가능한 설명 출처를 사용해야 한다.
요소에 aria-describedby
또는
aria-description 속성이 있는 경우,
Accessible Name and
Description: Computation and API
Mappings 에 정의된 계산 조건을 참조하라.
그렇지 않고 접근 가능한
설명 이 여전히 비어 있으며 요소가 다음 중 하나인 경우:
자식 caption
요소를 가진 table 요소인 경우, 첫 번째 caption 요소의 서브트리에 대한
텍스트 등가
계산 을 사용한다. 단, 그것이
접근 가능한 이름 으로 사용되지 않았어야
한다.
summary 요소인 경우, 그 서브트리에 대한 텍스트 등가
계산 을 사용한다. 단, 그것이
접근 가능한 이름 으로 사용되지 않았어야
한다.
type 속성이 button,
submit 또는 reset 상태인 input 요소이고,
value 속성이 있는 경우, 해당 속성의 평탄 문자열을 사용한다. 단,
그것이 접근 가능한 이름 으로 사용되지
않았어야 한다.
그렇지 않으면, title 속성이 해당 요소의 접근 가능한 이름 으로 사용되지
않은 경우 그 속성의 평탄 문자열을 사용한다.
위 항목 중 어느 것도 적용할 수 없으면 접근
가능한 설명 은 없다.
按照 Web 平台
设计原则 ,本规范没有提供任何编程接口来确定信息是否正在被辅助技术使用。不过,本规范
确实允许作者向辅助技术用户呈现不同于不使用辅助技术的用户所能获得的信息。这可以
通过 ARIA 和 CORE-AAM 规范中的许多特性实现,就像可以通过 Web 技术栈的
许多其他部分实现一样。这种内容差异可能会被滥用,用于对辅助技术用户执行
主动指纹识别 。
查看本文档在 GitHub 上的提交历史 。
2025 年 4 月 2 日:添加 command 和 commandfor 属性映射。参见 GitHub ARIA PR 2354 。
2024 年 7 月 11 日:用户代理会忽略 body 和
html 元素上的 aria-hidden=true。参见 GitHub PR
516 。
2024 年 6 月 06 日:添加最小角色的概念。参见 GitHub PR
454 。
2024 年 6 月 06 日:添加 popover、popovertarget 和
popovertargetaction 映射。参见 GitHub
PR 481 。
2023 年 10 月 09 日:确认在 select 元素中使用 hr 元素。参见
GitHub PR 504 。
2023 年 10 月 03 日:更新图像映射,以引用主要同义角色(image
和 none)。参见 GitHub PR
498 。
2023 年 10 月 03 日:阐明何时将必填字段暴露为 invalid。参见 GitHub PR 429 。
2023 年 6 月 06 日:为所有 HTML
元素添加计算角色。参见 GitHub PR 465 。
2023 年 3 月 28 日:添加 inert 属性映射。参见 GitHub PR 410 。
2023 年 3 月 24 日:添加 search 元素及其映射。参见 GitHub PR 355 。
2023 年 3 月 08 日:更新 hgroup 元素,将其映射到 role=group。参见 GitHub PR 398 。
2023 年 3 月 08 日:阐明 output 元素的命名算法。参见 GitHub PR 402 。
2022 年 12 月 12 日:修订 s 元素映射为 role=deletion。参见 GitHub PR 442 。
2022 年 11 月 28 日:简化可访问描述计算一节。参见 GitHub PR
444 。
2022 年 7 月 19 日:更新 address 元素,将其映射到 role=group。参见 GitHub PR 420 。
2022 年 4 月 03 日:根据 aside 的嵌套上下文更新其映射。参见 GitHub PR 350 。
2022 年 3 月 06 日:更新以下元素,使其映射到 generic 角色:
a no href、未限定到 body 的 footer、未限定到 body 的
header、
samp、span。参见
GitHub PR 364 。
2022 年 2 月 06 日:更新 mark,使其指向 Core AAM 中该角色的映射。参见 GitHub Issue 316 。
2021 年 11 月 02 日:将 blockquote、caption、code、
del、em、ins、meter、paragraph、
strong、sub、sup 和 time 更新到 Core AAM
中的 ARIA 1.2 映射。修正 body 映射到
generic,并修正 html 映射到 document。修正
hgroup 映射到 generic。更新 details,使其映射到
group,并带有特定于 ATK、UIA 的附加信息。参见
GitHub issue #348
2021 年 5 月 12 日:向属性表添加 FACES 引用——readonly、
name、form、disabled。参见 Issue 257 。
2019 年 12 月 12 日:添加 hgroup、slot、自治自定义元素和表单
关联自定义元素。参见 GitHub issue
#189 。
2019 年 11 月 26 日:更新 disabled、scope、
spellcheck、tabindex 的映射,使其指向 WAI-ARIA 。添加 AX pattern、
reversed、rows、size、span、
src、start、step、
type 属性映射。添加 min-length、ping、
playsinline、referrerpolicy、sizes、srcset、
data[value] 属性映射。参见
GitHub pull request #245 。
↑