本主题概述了 MICROSOFT UI 自动化规范,该规范构成了 UI 自动化的 Windows 实现的基础。 除了 Microsoft Windows 之外,还可以跨平台支持 UI 自动化规范。 有关详细信息,请参阅 UI 自动化规范
本主题包含以下部分:
介绍
UI 自动化规范提供对 Windows 桌面上的 UI 元素的灵活编程访问,使屏幕阅读器等辅助技术产品能够向最终用户提供有关 UI 的信息,并通过标准输入以外的方式作 UI。
UI 自动化的范围比接口定义更广。 它提供:
- 一个对象模型和函数,使客户端应用程序能够轻松接收事件、检索属性值和作 UI 元素。
- 用于查找和提取跨进程边界的核心基础结构。
- 一组接口,用于表示 UI 元素的树结构、常规属性和功能。
- 一个“控件类型”属性,允许客户端和提供程序清楚地指示 UI 对象的通用属性、功能和结构。
UI 自动化通过以下方式改进了Microsoft活动辅助功能:
- 启用高效的进程外客户端,同时继续允许进程内访问。
- 以允许客户端进程外的方式公开有关 UI 的详细信息。
- 与活动辅助功能并存并利用Microsoft,而不会继承其限制。 有关详细信息,请参阅 Microsoft活动辅助功能和 UI 自动化比较。
- 提供 易于实现的 IAccessible 的替代方法。
Windows 功能组件对象模型(COM)中基于 UI 自动化规范的接口和托管接口的实现。
UI 自动化元素
UI 自动化将客户端应用程序的每个 UI 作为 自动化元素公开。 提供程序为每个元素提供属性值。 元素作为树结构公开,桌面作为根元素。
自动化元素公开它们所表示的 UI 元素的通用属性。 其中一个属性是控件类型,用于描述其基本外观和功能(例如按钮或复选框)。
UI 自动化树
UI 自动化树表示整个 UI:根元素是当前桌面,子元素是应用程序窗口。 其中每个子元素可以包含表示菜单、按钮、工具栏等的元素。 这些元素反过来可以包含列表项等元素,如下图所示。
显示 ui 自动化树screen shot showing ui automation tree的屏幕截图
请注意,UI 自动化树中兄弟姐妹的顺序非常重要。 在 UI 自动化树中,在视觉上彼此相邻的对象也应彼此相邻。
特定控件的 UI 自动化提供程序支持在该控件的子元素之间导航。 但是,提供程序不涉及这些控件子树之间的导航。 这是由 UI 自动化核心管理,使用默认窗口提供程序中的信息。
为了帮助客户端更有效地处理 UI 信息,框架支持自动化树的替代视图:原始视图、控件视图和内容视图。 如下表所示,筛选类型确定视图,客户端定义视图的范围。
自动化树 | 描述 |
---|---|
原始视图 | 桌面为其根的自动化元素对象的完整树。 |
控件视图 | 在用户感知 UI 结构时,原始视图的子集将紧密映射到 UI 结构。 |
内容视图 | 控件视图的子集,其中包含与用户最相关的内容,如下拉组合框中的值。 |
有关详细信息,请参阅 UI 自动化树概述。
UI 自动化属性
UI 自动化规范定义了两种类型的属性:自动化元素属性和控件模式属性。 自动化元素属性适用于大多数控件,提供有关元素的基本信息,例如其名称。 控件模式属性适用于接下来介绍的控件模式。
与Microsoft活动辅助功能不同,每个 UI 自动化属性都由 GUID 和编程名称标识,这使得新属性更易于引入。
有关详细信息,请参阅 UI 自动化属性概述。
UI 自动化控件模式
控件模式描述自动化元素功能的特定方面。 例如,简单的“单击功能”控件(如按钮或超链接)应支持调用控件模式来表示“单击”作。
每个控件模式都是可能的 UI 特性和函数的规范表示形式。 UI 自动化的当前实现定义了 22 种控件模式。 Windows 自动化 API 还可以支持自定义控件模式。 与Microsoft活动辅助功能角色或状态属性不同,一个自动化元素可以支持多个 UI 自动化控件模式。
有关详细信息,请参阅 UI 自动化控件模式概述。
UI 自动化控件类型
控件类型是一个自动化元素属性,该属性指定元素所表示的已知控件。 目前,UI 自动化定义了 38 种控件类型,包括 Button、CheckBox、ComboBox、DataGrid、Document、Hyperlink、Image、ToolTip、Tree 和 Window。
在向元素分配控件类型之前,该元素需要满足某些条件,包括特定的自动化树结构、属性值、控件模式和事件。 但是,你并不局限于这些。 可以使用自定义模式和属性以及预定义的模式和属性扩展控件。
预定义控件类型的总数明显低于Microsoft活动辅助功能 对象角色,因为 UI 自动化控件模式可以组合在一起来表达一组更大的功能,而Microsoft活动辅助功能角色则不能。
有关详细信息,请参阅 UI 自动化控件类型概述。
UI 自动化事件
UI 自动化事件通知应用程序对自动化元素所做的更改和执行的作。 有四种不同类型的 UI 自动化事件,它们不一定意味着 UI 的视觉状态已更改。 UI 自动化事件模型独立于 Windows 中的 WinEvent 框架,尽管 Windows 自动化 API 使 UI 自动化事件与 Microsoft Active Accessibility Framework 互作。
有关详细信息,请参阅 UI 自动化事件概述。