WAI-ARIA 图形 模块

W3C 推荐标准

此版本:
https://www.w3.org/TR/2018/REC-graphics-aria-1.0-20181002/
最新发布版本:
https://www.w3.org/TR/graphics-aria-1.0/
最新编辑草案:
https://w3c.github.io/graphics-aria/
实现报告:
https://w3c.github.io/test-results/graphics-aam/
上一版本:
https://www.w3.org/TR/2018/PR-graphics-aria-1.0-20180626/
编辑:
(Igalia, S.L.)
(W3C)
前任编辑:
(IBM Corporation)(至 2016 年 9 月)
(Knowbility)(至 2017 年 8 月)
作者:
(IBM Corporation)
(Knowbility)
(W3C)

请查看勘误表, 了解自发布以来报告的任何错误或问题。

另请参见 翻译


摘要

辅助技术需要关于文档结构和预期行为的语义信息,以便向残障人士 传达适当信息。本规范定义了一个 WAI-ARIA 1.1 [WAI-ARIA-1.1] 模块,其中包含特定于 Web 图形的核心角色。 这些语义允许作者向辅助技术表达图形的逻辑结构,以改善图形的无障碍性。 辅助技术随后可以启用语义导航,并适配样式和交互功能,从而为受众提供最佳 体验。这些特性补充了 HTML [HTML52] 和 SVG [SVG2] 定义的图形和文档结构元素。

本文档是 WAI-ARIA 套件的一部分, 该套件在 WAI-ARIA 概述中描述。

本文档状态

本节描述本文档在发布时的状态。其他文档可能会取代 本文档。当前 W3C 出版物列表以及本技术报告的最新修订版,可在 W3C 技术报告 索引 https://www.w3.org/TR/ 中找到。

这是由 Accessible Rich Internet Applications Working Group 制定的 Graphics-ARIA 1.0 W3C 推荐标准。该工作组创建了 Graphics-ARIA 1.0 实现 报告,以证明本规范是可实现的。附录中提供了 Graphics-ARIA 1.0 变更历史

要发表评论,请W3C graphics-aria GitHub 仓库中提交问题。如果这不可行, 请发送电子邮件至 public-aria@w3.org评论归档)。对 Graphics-ARIA 1.0 推荐标准收到的评论不能导致本规范此版本发生变更,但可能会在 勘误表或 Graphics-ARIA 的未来版本中处理。工作组可能不会对 评论作出正式回应,但工作组开展的未来工作可能会处理收到的关于本文档的评论。 对文档进行中的更新可在公开可见的编辑草案中查看。

本文档由 Accessible Rich Internet Applications Working Group 作为推荐标准发布。

欢迎对本文档发表评论。 请将评论发送至 public-aria@w3.org归档)。

请参见工作组的实现 报告

本文档已经由 W3C 成员、软件 开发者以及其他 W3C 小组和相关各方审查,并由总监认可为 W3C 推荐标准。 它是一份稳定文档,可以用作参考资料,或在另一 文档中引用。W3C 制定推荐标准的作用是引起对 规范的关注,并促进其广泛部署。这增强了 Web 的功能 和互操作性。

本文档由 一个在 W3C 专利政策下运作的 小组制作。 W3C 维护一个与该小组交付物 相关的任何专利披露的公开列表; 该页面还包括 披露专利的说明。实际知晓某项专利,且该个人认为该专利包含 必要 权利要求的个人,必须依照 W3C 专利政策第 6 节披露相关信息。

本文档受 2018 年 2 月 1 日 W3C 流程文档管辖。

1. 引言

本节是非规范性的。

WAI-ARIA 是一项技术规范, 提供了一个框架,用于改进 Web 内容和应用的无障碍性与互操作性。它 使 Web 浏览器能够将 Web 内容中的无障碍语义映射到特定平台的无障碍 API。这使 Web 内容能够与平台辅助技术互操作,类似于原生 平台应用,而不要求作者包含平台依赖。

本规范是 WAI-ARIA [WAI-ARIA-1.1] 的模块化扩展,旨在支持图形。本 规范的目标包括:

本规范定义了将在所有结构化图形或图示中使用的核心角色。 它建立了可用于描述图形标记元素(例如形状和 canvas)的默认角色。 结合用于 提供替代文本以及指示元素之间关系的 WAI-ARIA 属性,这为 注释许多图形和图示提供了一个框架。 未来工作将在此框架基础上扩展,以支持对数据密集型图形(例如 图表或地图)进行更详细的注释。

有关 WAI-ARIA 的更详细说明,请 参阅 WAI-ARIA 引言,以及它如何适用于 富互联网应用无障碍性。

1.1 目标受众

本规范定义了用于图形的 WAI-ARIA 模块,由 特定于图形的元素角色组成。 它影响多个受众:

每项一致性要求都会指明它所适用的受众。

1.2 用户代理支持

本模块遵循 WAI-ARIA [WAI-ARIA-1.1] 中定义的通用用户代理 支持原则。 此处定义的角色不要求用户代理在行为上作出任何更改,除了向无障碍 API 暴露的 信息之外。 但是,此处定义的语义为用户代理提供了增强呈现给读者的一般用户 界面的能力。 例如,用户代理可以提供适合图形 环境的替代键盘导航,或允许用户从较大的文档中提取图形副本。

1.3 WAI-ARIA 与宿主语言的共同演进

WAI-ARIA 图形模块遵循 WAI-ARIA [WAI-ARIA-1.1] 中定义的WAI-ARIA 与宿主语言共同演进模型。它旨在增强 支持性语言中的语义,例如 HTML [HTML52]、SVG [SVG2] 和 EPUB,或作为其他没有明确包含 ARIA 支持的 基于标记的语言中的无障碍增强技术使用。 当作者通过样式和脚本创建新类型对象,或使用描述文档视觉 外观而非其含义的标记语言时,WAI-ARIA 角色会向辅助技术阐明语义。

尽管标记语言可能原生提供其中一些语义,但预计仍会 持续需要 WAI-ARIA 图形模块提供的语义。 某些宿主语言存在的目的,是为用户界面以外的特性创建语义。例如, SVG 表达的是生成图形 对象背后的语义,而不是这些对象可能表示的用户界面组件的语义。这类 宿主语言在设计上可能不会提供能够映射到本规范全部特性的原生语义。在 这些宿主语言中,WAI-ARIA 图形 模块可作为添加语义信息的长期方法被采用。

1.4 创作实践

1.4.1 创作工具

WAI-ARIA 和图形 WAI-ARIA 角色状态属性定义中的许多要求可以在 开发过程中自动检查,类似于用于 验证代码的其他质量控制流程。为帮助正在创建图形的作者,这些工具可以将 来自 DOM 的图形 WAI-ARIA 角色的语义 结构与本规范中定义的结构进行比较,并通知 作者错误,或只是创建强制执行该结构的模板。

1.4.2 测试实践和 工具

交互式内容的无障碍性不能仅通过静态检查来确认。交互式内容的 开发者应测试对部件和应用的设备无关访问,并 应验证所有 内容以及用户交互期间变化的无障碍 API 访问。

1.5 辅助技术

对无障碍语义的编程式访问对辅助技术至关重要。有关更多 信息,请参阅 WAI-ARIA [WAI-ARIA-1.1] 中的辅助 技术章节。

特别是对于图形角色,有两类辅助技术尤其相关, 但它们有不同需求:

角色描述会建议具有该角色的元素的哪些特性被认为在语义上 重要,并且应在可能时传达给读者。

2. 一致性

本规范的主要内容是规范性的,并定义了影响一致性声明的要求。引言性 材料、附录、标记为“非规范性”的章节及其小节、图示、示例和 注释都是资料性的 (非规范性)。非规范性材料提供建议性信息,用于帮助解释指南,但 不创建影响一致性声明的要求。

规范性章节提供了用户代理为使实现符合本规范而必须遵循的要求。 本文档中的关键词 MUSTMUST NOTREQUIREDSHALLSHALL NOTSHOULDRECOMMENDEDMAYOPTIONAL 应按 用于 RFC 中表示要求 级别的关键词 [RFC2119] 中的描述解释。RFC-2119 关键词以大写格式显示,并包含在具有 class="rfc2119" 的元素中。当 上述关键词被使用但不共享这种格式时,它们不传达 RFC 2119 意义上的正式信息,而只是解释性的,即资料性的。本 规范会尽可能避免此类用法。

规范性章节提供了作者、用户代理和辅助技术为使实现符合本规范而MUST 遵循的要求。

非规范性(资料性)章节提供有助于理解本规范的信息。这些 章节可能包含推荐实践示例,但为了符合本规范,并不要求遵循这些建议。

3. 重要术语

本节是非规范性的。

虽然某些术语在使用处定义,但以下定义会贯穿本文档使用。

无障碍 API

操作系统和其他平台提供一组接口,向对象事件暴露信息给辅助技术。辅助技术 使用这些接口获取有关这些部件的信息,并与之交互。无障碍 API 的示例包括 Microsoft Active Accessibility [MSAA]、Microsoft User Interface Automation [UI-AUTOMATION]、带有 UIA ExpressMSAA [UIA-EXPRESS]、Mac OS X Accessibility Protocol [AXAPI]、Linux/Unix Accessibility Toolkit [ATK] 和 Assistive Technology Service Provider Interface [AT-SPI],以及 IAccessible2 [IAccessible2]。

辅助技术

硬件和/或软件,其:

  • 依赖用户代理提供的服务来检索和渲染 Web 内容
  • 通过使用 API 与用户代理或 Web 内容本身协同工作;以及
  • 提供超出用户代理所提供服务之外的服务,以促进残障人士与 Web 内容交互

此定义可能不同于其他文档中使用的定义。

在本文档上下文中重要的辅助技术示例 包括以下内容:

  • 屏幕放大器,用于放大并改善已渲染 文本和图像的视觉可读性;
  • 屏幕阅读器,最常用于通过合成语音 或可刷新盲文显示器传达信息;
  • 文本转语音软件,用于将文本转换为合成语音;
  • 语音识别软件,用于允许语音控制和听写;
  • 替代输入技术(包括头部指针、屏幕键盘、单开关 和吸/吹设备),用于模拟键盘;
  • 替代指点设备,用于模拟鼠标指向和点击。
属性

在本规范中,attribute 的用法与它在标记语言中的用法相同。属性是添加到元素上的结构性 特性,用于提供关于该元素所表示对象状态属性的信息。

一组共享相似特征的实例对象

元素

在本规范中,element 的用法与它在标记语言中的用法相同。元素是标记语言中的结构 元素,包含对象的数据配置文件。

事件

一种编程式消息,用于将状态中的离散变化传达给计算系统中其他 对象,该状态属于某个对象。用户对网页的输入通常通过 描述交互并可提供文档对象状态变化通知的 抽象事件来中介。在某些编程语言中,事件更常被称为 通知。

资料性

为信息目的提供且不要求用于一致性的内容。要求用于 一致性的内容称为规范性内容。

规范性

一致性所要求的。相比之下,标识为资料性或“非规范性”的内容不要求 用于一致性。

对象

在用户界面的上下文中,是感知用户体验中的一个项目,由标记语言中的一个或多个元素表示,并由用户代理渲染。

在编程上下文中,是一个或多个定义相似 对象一般特征的和接口的实例化。无障碍 API 中的对象可以表示一个或多个 DOM 对象。无障碍 API 具有不同于 DOM 接口的已定义接口。
本体

特征以及它们彼此之间关系的描述。

Property

对于给定对象的本质不可或缺的属性,或表示与该对象相关联的数据值的属性。属性的变化可能会显著影响 对象的含义或呈现。某些属性(例如 aria-multiline)比状态更不可能变化,但请注意,变化 频率的差异并不是规则。少数属性,例如 aria-activedescendantaria-valuenowaria-valuetext,预计会经常变化。请参见 状态与 属性的澄清

角色

类型的主要指示器。 这种语义关联允许工具以符合用户对该类型其他 对象期望的方式,呈现并支持与该对象的 交互。

语义

人类所理解的某物含义,并以计算机可处理某个对象表示的方式定义,例如元素属性,并能以各种人类都会对该对象达成相互一致理解的方式可靠地表示该对象。

状态

状态是一种动态属性,表达对象的 特征,这些特征可能会因用户操作或自动化过程而变化。状态不影响 对象的本质,但表示与对象相关联的数据或用户 交互可能性。请参见状态与 属性的澄清

分类体系

一种层级定义,用于说明各种的特征彼此如何关联,在 该层级中,类继承超类的属性。分类体系可以构成 本体正式定义的一部分。

用户代理

任何检索、渲染并促进最终用户与 Web 内容交互的软件。此 定义可能不同于其他文档中使用的定义。

部件

用户可以与之交互的离散用户界面对象。部件范围从只有一个值或操作的简单对象(例如复选框 和菜单项),到包含许多受管理子对象的复杂对象(例如树和 网格)。

4. 图形角色

本节定义对 WAI-ARIA 角色分类体系的补充, 并描述所有角色的特征和属性。 有关本模块所提供字段的描述,请参见 ARIA 角色

作者可以通过使用角色和属性,影响呈现给 辅助技术的内容,并影响导航。 这包括将元素标记为没有语义重要性的能力。 对于图形,有许多 情况中,呈现并导航每个元素会使 图形更难理解和使用。

作者可以通过分配 角色 nonepresentation,将元素标记为从 文档的语义表示 (无障碍树)中排除。 具有此角色的元素应被辅助技术透明地处理, 就好像其子项或文本内容 直接包含在其父元素中一样。 此外,某些角色, 例如 imggraphics-symbol, 在分配给父元素时,会导致所有子 DOM 结构从无障碍树中省略。 这由角色特征表中的“Children Presentational” 值指示。 最后,图形语言的原生语义 也可能默认忽略没有附加语义数据的 DOM 结构;对于 SVG,这在 SVG Accessibility API Mappings 规范 [SVG-AAM-1.0] 中定义。

在所有情况下,要被视为呈现性的,元素必须不是交互式的, 且不得被分配任何可访问属性或替代文本。 对于交互式元素或具有 WAI-ARIA 状态和属性的元素,nonepresentation 角色将被忽略。

4.1 角色定义

下面是本规范中定义的 WAI-ARIA 角色按字母顺序排列的列表。 它们通常会与 WAI-ARIA 中定义的其他角色结合使用, 用于注释文档和富互联网应用中的图形 [WAI-ARIA-1.1]。

graphics-document
document 的一种类型,其中 内容的视觉外观或布局传达含义。
graphics-object
graphics-document 的一个区段, 表示具有语义含义的不同对象或子组件。 图形对象本身也可以具有嵌套的子组件。
graphics-symbol
用于传达简单含义或类别的图形对象, 其中含义比特定视觉外观 更重要。 它可以是较大结构化图形(例如图表或地图)的组成部分。 该符号本身是一个原子对象; 子项是呈现性的。

graphics-document (角色)

document 的一种类型,其中 内容的视觉外观或布局传达含义。

与其他 document 类型类似, graphics-document 角色适用于页面中包含相关信息区域的根元素, 其中用户的主要交互模式预计是 浏览文档,而不是控制应用。 具有此角色的元素 可以是文档文件的根元素, 或其中嵌套结构的根元素。

graphics-document 可按如下方式 与相似角色区分:

  • 相对于其他文档,graphics-document 通过其视觉(通常是二维)表示的 语义重要性来区分。 用户代理和辅助技术 SHOULD 在支持图形导航时 考虑这一点。 对文档重新格式化或重新样式化的无障碍技术 SHOULD NOT 更改 graphics-document 的布局, 除非更改方式与其内容的语义角色和关系 一致。

  • 相对于 imggraphics-document 通过其内容的结构化性质来区分。 其子元素可以具有语义含义, 并且可以包含链接或其他交互式部件。

  • 相对于 graphics-objectgraphics-document 是自包含的。 当从周围内容中分离出来时,其含义仍然保留。 具有 graphics-document 角色的元素定义了 解释子内容的范围和上下文。

一般来说,作者 SHOULDgraphics-document 角色 用于结构化图形,例如 图表、地图、图示、技术图纸、蓝图和说明性图形。 但是,如果单个大型图形具有离散区域, 且这些区域可以在不牺牲含义的情况下安全地重新排列, 则每个这样的区域 SHOULD 是一个不同的 graphics-document。 可以使用替代角色(例如 figure) 将它们分组在一起。 一个 graphics-document 也可以嵌套在另一个内部, 例如嵌入在地图中的条形图 或图表面板矩阵 应具有 graphics-document 角色。 嵌套文档提供封装; 内部和外部图形的 组件之间的导航应是显式的。

为了支持基于 ARIA 1.0 规范的 用户代理和辅助技术, 作者可能希望包含 document 角色 作为后备值, 形式为 role="graphics-document document"

未来规范可能会为具有特殊语义结构的 特定类型图形文档定义更具体的角色。 这些更具体的角色将是 graphics-document 的子类。

特征:
特征
超类角色: document
相关概念:
继承的状态和属性:
名称来源: 作者
要求无障碍名称: True
子项呈现性: False

graphics-object (角色)

graphics-document 的一个区段, 表示具有语义含义的不同对象或子组件。 图形对象本身也可以具有嵌套的子组件。

表示一组彼此断开的对象的容器元素 应改为赋予 grouplist 角色。 没有语义含义且不改变祖先提供的语义上下文的 分组元素 (例如仅用于样式或布局的 divSVG gSHOULD NOT 被赋予角色。 可以使用角色 nonepresentation 显式指示 缺少角色。

graphics-document 不同, graphics-object 不必是自包含的, 且它不会为导航建立新的上下文。 但是,用户代理和辅助技术 SHOULD 为用户,特别是非视觉 用户, 提供一种以层级方式导航对象嵌套结构的方式, 类似于嵌套列表。

为了支持基于 ARIA 1.0 规范的 用户代理和辅助技术, 作者可能希望包含 group 角色 作为后备值, 形式为 role="graphics-object group"

特征:
特征
超类角色: group
相关概念:
继承的状态和属性:
名称来源:
  • 作者
  • 内容
要求无障碍名称: False
子项呈现性: False

graphics-symbol (角色)

用于传达简单含义或类别的图形对象, 其中含义比特定视觉外观 更重要。 它可以是较大结构化图形(例如图表或地图)的组成部分。 该符号本身是一个原子对象; 子项是呈现性的。

当作为结构化符号语言的一部分使用时, aria-roledescription 属性 (在 ARIA 1.1 [WAI-ARIA-1.1] 中引入) 可用于单独命名符号类型, 区别于该符号特定实例的名称和描述。

为了支持基于 ARIA 1.0 规范的 用户代理和辅助技术, 作者可能希望包含 img 角色 作为后备值, 形式为 role="graphics-symbol img", 如果这还不是该元素的默认语义角色。

特征:
特征
超类角色: img
相关概念:
继承的状态和属性:
名称来源: 作者
要求无障碍名称: True
子项呈现性: True

4.2 图形的其他角色

以下在 ARIA 1.1 [WAI-ARIA-1.1] 中定义的核心 ARIA 角色,也 与注释图形相关:

以下示例演示了在文档中适当地使用 imgfiguregraphics-document

5. 状态和属性

WAI-ARIA 提供了一组无障碍 状态和属性,用于支持各种 操作系统平台上的平台无障碍 API。辅助技术可以通过暴露的用户代理 DOM 或通过映射到 平台无障碍 API 来访问此信息。与角色结合使用时, 用户代理可以随时向辅助技术提供用户界面 信息,以传达给用户。状态或属性的变化会导致向 辅助技术发出通知, 该通知可以提醒用户已发生变化。

A. 变更日志

完整的WAI-ARIA Graphics Module 1.0 的提交历史可用。

A.1 上一份公开工作草案以来的实质性变更

A.2 第一份公开工作草案以来的其他实质性变更

B. 致谢

本节是非规范性的。

以下人员为本文档的开发作出了贡献。

B.1 发布时活跃于 SVG 无障碍任务组的参与者

B.2 发布时活跃于 ARIA WG 的参与者

B.3 资助方

本出版物部分由美国教育部的美国联邦资金资助, 资金来自 National Institute on Disability, Independent Living, and Rehabilitation Research(NIDILRR),最初 根据合同号 ED-OSE-10-C-0067,目前 根据合同号 HHSP23301500054C。本出版物的内容 不一定反映美国教育部的观点或政策; 提及商品名称、商业产品或组织,也不意味着 美国政府的认可。

C. 参考文献

C.1 规范性参考文献

[RFC2119]
用于 RFC 中表示 要求级别的关键词。S. Bradner。IETF。1997 年 3 月。最佳当前实践。URL:https://tools.ietf.org/html/rfc2119
[WAI-ARIA-1.1]
Accessible Rich Internet Applications(WAI-ARIA) 1.1。Joanmarie Diggs; Shane McCarron; Michael Cooper; Richard Schwerdtfeger; James Craig。W3C。2017 年 12 月 14 日。W3C 推荐标准。URL:https://www.w3.org/TR/wai-aria-1.1/

C.2 资料性参考文献

[AT-SPI]
Assistive Technology Service Provider Interface。The GNOME Project。URL:https://developer.gnome.org/libatspi/stable/
[ATK]
ATK - Accessibility Toolkit。The GNOME Project。URL:https://developer.gnome.org/atk/stable/
[AXAPI]
The NSAccessibility Protocol for macOS。Apple, Inc.。URL:https://developer.apple.com/documentation/appkit/nsaccessibility
[CORE-AAM-1.1]
Core Accessibility API Mappings 1.1。 Joanmarie Diggs; Joseph Scheuhammer; Richard Schwerdtfeger; Michael Cooper; Andi Snow-Weaver; Aaron Leventhal。W3C。2017 年 12 月 14 日。W3C 推荐标准。URL:https://www.w3.org/TR/core-aam-1.1/
[HTML52]
HTML 5.2。Steve Faulkner; Arron Eicholz; Travis Leithead; Alex Danilo; Sangwhan Moon。W3C。2017 年 12 月 14 日。W3C 推荐标准。URL:https://www.w3.org/TR/html52/
[IAccessible2]
IAccessible2。 Linux Foundation。URL:https://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2
[MSAA]
Microsoft Active Accessibility(MSAA)2.0。Microsoft Corporation。URL:https://msdn.microsoft.com/en-us/library/ms697707.aspx
[SVG-AAM-1.0]
SVG Accessibility API Mappings。Amelia Bellamy-Royds; Ian Pouncey。W3C。2018 年 5 月 10 日。W3C 工作草案。URL:https://www.w3.org/TR/svg-aam-1.0/
[SVG2]
Scalable Vector Graphics(SVG)2。Amelia Bellamy-Royds; Bogdan Brinza; Chris Lilley; Dirk Schulze; David Storey; Eric Willigers。W3C。2018 年 8 月 7 日。W3C 候选推荐标准。URL:https://www.w3.org/TR/SVG2/
[UI-AUTOMATION]
UI Automation。Microsoft Corporation。URL:https://msdn.microsoft.com/en-us/library/ee684009%28v=vs.85%29.aspx
[UIA-EXPRESS]
The IAccessibleEx Interface。Microsoft Corporation。URL:https://msdn.microsoft.com/en-us/library/windows/desktop/dd561898%28v=vs.85%29.aspx
[WCAG21]
Web Content Accessibility Guidelines(WCAG) 2.1。Andrew Kirkpatrick; Joshue O Connor; Alastair Campbell; Michael Cooper。W3C。 2018 年 6 月 5 日。W3C 推荐标准。URL:https://www.w3.org/TR/WCAG21/