PD ISO IEC TR 13066——信息技术与辅助技术互操作(无障碍API)技术报告系列

Information Technology — Interoperability with Assistive Technology (AT) (ISO/IEC TR 13066 系列英国发布版)

📐 PD ISO IEC TR 13066 是英国标准协会(BSI)以技术报告(Technical Report, TR)形式发布的信息技术与辅助技术互操作性出版文件系列,内容与 ISO/IEC TR 13066 一一对应。该系列面向无障碍(accessibility)领域,系统描述主流操作系统与图形环境中供辅助技术(AT,如读屏软件、语音识别、放大工具、盲文显示器、替代输入设备等)访问应用程序用户界面的无障碍应用编程接口(API)。通过统一并结构化地描述这些 API 的总体结构、架构与使用方式,帮助开发者编写出可被各种辅助技术访问的应用程序,从而改善残障人士与老年用户使用信息技术的体验,也便于辅助技术厂商与应用程序开发商之间实现跨平台互操作。该系列归口 ISO/IEC JTC 1 相关技术委员会,英国参与的归口技术委员会为 ICT/-/6(ICT Accessibility)。

💡 辅助技术要与应用程序交互,关键在于程序暴露的标准无障碍接口:辅助技术通过读取接口获得界面元素的名称、角色、状态与值,并向界面发送动作或监听事件。本系列按平台分别描述 Windows、IAccessible2、Linux/UNIX 及 Java 等环境的无障碍 API,是跨平台无障碍实现的重要参考。

一、系列概述与发布背景 📌

ISO/IEC TR 13066 系列以技术报告(TR)形式提供说明性指导,不构成强制性要求。各分册针对不同操作系统与图形环境,描述其无障碍 API 的总体描述、架构、使用方式与关键接口,辅助技术厂商与应用程序开发者据此实现互操作。该系列与 ISO/IEC 13066-1(互操作性的框架与指南)及 WCAG 等无障碍指南共同构成信息技术无障碍的技术基础。需要强调的是,技术报告所载内容多为描述与指导,具体实现仍须遵循各平台官方 API 文档与相关法规要求。

从版本沿革看,PD ISO/IEC TR 13066-2:2016 取代了已废止的 13066-2:2012(对应 ISO/IEC TR 13066-2 第 2 版,2016-02-01);13066-3:2012 对应 ISO/IEC TR 13066-3 第 1 版(2012-09-15);13066-4:2015 对应 ISO/IEC TR 13066-4 第 1 版(2015-11-01);13066-6:2014 对应 Java 无障碍 API。各分册在术语、架构描述上保持相互衔接,使读者能在同一概念体系下理解不同平台的无障碍实现。

⚠️ 本系列为技术报告(Technical Report),所载内容为描述与指导;具体实现须遵循各平台官方 API 文档与相关法规要求,报告本身不构成强制性技术门槛。

二、系列构成与技术要点 🧩

系列主要包含以下分册,下表按标准号、主题与核心内容归纳。

标准号主题核心内容
PD ISO/IEC TR 13066-2:2016Windows 无障碍应用编程接口(API)Microsoft Active Accessibility(MSAA)、UI Automation(UIA)、IAccessibleEx 接口的总体描述与架构
PD ISO/IEC TR 13066-3:2012IAccessible2 无障碍应用编程接口(API)总体描述、架构、使用方式、用户界面元素、焦点获取与设置
PD ISO/IEC TR 13066-4:2015Linux/UNIX 图形环境无障碍 APIATK(Accessibility Toolkit)、AT-SPI、可访问工具包、架构与接口概述
PD ISO/IEC TR 13066-6:2014Java 无障碍应用编程接口(API)Java Accessibility API 的结构、接口与使用(扫描版)

从覆盖范围看,该系列几乎涵盖了当前主流桌面与服务器图形环境:Windows 以 MSAA/UIA 为核心,IAccessible2 作为跨平台桥接扩展,Linux/UNIX 以 ATK/AT-SPI 为基础设施,Java 则通过 java.awt.accessibility 包提供跨平台能力。这种”一平台一接口、接口间可桥接”的格局,要求开发者理解各接口的共性语义(名称、角色、状态、值、动作、事件),才能在多个平台间保持一致的无障碍体验。

⚠️ 本批次中 PD ISO/IEC TR 13066-6 为扫描版本,其相关内容依据公开领域知识撰写,具体接口细节请以 BSI 正式发布文本为准。

三、关键技术要求:Windows 无障碍 API 🔥

3.1 Windows 无障碍接口体系(Part 2)

Windows 平台提供多种无障碍接口,形成”三代并存、桥接协同”的格局:早期为 Microsoft Active Accessibility(MSAA),后发展为 UI Automation(UIA),并通过 IAccessibleEx 接口桥接两者,使基于 MSAA 的辅助技术能与 UIA 提供者协同工作。该部分描述了这些接口的总体结构、对象模型、属性与事件机制,以及辅助技术如何枚举窗口、读取控件属性、监听状态变化并向控件发送动作,从而实现与应用程序的互操作。Windows 辅助技术(如读屏软件)通常通过注册系统钩子与消息监听获取界面状态,因此 UIA 提供的事件通知机制是保证辅助技术实时响应的关键。

3.2 使用方式与焦点管理

在使用层面,辅助技术需要获得焦点才能确定当前用户界面的交互对象,进而读取其属性并发送动作。报告描述了焦点获取与设置的流程、用户界面元素的层级模型,以及属性查询与动作调用的典型调用序列。对于键盘导航依赖度高的用户而言,焦点管理与界面元素的可聚焦性是可用性的先决条件,因此该部分对辅助技术实现者具有直接的指导价值。

✅ 实践提示:实现无障碍的关键不是”堆 API”,而是让每个用户界面元素都能被辅助技术正确感知——具备名称、角色、状态、值,并能响应动作与事件。开发者应结合本系列与 WCAG 指南进行实现与测试。

四、关键技术要求:跨平台与 Linux/UNIX 无障碍 API 🔧

4.1 IAccessible2 无障碍 API(Part 3)

IAccessible2 在微软 MSAA 基础上扩展,弥补其在对富文本、表格、文档与复杂控件信息表达上的不足,广泛用于跨平台应用(如浏览器、办公套件)的无障碍支持。该部分描述了其总体描述、架构、用户界面元素模型、焦点获取与设置,以及辅助技术使用该 API 的方法。IAccessible2 通过扩展接口为 MSAA 提供结构化文档、表格单元格、超链接等更细粒度的信息,使读屏软件能够朗读复杂的富文本内容,而不必退化为纯文本流。

4.2 Linux/UNIX 图形环境无障碍 API(Part 4)

Linux/UNIX 桌面环境通常采用 ATK(Accessibility Toolkit)与 AT-SPI(Accessibility Service Provider Interface)作为无障碍基础设施。该部分描述了 ATK 感知的工具箱、可访问性服务提供者接口、对象层级与事件机制,并说明应用程序与辅助技术如何通过系统总线(D-Bus)交互。在 Linux/UNIX 下,可访问性由工具包层(GTK 等实现 ATK)与应用层共同提供,AT-SPI 则作为跨进程的桥梁把界面信息暴露给辅助技术,因此报告特别强调”ATK Aware Toolkits”这一概念——只有工具包感知 ATK,其控件才能被辅助技术访问。

五、Java 无障碍 API 与互操作要点 📡

Java 平台通过 java.awt.accessibility 包提供 Accessibility API,使 Java 组件能够向辅助技术暴露其可访问信息。该部分(扫描版)描述 Java Accessibility API 的结构、接口与典型使用方式,帮助 Java 应用程序实现无障碍支持。Java 的跨平台特性使其无障碍接口与具体操作系统解耦,但需通过桥接(如 Java Native Interface 与平台无障碍服务)才能与本地辅助技术通信,因此跨语言互操作是 Java 无障碍实现的关键环节。

综合来看,本系列的核心价值在于:为不同平台的无障碍 API 提供一套共同的语义参考,使”可访问名称、角色、状态、值、动作、事件”等概念在不同操作系统间保持一致。无论是 Windows 的 UIA、Linux 的 AT-SPI 还是 Java 的 Accessibility API,其服务对象都是同一批辅助技术用户,语义一致性直接决定了用户跨平台切换时的体验稳定性。

💡 跨平台无障碍实现应优先保证”语义一致”而非”接口一致”:同一功能在 Windows、Linux/UNIX、Java 上暴露相同的可访问名称与角色,用户才能在切换平台时获得一致的读屏与键盘导航体验。

六、工程实践应用 🛠️

  • 🔍 应用无障碍实现:依据平台 API 为用户界面控件设置可访问名称、角色、状态与值,并触发正确的事件,确保控件可聚焦、可导航。
  • 📊 辅助技术兼容:与主流读屏、语音识别、放大工具进行兼容性测试,验证交互流程可用,覆盖键盘导航与焦点管理场景。
  • 📐 跨平台一致性:在 Windows、Linux/UNIX、Java 等环境采用一致的语义表达,避免同一功能在不同平台行为不同。
  • 📋 法规合规:结合 WCAG 等无障碍标准评估,满足相关法规与采购要求,并建立无障碍回归测试机制。

七、常见问题(FAQ)❓

Q1:MSAA 与 UI Automation 有何关系?
A:MSAA 是较早的 Windows 无障碍接口,UI Automation 是其后继;IAccessibleEx 用于桥接,使两者可协同工作,形成”三代并存、桥接协同”的格局。
Q2:IAccessible2 与 MSAA 有何不同?
A:IAccessible2 扩展了 MSAA,弥补其对富文本、表格、文档等复杂信息表达不足,常用于跨平台应用(如浏览器、办公套件)的无障碍支持。
Q3:Linux 下常用的无障碍接口是什么?
A:ATK(Accessibility Toolkit)与 AT-SPI(Accessibility Service Provider Interface),通过系统总线(D-Bus)在应用与辅助技术之间交换界面信息。
Q4:Java 应用如何实现无障碍?
A:通过 java.awt.accessibility 包中的 Accessibility API,使组件向辅助技术暴露可访问的名称、角色、状态等,并经桥接与本地辅助技术通信。
Q5:本系列是强制性标准吗?
A:不是。它是技术报告,提供描述与指导;强制性与法规性要求来自 WCAG 及适用法律,具体实现须遵循各平台官方 API 文档。
🔒
正在加载下载地址,请稍候 10 秒

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注