Copyright © 2015-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
SVG 可访问性 API 映射(SVG-AAM)定义了 用户代理如何将可缩放矢量图形(SVG)[SVG2] 标记映射到平台 可访问性应用程序编程 接口(API)。它面向负责其用户代理中 SVG 可访问性的 SVG 用户 代理开发者。
本规范允许 SVG 作者创建可访问的 富互联网应用,包括图表、图形和其他绘图。它通过为用户代理扩展 核心可访问性 API 映射 1.1(CORE-AAM) [CORE-AAM] 和 可访问名称和描述:计算与 API 映射 1.1(ACCNAME-AAM) [ACCNAME-AAM] 规范来实现这一点。它 利用这些核心映射,并提供 SVG 专用 指导,以定义 SVG 用户代理必须如何响应 键盘焦点,以及 Web 内容中通过 WAI-ARIA [WAI-ARIA] 提供的 角色、状态和属性属性。 SVG-AAM 还调整了 ACCNAME-AAM,使其能够利用用于计算可访问名称和描述 信息的标准 SVG 特性,并将这些信息暴露给平台可访问性 API。
SVG-AAM 是 WAI-ARIA 套件的一部分,该套件见 WAI-ARIA 概述。
本节描述了本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 标准和草案 索引中找到。
我们正在更新本规范,以使其与 SVG 2.0 中的变更保持一致。这是一份早期草案,其中包含过时 信息和错误。请不要基于本草案进行实现。
若要评论,请在 SVG AAM GitHub 仓库中提交议题。请为每个主题创建单独的 GitHub 议题,而不要在一个议题中评论 多个主题。创建 GitHub 账户以提交议题是免费的。在评论之前, 请先查看 SVG AAM GitHub 仓库中是否已有相关 评论。如果无法在 GitHub 中提交 议题,请发送邮件至 public-svg-a11y@w3.org (以往评论的邮件归档)。
本文档中特别有问题的开放议题会被高亮显示,并附有指向 GitHub 讨论的链接。 我们特别欢迎对这些议题发表评论。
相对于上一份已发布的工作草案(2018 年 5 月 10 日),已作出以下变更:
相对于此前发布的工作草案(2016 年 9 月 8 日),已作出以下主要变更:
use 元素影子 DOM 内容
的处理方式已发生变化。此外,还进行了大量澄清性编辑。
本文档最初由 可访问 富互联网应用工作组和 SVG 工作 组通过 SVG 可访问性任务组共同开发。它现在由 ARIA 工作组与 ARIA 和 SVG 工作组开发的其他规范协作产出。
本文档由 可访问富互联网 应用工作组作为 工作草案发布,并使用 推荐标准 轨道。
作为 工作草案发布并不意味着 W3C 及其成员的认可。
这是一份草案文档,可能随时被其他 文档更新、替换或废止。除作为进行中的工作之外, 不宜引用本文档。
本文档由一个依据 W3C 专利 政策运作的工作组产出。 W3C 维护了一份与该组交付成果相关的 公开专利披露列表; 该页面还包含 披露专利的说明。任何实际 知晓某项专利且认为该专利包含 必要权利要求 的个人,必须按照 W3C 专利政策第 6 节披露相关信息。
本文档受 2025 年 8 月 18 日 W3C 流程文档约束。
本节为非规范性内容。
本规范定义了 SVG 宿主语言元素和 内容——无论是否应用了 WAI-ARIA 角色、状态 和属性——如何映射到可访问性 API。各节给出 关于计算文本替代、将动作映射到 事件、事件处理、特殊文档 处理过程以及错误处理的指导。
本简介提供了一些背景,说明本规范为何存在,以及它与其他 WAI-ARIA 规范的关系。它包括对可访问性 API 以及称为 可访问对象层级结构的总体 概述,该层级结构称为 可访问性树。
在传统图形用户界面(GUI) 应用中,用户界面(UI)的组件会根据用户交互 在需要时显示,在不需要时隐藏。 可访问性 API 用于向 残障人士所使用的 辅助 技术 传达关于用户界面的 语义。
这些 API 构成了 应用与辅助技术(例如屏幕阅读器、放大器、替代输入 设备以及语音命令和控制)之间的契约,使它们能够访问生成交互式应用或复杂文档 可用替代形式所需的适当语义。例如, 面向盲人用户的屏幕阅读软件可以确定某个特定 UI 组件是菜单、按钮、文本字段、列表框等。它还可以 以为每段文本提供上下文的方式呈现表格或列表中的信息。
对于 Web 文档和应用,基本语义信息封装在 文档对象模型(DOM)中。辅助 技术从 用户代理(Web 浏览器)获取此信息,用户代理将元素 和属性映射到平台可访问性 API。
在可缩放矢量图形(SVG)文档中,大多数 SVG 元素 不提供对辅助技术有价值的语义信息。相反,它们表示 低级矢量图形绘制指令。只有在作者提供了替代文本、描述或 WAI-ARIA 语义时,该元素对辅助 技术才具有意义。
SVG 规范的版本 1 [SVG1] 和版本
1.1
[SVG11] 都包含了用于定义可访问
名称和
描述
的元素(<title> 和 <desc>)。然而,在本规范之前,并没有规范性指导说明
用户代理应如何向辅助技术暴露这些信息,或如何将其与支持 WAI-ARIA 的宿主语言和验证器集成。同样,也没有关于
用户代理应如何使交互式 SVG 键盘
可访问的指导。
SVG 2 现在纳入了基于
HTML 5 既有模型的键盘导航。用户代理向
默认交互式的 SVG 元素(链接以及带控件的
音频/视频元素),或作者已指示可接收焦点的元素
(通过使用 tabindex 属性)提供顺序焦点导航。焦点也可以由脚本以编程方式
设置或移除,以便作者实现更复杂的键盘焦点模式。
SVG 与核心 DOM 标准 [DOM] 紧密保持一致,支持在 交互式环境中使用 JavaScript 操作图形。通过使用 JavaScript、 CSS 以及相关 API,作者可以使 SVG 看起来并表现得像交互式应用,从而 生成丰富的交互式图表和绘图。
为了允许作者在静态和交互式图形中表达并动态更新其预期语义, SVG 2 支持使用 WAI-ARIA 角色、状态和属性。 作者可以在其标记中包含 WAI-ARIA 属性,用户 代理会将其转换为平台可访问性 API。
WAI-ARIA 使丰富的、由 SVG 绘制的互联网应用能够具有与 安装在其操作系统上的 GUI 应用相同的 可访问性特性。在复杂静态图形中,WAI-ARIA 提供了 HTML 中由语义元素提供的缺失文档结构。
关于 WAI-ARIA 的简介,请参见 WAI-ARIA 概述。
SVG 可访问性 API 映射规范(本文档)定义了 WAI-ARIA 特性如何与 SVG 语言的原生语义交互。它是一组资源的一部分,这些资源 定义并支持 WAI-ARIA 规范,包括以下 文档:
本指南严重依赖 核心可访问性 API 映射 和 可访问名称和描述 规范([CORE-AAM] 和 [ACCNAME-AAM])中定义的可访问性 API 映射,但定义了由于 SVG 宿主 语言 [SVG2] 中的特性而导致的映射 变更。主要差异源于 SVG 固有的宿主 语言语义:
为了提供对 GUI 应用的访问,软件 应用通过 可访问性 API 暴露 辅助 技术与其互操作所需的必要信息。通过 可访问性 API 暴露的可访问性信息 必须在应用生命周期内得到维护。
在 Web 页面中,文档对象模型(DOM)用于 表示由 用户代理渲染的文档中 元素的结构和状态。文档中的元素被组织成称为 DOM 树的节点层级。用户代理将 DOM 映射到可访问性 API,方式与桌面应用映射 UI 组件相同。提供给可访问性 API 的信息用于支持 辅助技术,并期望从 DOM 传递的信息与作者的语义意图相匹配。作者可以 通过使用文档语言的原生特性,或在原生特性不可用时使用 WAI-ARIA,来传达这种语义意图。
作者使用 SVG 创建广泛的应用 和绘图。在 SVG 中支持可访问性 API 所需的信息,来自元素自身的 语义,以及由 WAI-ARIA 和本 规范所支持的 WAI-ARIA 模块化扩展 所提供的附加语义的组合。
屏幕阅读器或其他辅助技术使用通过 可访问性 API 暴露的语义信息,为用户提供有意义的应用替代呈现。
本文档(以及它所扩展的其他规范)支持的可访问性 API 包括:
如果用户代理开发者需要使用其他可访问性 API 暴露信息,建议他们与 该 API 所运行平台的开发者以及 该平台上的辅助技术开发者密切合作。
可访问性树和 DOM 树是并行结构。粗略地说, 可访问性树是扁平化 DOM 树的子集, 随后会对其进行扩充,以包含用户代理的用户界面 对象 以及文档的对象。
对于每个应暴露给 辅助 技术的 DOM 元素, 都会在可访问性树中创建 可访问对象。某个元素可能会被暴露,是因为它可能触发可访问性 事件,或因为它具有需要暴露的属性、关系或特性。
通常,如果某个 DOM 元素可以从
可访问性树中省略而不影响含义,则出于性能和简化原因会省略它。例如,一个
<span> 如果只有样式变化而没有语义,
可能不会获得自己的可访问对象,但该样式变化会通过其他方式暴露。
除标记为非规范性的章节外,本规范中的所有编写指南、图表、示例和注释 均为非规范性内容。本规范中的其他所有内容均为规范性内容。
本文档中的关键词 MAY、MUST、MUST NOT、OPTIONAL、RECOMMENDED、REQUIRED、SHALL、SHALL NOT、SHOULD 和 SHOULD NOT 应按照 BCP 14 [RFC2119] [RFC8174] 中的说明解释,但只有在它们像此处所示那样全部 大写出现时才如此。
本规范将某些章节标记为非规范性,也称为资料性。该分类 适用于整个章节。所有其他章节均提供规范性要求。除非另有说明, 声明“本节为非规范性内容”适用于其所有子章节。 此外,所有标记为“注”的文本框都是资料性的。
规范性章节提供了用户代理必须遵循的要求,以使某个实现
符合本规范。本文档中的关键词 MUST、MUST
NOT、REQUIRED、SHALL、SHALL
NOT、
SHOULD、RECOMMENDED、MAY 和
OPTIONAL 应按照
用于在 RFC 中指明
要求级别的关键词 [rfc2119]
中的说明解释。RFC-2119
关键词以大写格式显示,并
包含在带有 class="rfc2119" 的元素中。当上面显示的关键词被使用,但
不具有该格式时,它们不传达 RFC 2119 意义上的正式信息,
而只是解释性的,即资料性的。本规范尽可能避免此类
用法。
资料性章节和注释提供有助于理解本规范的信息。此类 章节可能包含推荐实践的示例,但为了符合本规范,并不要求遵循这些 建议。
在 Web 应用中启用键盘导航,是使可访问 Web 应用成为可能的必要步骤。键盘不仅是许多用户的主要输入设备, 其他可访问输入设备也使用键盘事件与用户代理通信。
可缩放矢量图形(SVG)1 [SVG1] 和 1.1 [SVG11] 规范
仅包含非常有限的键盘支持(动画的访问键)。许多用户代理实现了
针对链接的 Tab
焦点,但没有声明式或脚本化的方式让作者控制此行为。
可缩放矢量图形(SVG)2 [SVG2]
引入了基于 HTML tabindex 模型的键盘导航和焦点控制。
符合要求的用户代理 MUST 符合 核心可访问性 API 映射 [CORE-AAM] 中的 支持键盘 导航 要求。
SVG 可访问性任务组打算 为作者和用户代理制定关于图形文档中导航的更详细指南。
WAI-ARIA 支持已在可缩放矢量图形(SVG)2 [SVG2] 中正式引入到 SVG,该版本允许 ARIA 属性在默认命名空间中使用。本节定义了如何通过平台可访问性 API 将 WAI-ARIA 语义暴露给辅助 技术,以及如何基于 WAI-ARIA 将 SVG 元素映射到可访问性 API。
SVG 用户代理 MUST 符合核心 可访问性 API 映射 [CORE-AAM] 中的暴露 WAI-ARIA 语义的一般规则,并包含以下小节中描述的补充内容。
DOM 中的某些元素不会通过 可访问性 API 暴露。核心可访问性 API 映射 [CORE-AAM] 的从可访问性树中排除 元素一节概述了排除元素的一般规则。 其中一个因素是宿主语言语义是否规定该元素不应 显示。
SVG 语言定义了许多符合 此条件的元素。许多 SVG 元素从不直接 渲染到屏幕,而另一些元素是否被渲染或显示, 取决于上下文或 CSS 样式。既不可感知也不可交互的元素 不应包含在暴露给可访问性 API 的可访问性树中。本节详述了对 SVG 宿主语言语义的预期 解释。
核心可访问性 API 映射中描述的、用于排除元素的其他因素可概括 如下:
none 或
presentation,
则不得暴露该元素。
true 的 aria-hidden
,则不应暴露它。
button 和
img
会排除所有子内容,避免其被直接纳入可访问性树。
但请注意,元素的若干特性(例如交互性)可能导致
作者提供或继承的
none 或 presentation 角色
因错误而被忽略。
如果某个元素当前可基于用户交互接收焦点,则不会将其排除。
从不直接渲染到屏幕,也不由图形中的交互区域表示的元素,
不需要对应的可访问对象。用户代理
MUST NOT 将
SVG 元素映射
表中标明为 no accessible object created 的任何元素或其
后代内容作为可访问
对象包含在
可访问性树中。用户代理 SHOULD 还应
排除过去或未来 SVG
规范或模块定义的、明确指出该元素从不直接
渲染的任何其他元素。
例如,表示滤镜、渐变或渐变停止点的元素永远不会创建
可访问对象。包含在 SVG 定义
节中或作为图案一部分的形状元素或图像元素也不会有可访问对象,因为祖先
defs 或 pattern 元素的语义排除了整个 DOM 子树在可访问性
树中的表示。
从可访问性
树中排除的元素,仍可能用于另一个元素的名称和描述计算,
如名称和描述一节中所定义。非渲染
元素也可用作由
use 元素创建的渲染元素实例的模板,如Use 元素影子树一节所述。
虽然动画元素和视图元素不会直接包含在可访问性树中, 但它们可能影响表示其目标元素的可访问对象,如 需要额外计算的特殊处理中所述。
此外,SVG 1.1 [SVG11] 定义了
条件处理属性
systemLanguage、requiredExtensions 和 requiredFeatures。
这些属性可单独使用,也可与 switch 元素组合使用,
以在特定条件下阻止内容被渲染,或在内容的替代
版本之间进行选择。
SVG 用户代理 MUST
NOT 向可访问性 API 暴露任何因该元素上的条件处理属性
或因该元素在 switch 构造中的位置
而未被渲染的元素。switch 元素本身 SHOULD
应像具有
none 或 presentation 角色一样被省略。
SVG 元素的渲染也受
CSS 样式属性影响,这些属性可通过
样式表规则、内联样式、表现属性或动画指定。无论
样式属性如何指定,其效果都取决于
CSS 级联所确定的最终计算值 [CSS-CASCADE-3]。用户代理
MUST NOT 向可访问性 API 暴露任何因其计算样式中
display
属性值为 none 而未被渲染的元素。
其他样式属性可能阻止一个原本属于渲染树的元素 在渲染图形中创建任何可见表示。此类元素仍可能是 交互式的;它们可能接收键盘焦点,或可能与图形中响应指针输入事件的区域 关联。
就 SVG 而言,如果一个元素根据
visibility
属性的计算值既不可见,又根据
pointer-events
属性对指针用户不可交互,则认为它是隐藏的。用户代理 SHOULD NOT
向可访问性 API 暴露在此意义上隐藏的任何元素,
除非作者通过将 aria-hidden 属性设置为
false 来显式覆盖该隐藏。
对于容器元素(例如 g 或 svg),如果其后代内容中任何部分可见或可
接收用户事件,则不认为该元素是隐藏的,而不管该元素自身的 visibility 计算值如何。
类似地,use 元素可能包含可见或交互式组件
图形,即使其样式属性会使单个形状元素被隐藏。
如果其影子树中的任何元素
可见或可交互,则 use 元素 MUST 被视为可见或可交互。(不过,如果容器或 use 元素
没有其他理由将其包含在可访问性树中,它仍可能被视为表现性的。)
带有 marker 的形状元素,如果其任何 marker 可见或可交互,则它是可见或可交互的。
在 HTML 和其他使用 CSS 样式的文档中,
使用 visibility: hidden 使其不可见的元素,对于可访问性目的而言始终是隐藏元素,
等同于未渲染的
元素(例如具有 display: none 的元素)。
对于 SVG,由于它与 pointer-events 属性的交互,
这并不总是合适。
在许多情况下,不可见元素具有语义重要性(因为它们是 交互式的),而可见元素只是表现性的。例如,大型不可见 元素通常用于为地图或数据图表中的点提供易于命中的目标。由于这些 元素会响应指针事件,因此它们实际上可被指针用户感知,并且也应 可被辅助技术用户感知和交互。
对于以下
pointer-events
属性值,具有 visibility: hidden
计算值的 SVG 元素
可以对指针用户交互:
painted,适用于任何渲染元素,但不包括形状或文本中
fill 和 stroke 属性的计算值均为
none 的情况
fillstrokeallbounding-box当前位于屏幕外,或被其他元素遮挡的元素,不被视为 隐藏。用户代理应通过其他方式暴露此状态,如核心可访问性 API 映射 [CORE-AAM] 的状态和属性 映射 一节中所述。
其他各种样式属性和几何属性(属于元素本身或其祖先 元素)可能使元素不可见。出于简化、灵活性和性能 原因,这些属性不被视为一种会从可访问性树中排除元素的隐藏方法。
当使用 display 或 visibility 以外的属性来隐藏
非活动内容时,作者可以使用
aria-hidden
属性指示辅助技术应忽略该元素及其
后代。
本规范的早期草案也曾将
fill 和 stroke 属性在二者均设置为
none 值时,视为隐藏元素的一种有效方式。由于这引入了过度
复杂性,现已将其移除。某些 SVG 元素(例如嵌入式
图像)不受 stroke 和 fill 影响;即使是受其影响的元素,也可能在没有它们的情况下可见,
因为存在 marker 或滤镜效果。
此外,它可能导致外观相同的图形(例如:一个使用
fill: transparent 而不是 fill: none 的图形)具有明显不同的
可访问性树。
不过请注意,fill 和 stroke 属性仍可能
根据 pointer-events 属性的值,对元素的纳入产生
间接影响。
将非渲染元数据元素(包括 desc)严格排除在
可访问性树之外,意味着其内容将只能作为纯文本可用,而不能作为
用户可在浏览模式中导航的结构化替代表示。
这与 SVG 规范的原始意图相矛盾,该规范允许这些元素 包含结构化内容,包括 HTML 命名空间内容。SVG 1 规范曾 建议这些内容也可以作为 CSS 格式化的 XML 文本替代呈现,但目前使用中的 用户代理/辅助技术组合并不支持这一点。
编辑欢迎就如何以与用户代理和可访问性 API 实现一致的方式表示这种隐藏的替代内容,提供反馈和建议 (见 GitHub Issue #6)。
许多 SVG 元素虽然会渲染到屏幕上,却 没有内在的语义含义。相反,它们表示文档视觉 呈现的组成部分。为 简化文档的可访问表示,这些纯表现性元素通常 应从可访问性树中省略,除非作者显式提供 语义内容。
但是,任何渲染的 SVG 元素都可能具有语义 含义。作者通过包含替代文本内容或 WAI-ARIA 属性来指示该元素的重要性。本节定义了 将通常被省略的元素纳入可访问性树的规则。
SVG 命名空间中的以下图形元素和容器元素 SHOULD NOT 被纳入 可访问性树,除非本节另有说明:
circle、
ellipse、line、path、polygon、
polyline、rect)
use 元素g)元素image 元素mesh 元素textPath、
tspan)
foreignObject 元素
虽然这些元素会从可访问性树中省略,但其子内容
仍会被处理,如同它是 DOM 树中最近的、已包含在可访问性树中的祖先节点的直接子节点一样。
换言之,这些标记元素会被视为
具有 none 或 presentation 角色。
对于 use 元素,其关联影子树中的元素和文本 MUST 按照需要额外计算的处理
中指定的条件,被处理为 use
元素的子内容。
这意味着影子树中的元素可以被纳入可访问性树,
即使 use 元素本身具有(默认或作者提供的)
presentation 角色。
SVG 用户代理 MUST 为满足以下任一条件的渲染 SVG 元素 在可访问性树中提供可访问对象, 除非它们依据从可访问性树中排除元素中的规则被排除在可访问性树之外:
none
或
presentation。
在起草本文档时,这些条件如下:
aria-activedescendant
属性的元素,该属性匹配所需上下文角色的隐式或显式语义。
在任一情况下,该元素都可能接收焦点,并需要触发一个 FOCUS 事件。
aria-hidden="true"
的元素。(关于
aria-hidden 的额外指导,参见在可访问性树中排除元素。)
aria-controls、aria-describedby、
aria-flowto、
aria-labelledby
或 aria-owns)
引用,且未被隐藏的元素。
应查阅源文档 [CORE-AAM] 的最新版本 以获取规范性文本。
对隐藏元素的例外意味着 SVG 元数据元素或其他非渲染
内容可用于另一个元素的可访问名称和描述,而其自身
不会被纳入可访问性树。例如,当前用于后备
浏览器支持的最佳实践,是使用 aria-labelledby 和 aria-describedby
冗余地链接到
title 和 desc 子元素。将这些元素作为
单独节点纳入树中,会不必要地复杂化呈现给屏幕阅读器
用户的文档。
交互式元素由关于可能触发可访问性 API 事件的元素的要求所涵盖。 具体而言,对于 SVG,以下元素是交互式的,并且 MUST 被纳入可访问性树,不设例外,无论它们在其他情况下是否会被视为 隐藏或表现性:
tabindex 属性具有正整数值,
或者默认可聚焦且未通过负整数
tabindex 属性
从 Tab 顺序中移除,它可能接收键盘焦点并
因而接收键盘输入事件。
关于会沿 DOM
树冒泡的指针事件,接收事件的确切元素可能没有语义含义(也就是说,它仍可能
是表现性的)。但是,
接收指针事件的能力会覆盖任何基于
visibility: hidden 样式属性的排除。
tabindex 属性和 pointer-events 属性对因
display: none 属性或宿主语言语义而根本未被渲染的元素没有影响。
在宿主语言为 SVG,且原生语义如 SVG 元素映射 表、 状态和属性映射一节以及需要额外计算的特殊处理一节所述的情况下, SVG 用户代理 MUST 符合核心可访问性 API 映射 [CORE-AAM] 中的 原生标记语义与 WAI-ARIA 之间的冲突。
对于根据SVG 元素映射 表定义不会创建可访问对象且不得应用任何角色的元素,它们没有隐式角色 语义。 ‘aria-roledescription’ 属性 MUST NOT 暴露在这些元素上。所有其他 SVG 元素在与全局 WAI-ARIA 属性一起使用时, 都具有隐式角色语义,包括 ‘aria-roledescription’。
SVG 用户代理 MUST 符合 核心可访问性 API 映射 [CORE-AAM] 中的 暴露 未直接映射到可访问性 API 属性的属性。
平台可访问性 API传统上具有一组有限的 预定义 角色,这些角色是该平台上的辅助 技术 所期望的,并且可能只暴露一个或两个角色。
WAI-ARIA 一次仅支持一个活动角色。不过,可以将多个角色指定为一组有序的、 以空格分隔的有效角色标记。附加角色是后备角色,类似于 在首选字体不受支持时指定多个字体族的概念。这允许 角色分类法在未来为专门应用进行扩展。只要可能,整个 角色字符串都会暴露给可访问性技术,使其即使在平台 API 中没有等效角色时,也能作出适当响应。
SVG 用户代理 MUST 必须符合核心可访问性 API 映射 [CORE-AAM] 中角色映射一般规则的可访问性 API 计算要求。
本节定义了 SVG2 中的元素如何基于其原生宿主语言
语义,映射到 WAI-ARIA 角色和平台可访问性 API,包括可以应用哪些
WAI-ARIA 角色。
本节直接引用核心可访问性 API 映射 [CORE-AAM] 规范中的
角色映射
,以及图形可访问性
API 映射 [GRAPHICS-AAM]
规范中的 角色映射,这些规范定义了
如何将 WAI-ARIA 角色映射到平台
可访问性 API。
| SVG 规范 |
a
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素具有有效的 href 或 xlink:href 属性,则为
link 角色。
对于
不是链接的 a 元素,如果 a 元素
是 text 的后代,则使用 tspan 的映射,否则使用 g 的映射。
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
animate
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
animateMotion
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
animateTransform
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
audio
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 遵循 HTML 可访问性 API 映射规范 [HTML-AAM] 中HTML audio 元素的建议。 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
application 角色
|
| SVG 规范 |
canvas
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 遵循 HTML 可访问性 API 映射规范 [HTML-AAM] 中HTML canvas 元素的建议。 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
circle
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-symbol
角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
clipPath
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未为此元素或任何子内容创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
defs
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未为此元素或任何子内容创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
desc
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未为此元素或任何子内容创建可访问对象;参见 名称和描述映射 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
ellipse
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-symbol
角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
feBlend
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feColorMatrix
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feComponentTransfer
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feComposite
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feConvolveMatrix
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feDiffuseLighting
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feDisplacementMap
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feDistantLight
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feDropShadow
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feFlood
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feFuncA
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feFuncB
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feFuncG
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feFuncR
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feGaussianBlur
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feImage
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feMerge
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feMergeNode
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feMorphology
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feOffset
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
fePointLight
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feSpecularLighting
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feSpotLight
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feTile
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
feTurbulence
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
filter
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
foreignObject
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
group 角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
g
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
group 角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
iframe
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 遵循 HTML 可访问性 API 映射规范 [HTML-AAM] 中HTML iframe 元素的建议。 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
application、document、img
|
| SVG 规范 |
image
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
img 角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
line
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-symbol
角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
linearGradient
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
marker
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
mask
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
metadata
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未为此元素或任何子内容创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
mpath
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
path
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-symbol
角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
pattern
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未为此元素或任何子内容创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
polygon
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-symbol
角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
polyline
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-symbol
角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
radialGradient
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
rect
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-symbol
角色映射;否则,
不创建可访问对象
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
script
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
set
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
source
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 遵循 HTML 可访问性 API 映射规范 [HTML-AAM] 中HTML source 元素的建议。 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
stop
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
style
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
svg
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
graphics-document
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
switch
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
symbol
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-object
角色映射;否则,
不创建可访问对象
注
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
text
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
group 角色,但具有以下
平台专用 API 映射:
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
textPath
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
group 角色映射;否则,
不创建可访问对象
,但文本样式的变化在受支持时 SHOULD
通过父文本元素的属性暴露
议题
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
title
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 ;参见名称和描述映射 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
track
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 遵循 HTML 可访问性 API 映射规范 [HTML-AAM] 中HTML track 元素的建议。 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
| SVG 规范 |
tspan
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
group 角色映射;否则,
不创建可访问对象
,但文本样式的变化在受支持时 SHOULD
通过父文本元素的属性暴露
议题
|
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
use
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 |
如果该元素满足
将元素纳入可访问性树的条件,则为
graphics-object
角色映射;否则,
不创建可访问对象
注
注意,即使宿主元素没有被纳入, 编辑注
本规范此前的草案并不要求直接暴露重用的
图形元素; 随着改为直接暴露重用图形,针对 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
任何角色;参见 核心可访问性 API 角色映射
和
图形可访问性 API 角色映射
|
| SVG 规范 |
video
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 遵循 HTML 可访问性 API 映射规范 [HTML-AAM] 中HTML video 元素的建议。 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 |
application 角色
|
| SVG 规范 |
view
|
|---|---|
| 默认平台 WAI-ARIA 角色映射 | 未创建可访问对象 ;特殊处理要求见 SVG 视图一节 |
| 允许的 WAI-ARIA 角色和 平台 WAI-ARIA 角色 映射 | 不得应用任何角色 |
对
textPath
和 tspan
使用 group 角色,是将其作为一段文本内容的通用容器,该文本内容形成一个不同对象
(可能是因为它具有补充的替代文本标签或描述,或因为它
是
交互式的)。ARIA 1.1 没有用于非交互式文本片段的任何角色。
还需要开展更多工作,以解决文本专用的平台可访问性 API 角色是否能够更有效地服务于
此功能。特别是对于 ATK,
ATK_ROLE_STATIC 角色可能比 group 的通常映射
更合适。
欢迎在 GitHub Issue #2 中提出改进映射的建议)
本节描述如何暴露 WAI-ARIA 状态和 属性。SVG 用户代理 MUST 符合核心可访问性 API 映射 [CORE-AAM] 中 状态和属性 映射的可访问性 API 计算 要求。
此外,SVG 元素上的以下属性需要 特殊处理:
audio 或
video 元素上的
controls
按照
HTML 属性
状态和属性映射 [HTML-AAM] 中的定义解释。
tabindex
按照
HTML 属性
状态和属性映射 [HTML-AAM] 中的定义解释。
view 元素上的
viewTarget,会在视图处于活动状态时,在关联的
svg 元素上创建
aria-flowto 关系,如 SVG 视图一节所定义。
xlink:title
会影响可访问名称和描述
的计算。
此处使用 xlink 前缀来指代 XLink 命名空间
http://www.w3.org/1999/xlink。给定名称在该命名空间中的属性,
应按照此处的描述进行处理,而不管该命名空间在标记中或通过脚本是如何应用的。
XLink 命名空间属性已在 SVG 2 [SVG2]
中废弃,
但仍期望用户代理处理
它们,以维持向后兼容。尽管如此,SVG 2
要求,如果在给定元素上二者均已设置,
默认命名空间中的 href
属性优先于 XLink 等效属性。在这种情况下,XLink 版本对于名称和描述计算而言无效。
给定元素的有效属性,以及由此产生的状态和属性映射,可能会受到 声明式动画的影响,如 动画一节所述。
在计算可访问名称或可访问描述时,用户代理 MUST 符合可访问名称和描述规范 [ACCNAME-AAM] 中标题为 文本替代 计算一节的要求,并针对 SVG 宿主语言作出以下 修改:
如果当前节点遍历不是由跟随aria-labelledby或aria-describedby引用而产生,并且当前节点 根据 从可访问性树中排除元素 和 将元素纳入可访问性树中的规则未被纳入 可访问性树,则返回空字符串。
否则,如果正在为可访问名称执行文本替代计算:
- 如果当前节点至少有一个直接子
title元素,则根据 SVG 规范的语言规则选择 适当的 title,并将 title 文本替代作为扁平字符串返回。- 如果当前节点是链接,并且没有子
title元素,但它具有xlink:title属性,则返回该属性的值。如果正在为可访问描述执行文本替代计算:
- 如果当前节点至少有一个直接子
desc元素,则根据 SVG 规范的语言规则选择 适当的描述,并返回该描述的拼接文本内容。
替换为:对于当前节点的每个子节点:
来修改该步骤如果该元素是文本容器元素,则对于当前节点的每个子节点:
否则,如果正在为可访问描述执行文本替代计算,并且 当前节点至少有一个直接子
title元素,但在为该节点生成 可访问名称时未使用 title 元素,则根据 SVG 规范的语言规则选择适当的 title,并返回 title 文本内容作为描述。否则,如果当前节点是链接,并且它具有未用于可访问名称的
xlink:title属性,则返回该属性的值。
在确定某个元素是否具有直接子元素时,只考虑实际的 DOM 子元素,而不管父元素是否具有关联的 影子树。
这些变更的净效果,是为可访问名称建立以下替代文本值优先级:
aria-labelledbyaria-labeltitle 元素xlink:title 属性可访问描述的替代文本值具有以下优先级:
aria-describedbydesc 元素title 元素
xlink:title 属性,如果未用于提供可访问名称
aria-labelledby 和 aria-describedby 属性可以引用
其所在的元素,以便将其他某个文本替代与来自单独元素的文本
拼接起来。
SVG 用户代理 MUST 符合 核心可访问性 API 映射 [CORE-AAM] 中 控件值 的可访问性 API 计算要求。
SVG 用户代理 MUST 符合 核心可访问性 API 映射 [CORE-AAM] 中 关系 的可访问性 API 计算要求。
CORE-AAM 中关于关系的章节要求,辅助技术 SHOULD 提供一种方法,用于导航到由
aria-describedby 引用的结构化内容(以及在其中导航)。
这与当前不将非渲染描述性内容纳入
可访问性树的方法相冲突。
SVG 用户代理 MUST 符合 核心可访问性 API 映射 [CORE-AAM] 中 组 位置 的可访问性 API 计算要求。
本规范使用 影子树 和 宿主 这两个由 DOM 标准 [DOM] 定义的术语,以及 use 元素影子树 和 元素实例 这两个由 SVG 2 [SVG2] 定义的术语。
SVG 用户代理 MUST 处理为
use 元素影子树生成的元素实例,就像这些元素是
use 元素自身的子元素一样,并满足以下
条件:
在处理影子树内元素上的 WAI-ARIA 属性时,
用户代理 MUST 首先尝试将任何 IDREF 值与同一影子树中的
其他元素匹配,然后再
在宿主的节点树中搜索匹配项。如果影子树发生嵌套,用户代理 MUST 从当前影子树递归搜索到包含其宿主
use 元素的树,直到到达文档树。
在所有其他情况下,当匹配 WAI-ARIA 属性中的 IDREF 值时,用户代理 MUST
NOT 考虑 use
元素影子树中的元素。
编辑将努力使这些指南与对影子树 元素进行 WAI-ARIA 处理的一般规则保持一致,例如 Web 组件中的规则。 希望实现者就以这种方式封装 IDREF 匹配的实际可行性 提供反馈。
关于 shadow DOM 和 ARIA 的一般反馈应在 Core-AAM 议题中讨论。SVG 专有的反馈可提交到本规范的 Issue #7。
SVG 为作者提供了指定文档某个特定
视图的方法。视图通过文档 URL 的目标片段应用,可以是引用
view 元素的 id,也可以是
使用 SVG 视图规范片段标识符
指定自定义视图。
SVG 视图的视觉效果等同于修改父
svg 元素(对于 view 元素)或根元素(对于 SVG 视图
规范片段)上的属性。因此,用户代理 SHOULD
在视图生效时修改表示该
svg
的可访问对象。
具体而言,应作出以下变更:
viewTarget 属性,则 svg 元素 SHOULD 被映射为如同其具有
aria-flowto 属性,
且该属性指定与 viewTarget 属性中包含的 IDREF
值相同的列表。
view 元素应用的,则计算该元素的可访问名称和
描述,忽略 view 元素被排除在
可访问性树之外这一事实。如果结果是非空字符串,则在视图生效期间,它 SHOULD
替换 svg 元素对应的名称或描述。
指向包含 SVG 视图
规范或 view 元素 id 的 URL 的导航动作 SHOULD
被视为目标 svg 元素上的一系列属性变更
事件,随后导航到该元素。用户代理 MAY 将属性变更表示为删除现有
节点后再插入已修改节点。
SVG 视图提供了 SVG 独有的功能,在 HTML 文档中没有直接等价物。 它们可用作导航动作的终点,但其自身并不是目标内容的容器。 它们也可在嵌入 SVG 文档时使用,以便将视觉 内容裁剪为仅包含文件的一部分。
编辑非常希望看到 SVG 视图实际使用的示例,以便我们确定上述 要求是否足够。需要特别考虑的问题包括: 是否需要用于管理键盘焦点的特殊规则,或者是否需要在视图生效时排除渲染到屏幕外的内容。
此外,viewTarget 属性,以及 SVG 视图片段的对应参数,已在 SVG 2 中废弃。它们的预期用途是触发目标元素中的视觉样式
变化,但用户代理从未很好地实现这一点。没有
viewTarget 时,SVG 中将没有原生方式来指示
给定视图的语义目标。对于 view 元素(但不包括视图片段),一个可能的替代方案是
鼓励作者直接指定 aria-flowsto 属性。随后这些属性
需要映射到相关的 svg 元素。
这引出了一个问题:在视图生效期间,是否还应将任何其他(或全部)ARIA 属性
从 view 元素映射到 svg 元素的可访问对象上。
这需要仔细考虑所有可能的后果和
冲突。例如,视图是否应该能够改变 SVG 元素的角色?
aria-flowsto 属性在辅助工具中支持并不好;曾有提案建议在未来版本中将其废弃。
用户代理是否还有其他方式可以暴露已变更的视图,使辅助技术用户能够快速理解
图形的哪些部分是可见的?
关于这些问题的反馈可在 issue #8 中提供。
SVG 动画元素可以修改元素属性和 样式属性。CSS 动画可以修改样式 属性。这两种动画都可以由用户交互触发,或 按固定计划运行。
如果动画改变了 WAI-ARIA 状态或属性特性的有效值,或改变了 状态和属性映射一节中描述的 SVG 属性,则用户代理 MUST 以与实际属性值被 更改时相同的方式暴露该变更。
role 属性不可动画化。
如果动画变更影响某个元素是否被渲染,或以会导致其从可访问性树中排除的方式 改变其可见性,则用户代理 SHOULD 按照核心可访问性 API 映射 [CORE-AAM] 中 文档内容或节点可见性 的变更一节的指南暴露该变更。
SVG 用户代理 MUST 符合 核心可访问性 API 映射 [CORE-AAM] 中 动作 的可访问性 API 计算要求。
用户代理会为用户动作、 WAI-ARIA 状态变更、文档内容或节点可见性的变更、选择变更以及菜单操作触发事件。符合要求的用户代理 MUST 支持 [CORE-AAM] 的事件映射。
相对于分别实现 SVG([SVG2])和 WAI-ARIA ([WAI-ARIA])而言, 实现本规范预计不会为 Web 平台增加任何新的安全或隐私考虑。
如果你认为本规范造成了潜在的新安全或隐私风险,请在本规范的 GitHub 仓库中 提出议题。
本节为非规范性内容。
除列明的作者和编辑外,SVG 可访问性任务组的参与者也为本文档的开发作出了贡献。 也感谢 Joanmarie Diggs 以及其他实现者,他们对草案提供了反馈并协助测试。
本出版物的部分资金来自美国教育部、国家残障、独立生活与康复研究所(NIDILRR)的美国联邦资金, 最初合同号为 ED-OSE-10-C-0067,随后合同号为 HHSP23301500054C, 现在合同号为 HHS75P00120P00168。本出版物的内容不一定反映美国教育部的观点 或政策,提及商品名、商业 产品或组织也不意味着美国政府的认可。