体系结构和互作性

本主题简要介绍了 Microsoft Active Accessibility 和 Microsoft UI 自动化的体系结构,以及允许基于两种不同技术的应用程序之间的互作性的组件。

有关Microsoft活动辅助功能和 UI 自动化互作性的详细信息,请参阅 通用基础结构

本主题包含以下部分。

Microsoft活动辅助功能体系结构

Microsoft Active Accessibility 公开有关控件的基本信息,例如控件名称、屏幕上的位置和控件类型,以及状态信息(例如可见性和已启用/禁用状态)。 UI 表示为可访问对象的层次结构;更改和作表示为 WinEvents。

Microsoft活动辅助功能包含以下组件:

  • 可访问对象 - 逻辑 UI 元素(如按钮),由 IAccessible 组件对象模型(COM)接口和整数子标识符(ChildID)表示。
  • WinEvents - 一种事件系统,使服务器能够在可访问的对象发生更改时通知客户端。 有关详细信息,请参阅 WinEvents
  • OLEACC.dll- 提供Microsoft活动辅助功能 API 和辅助功能系统框架的运行时动态链接库。 OLEACC 实现代理对象,这些对象为标准 UI 元素(包括 USER 控件、USER 菜单和通用控件)提供默认辅助功能信息。

对于Microsoft活动辅助功能,辅助功能框架(OLEACC)的系统组件可帮助辅助技术(辅助工具)与应用程序之间的通信,如下图所示。

显示辅助功能工具如何与应用程序交互的插图 插图

应用程序(Microsoft活动辅助功能服务器)向代表用户与 UI 交互的工具(Microsoft活动辅助功能客户端)提供 UI 辅助功能信息。 代码边界既是编程边界,也是进程边界。

UI 自动化体系结构

使用 UI 自动化时,UI 自动化核心组件(UIAutomationCore.dll)将加载到辅助功能工具和应用程序的进程中。 核心组件管理跨进程通信,提供更高级别的服务,例如按属性值搜索元素,并启用对属性的批量提取或缓存,这比Microsoft活动辅助功能实现提供更好的性能。

UI 自动化包括提供有关标准 UI 元素的 UI 信息的代理对象,例如 USER 控件、USER 菜单和常见控件。 它还包括使 UI 自动化客户端能够从Microsoft活动辅助功能服务器获取 UI 信息的代理。

下图显示了辅助功能工具(客户端)和应用程序(提供程序)中使用的各种 UI 自动化组件之间的关系。

显示辅助功能工具组件如何与应用程序中的组件交互 插图

Microsoft活动辅助功能和 UI 自动化互作性

用于Microsoft活动辅助功能桥的 UI 自动化使Microsoft活动辅助功能客户端通过将 UI 自动化对象模型转换为Microsoft Active Accessibility 对象模型来访问 UI 自动化提供程序。 下图显示了 UI 自动化到Microsoft活动辅助功能桥的角色。

显示 ui 自动化如何使用辅助功能工具和应用程序插图

同样,Microsoft Active Accessibility-to-UI 自动化代理为 UI 自动化客户端转换基于 Active Accessibility 的服务器对象模型Microsoft。 下图显示了 Microsoft Active Accessibility-to-UI 自动化代理的角色。

显示 ui 自动化代理如何使用辅助功能工具和应用程序插图

IAccessibleEx 接口

IAccessibleEx 接口使现有应用程序或 UI 库能够扩展其Microsoft Active Accessibility 对象模型以支持 UI 自动化,而无需从头开始重写实现。 使用 IAccessibleEx,只能实现完全描述 UI 及其功能所需的附加 UI 自动化属性和控件模式。

由于 Microsoft Active Accessibility-to-UI 自动化代理将 Microsoft启用了 IAccessibleEx的对象模型转换为 UI 自动化对象模型,因此 UI 自动化客户端无需执行任何额外工作。 IAccessibleEx 接口还可以启用进程内Microsoft活动辅助功能客户端直接与 UI 自动化提供程序交互。

有关详细信息,请参阅 IAccessibleEx 接口

Windows 自动化 API 概述

IAccessibleEx 接口

辅助技术 安全注意事项