Copyright © 2014-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
本文档描述用户代理如何从 Web 内容语言中确定名称和 描述,这些名称和描述属于可访问 对象。 此信息又会通过 可访问性 API 公开,以便辅助技术能够识别这些对象并 向用户呈现 其名称或描述。记录用于确定名称和描述的算法,有助于促进不同 可访问性 API 之间对这些属性的可互操作公开,并有助于确保此 信息以符合作者意图的方式呈现。
可访问名称和描述计算规范定义了适用于多种 内容技术的支持。这包括由通用型 WAI-ARIA [WAI-ARIA] 角色、状态和属性提供的可访问名称和描述,以及 个别内容语言特有的特性。
本文档更新并最终将取代 可访问名称和描述计算 1.1 [ACCNAME-1.1] W3C 推荐标准中的可访问名称和描述指导。它是 WAI-ARIA 概述中所述 WAI-ARIA 套件的一部分。
本节描述本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可以在 W3C 标准和草案 索引中找到。
本文档由 Accessible Rich Internet Applications Working Group 作为 工作草案发布,并使用 推荐标准 轨道。
作为 工作草案发布并不意味着 W3C 及其成员的认可。
这是一份草案文档,可能随时被其他 文档更新、替换或废止。除作为正在进行的工作外, 不宜引用本文档。
本文档由一个在 W3C 专利 政策下运作的小组制作。 W3C 维护一份 与该小组交付物相关的任何专利披露的公开列表; 该页面还包括 披露专利的说明。任何实际 知悉某项专利,并认为该专利包含 基本权利要求 的个人,必须依照 W3C 专利政策第 6 节披露该信息。
本文档受 2025 年 8 月 18 日 W3C 流程文档管辖。
本节是非规范性的。
用户
代理从 DOM
[DOM] 获取信息,并
创建一个称为
可访问性树的并行结构,该结构由可访问对象组成。可访问
对象提供有关其角色、
状态和属性的信息。一个示例是角色为
menuitem、当前处于 enabled 状态,并带有
haspopup 属性的可访问对象,这表示它会通向一个子菜单。
本文档中描述的可访问对象的两个属性是其可访问名称和可访问描述。名称是一个简短标签,
它提供关于对象用途的信息。菜单项的一个可访问名称示例是
New,表示该菜单项用于创建新的
文档、窗口等。
描述是一个简短说明,用于进一步阐明可访问对象的性质。如果名称已经足够, 并不总是需要提供描述,但它可以 帮助用户更好地理解对象的用途。
可访问性 API 目前支持用于可访问名称和描述的扁平、非结构化 字符串。因此,名称/描述计算的结果 是一个扁平字符串。
使用“可访问名称”和“可访问描述”这些术语,是为了强调它们是 可访问对象的属性,这些对象由 可访问性 API公开。不过,在下文中它们通常被简称为 “名称”和“描述”。
本节是非规范性的。
虽然有些术语是在使用处定义的,但以下定义会在本文档通篇使用。
满足以下条件的硬件和/或软件:
此定义可能与其他文档中使用的定义不同。
在本文档的语境中重要的辅助技术示例包括 以下各项:
可访问描述提供与界面元素相关的附加信息,用于 补充可访问名称。可访问描述可能 也可能不会 在视觉上可感知。
可访问名称是用户界面元素的名称。每个平台可访问性 API都会提供可访问名称 属性。可访问名称的值可以派生自用户界面元素的可见属性(例如,按钮上的可见文本) 或不可见属性(例如,描述图标的文本替代) 。另见相关的可访问描述。
“OK”按钮可以说明可访问名称属性的一个简单用法。文本 “OK”就是可访问名称。当该按钮获得焦点时,辅助 技术可以将平台的角色描述与可访问名称拼接起来。例如, 屏幕阅读器可能朗读“push-button OK”或“OK button”。拼接的 顺序以及角色描述的具体内容(例如,“button”、“push-button”、 “clickable button”)由平台 可访问性 API 或辅助技术决定。
任何会导致用户代理生成工具提示的宿主语言属性,例如在桌面用户代理中 响应鼠标悬停时生成工具提示。
除了标记为非规范性的章节外,本规范中的所有编写指南、图表、示例和注释也都是非规范性的。 本规范中的其他所有内容都是规范性的。
本文档中的关键词 MAY、MUST 和 MUST NOT 应按 BCP 14 [RFC2119] [RFC8174] 中的描述来解释,但仅限于它们全部以大写形式出现时, 如此处所示。
规范性章节提供了作者、用户代理和辅助技术为了使实现符合本规范 MUST 遵循的要求。
非规范性(资料性)章节提供有助于理解本规范的信息。这类 章节可能包含推荐实践的示例,但为了符合本规范, 并不要求遵循这类建议。
名称和描述计算的起点是一个 DOM 元素。输出是一个扁平、非结构化的
字符串,它可以简单到只是一个
单词,也可以是一个由空格分隔的标记组成的字符串。示例包括 Save 和
Reload from disk。
一个重要因素是该元素的角色,它决定哪些
内容会贡献到名称字符串中。角色具有一个 nameFrom
RDF 属性,其可能值有三个:
aria-label 和 aria-labelledby 属性,或宿主语言的标注
机制,例如 HTML 中的 alt 或 title 属性,
或 SVG 中的 desc 元素。
aria-label 或
aria-labelledby 属性来命名该元素。
可访问富互联网 应用(WAI-ARIA)1.2 [WAI-ARIA] 规范 提供了 支持由 author 提供名称的角色、支持由 content 提供名称的角色以及 不能被 命名的角色列表。
下表提供了可应用于计算可访问描述的标记的优先顺序。用户代理MUST 使用 表中第一个满足所列条件的适用条目,如最后一 列所述。用户代理 MUST NOT 使用第一个相关 标记之外的任何其他标记, 即使该标记会产生空描述:
| 优先级 | 属性 | 适用条件 | 如何用于计算描述 |
|---|---|---|---|
| 1 |
aria-describedby
属性
|
用于任何元素 | 对该元素上 aria-describedby 所引用的所有节点执行名称计算, 将结果串联,并用一个空格字符分隔 |
| 2 |
aria-description
属性
|
用于任何元素 | 作为扁平字符串 |
| 3 | 参与描述计算的宿主语言特性 | 独有的宿主语言特性MAY 参与元素的描述 计算,但前提是它们尚未被用于该适用元素的可访问名称。 请参见 HTML AAM:可访问描述 计算, 其中列出了满足此 条件的 HTML 元素。 | 宿主语言元素的文本等价计算,或宿主语言属性的字符串值。 |
| 4 | 宿主语言的工具提示属性或等价特性(例如 HTML title
属性) |
|
作为扁平字符串 |
文本等价计算同时用于可访问 名称和可访问描述。针对若干 不同类型的元素、节点以及标记组合,提供了不同规则。适当时, 文本替代会由包含在 元素中的所有相关内容逐步构建起来。这是 通过递归的步骤 2B 和 2F 完成的,它们使用完整的一组规则,从 自身的子节点或其引用的节点中检索文本。
计算的目的是为替代表现形式创建一个可感知的标签或描述, 其形式是由空格分隔的文本 标记组成的扁平字符串。
root node 的文本等价而当前遍历到的
DOM 节点。最初,current node 是
root node,但在后续阶段,它要么是
root node 的某个后代,要么是另一个被引用的节点。
current node 时已经计算出的文本等价。result 复制到 X。result 复制到 X 的末尾。result 复制到 X。result 复制到
该空格之后的 X 中。result 复制到 X。result 复制到 X 的开头。result 复制到 X。result 复制到 X 的开头,并在
该副本之后添加一个空格。给定元素的文本替代按如下方式计算:
root node 设置为给定
元素,将 current node 设置为
root node,并将 total accumulated text 设置为空字符串 ("")。如果
root node 的角色禁止命名,则返回空字符串 ("")。
current node 的文本替代:
current node 具有一个
aria-labelledby 属性,其中包含至少
一个有效 IDREF,并且 current node 尚未作为正在进行的
aria-labelledby 或
aria-describedby 遍历的一部分,则按 IDREF 出现的顺序处理它们:
accumulated text 设置为空
字符串。
current node 设置为
该 IDREF 所引用的节点。
current node 的文本替代。将
result 设置为该文本替代。
result 附加到 accumulated text。
accumulated text 不是
空字符串 (""),则返回它。
LabelledBy 遍历与
隐藏且未被引用结合后的结果
意味着,当由 aria-labelledby 或
aria-describedby 引用的节点是隐藏的时,
用户代理MUST 将子树中的所有节点都作为可访问名称
或可访问
描述的一部分包含进来。
current node 是另一个部件的标签
(例如由 aria-labelledby 直接引用的任何元素)中嵌入的控件,
且用户可以调整该嵌入控件的值,则按如下方式将
该嵌入控件作为文本替代的一部分返回:
current node
不是 slot
元素,并且具有一个
aria-label 属性,其值
不是 undefined,不是空字符串,也不是在去除空白后为
空字符串:
current node 的遍历是由于Name From Content 后代
节点递归,并且
current node 是嵌入控件,则忽略 aria-label
并跳至规则 嵌入控件。
aria-label 的值。current node 的原生标记提供了一个定义文本
替代的属性(例如
alt)或元素(例如 HTML label 或 SVG title),则以
宿主语言定义的 flat string 形式返回该替代(例如 HTML-AAM),除非
current node 被公开为呈现性(role="presentation"
或 role="none"、alt="")。
例如,在 HTML 中,
img 元素的 alt 属性定义文本
替代字符串,而
label 元素为被引用的表单元素提供文本。在
SVG2 中,desc 和 title
元素提供其父元素的
描述。
current node 的角色允许
由
内容提供名称,或者如果 current node 由
aria-labelledby、aria-describedby 引用,或者
是原生宿主语言文本替代元素(例如
HTML 中的 label),或者是
原生宿主语言文本替代元素的后代:
accumulated text 设置为空字符串。
current node 关联的
CSS 生成文本内容,并将其包含在
accumulated text 中。
CSS ::before
和 ::after 伪元素
[CSS2]
可以为具有内容模型的元素提供文本内容,此外还有
::marker
伪元素。
current node 的
rendered child nodes:
current node 的每个
rendered child node:
current node 设置为
rendered child node。
current node 的文本替代。将
result 设置为该文本替代。
result 附加到
accumulated text。
accumulated text 不是
空字符串 (""),则返回它。
重要:子树中的每个节点只会 被查询一次。如果已从某个后代收集了文本,但该后代又被某个 后代节点中的另一个 IDREF 引用,则不会跟随第二个或后续的引用。这是 为了避免无限循环。
此步骤可以应用于子节点本身,这意味着
计算是递归的,并会从 current node 的
子树中的所有元素收集文本,无论其深度如何。不过,任何给定后代节点的文本
替代都可能来自上文步骤 B
到 D 中描述的更高优先级标记,
其中“Namefrom: author”属性为
整个子树提供文本替代。
2024 年 1 月 18 日:ARIA 工作组正在考虑
根据 current node 及其相邻节点和伪元素的 CSS display 值,
以带空格或不带空格的方式连接文本字符串的可行性。
正在进行的讨论见 AccName
#225。
current node
是一个文本节点,则返回
其文本内容。
current node 是某个正在计算其可访问名称或可访问
描述的元素的后代,并且包含后代,则继续执行
由内容提供名称重置。
current node
具有一个工具提示属性,
则返回其值。
只有在没有任何其他内容(包括子树内容)提供结果时,才使用工具提示属性。
result
附加到 total accumulated text。total accumulated text 将用作发起计算的
元素的可访问名称或可访问描述。
关于名称和描述的可访问性 API 映射信息,包括 labelled-by/label-for 和
described-by/description-for 等关系,记录在
核心可访问性 API 映射规范 [CORE-AAM-1.2] 中。请参见
aria-label、aria-labelledby 和 aria-describedby 的映射表条目。
本节是非规范性的。
以下人员为本文档的开发作出了贡献。
本出版物的部分资金来自美国教育部、 国家残障、独立生活与康复研究所(NIDILRR)的美国联邦资金, 最初合同编号为 ED-OSE-10-C-0067,随后合同编号为 HHSP23301500054C,现在为 HHS75P00120P00168。本出版物的内容并不一定反映美国教育部的观点 或政策,提及商号、商业 产品或组织也并不意味着美国政府的认可。
Referenced in:
Referenced in: