活动辅助功能的工作原理

Microsoft Active Accessibility 旨在帮助辅助功能辅助功能(称为 客户端)与其他应用程序和操作系统的标准和自定义 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 更改的通知,它使用名为 Window Events 或 WinEvents 的机制注册来接收通知。 有关详细信息,请参阅 WinEvents

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

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