主动辅助功能的工作原理

Microsoft Active Accessibility 旨在帮助辅助功能(称为 客户端)与其他应用程序和操作系统的标准 UI 元素和自定义 UI 元素进行交互。 Microsoft Active Accessibility 客户端是使用 Microsoft Active Accessibility 访问、标识或操作应用程序的 UI 元素的任何程序。 客户端包括辅助功能辅助功能、自动测试工具和一些基于计算机的训练应用程序。

使用 Microsoft Active Accessibility,客户端应用程序可以:

  • 查询信息;例如,关于特定位置的 UI 元素。
  • 在信息更改时接收通知;例如,当控件变为灰色或文本字符串更改时。
  • 执行影响用户界面或文档内容的操作;例如,单击一个按钮,下拉菜单,然后选择一个菜单命令。

与客户端交互并为客户端提供信息的应用程序称为 服务器。 服务器使用 Microsoft Active Accessibility 向客户端提供有关其 UI 元素的信息。 任何使用 Microsoft Active Accessibility 公开其用户界面相关信息的控件、模块或应用程序都被视为 Microsoft Active Accessibility 服务器。 服务器通过发送事件通知 ((例如调用 NotifyWinEvent) )和响应客户端访问 UI 元素的请求 ((例如处理从 OLEACC) 发送WM_GETOBJECT消息)来与客户端通信。 服务器通过 IAccessible 接口公开信息。

使用 Microsoft Active Accessibility,服务器应用程序可以:

  • 提供有关其自定义用户界面对象及其客户端窗口内容的信息。
  • 在其用户界面更改时发送通知。

例如,若要使用户能够从字处理器自定义工具栏中口头选择命令,语音识别程序必须具有有关该工具栏的信息。 因此,字处理器需要提供该信息。 Microsoft Active Accessibility 为字处理器提供了公开有关其自定义工具栏的信息以及语音识别程序获取该信息的方法。

客户端应用程序和活动辅助功能

当服务器 UI 发生更改时,必须通知 Microsoft Active Accessibility 客户端,以便它可以向用户传达该信息。 为了确保客户端了解 UI 更改,它使用一种称为窗口事件(WinEvents)的机制进行注册以接收通知。 有关详细信息,请参阅 WinEvents

为了了解和操作特定的 UI 元素,客户端使用 Microsoft Active Accessibility Component Object Model (COM) 接口 IAccessible

客户端可以通过以下四种方式检索 UI 元素的 IAccessible 对象: