适用于 W3C 可访问的富 Internet 应用程序规范的UI 自动化
网站通过异步 JavaScript 和 XML (AJAX) 、DHTML 和 JavaScript 等技术支持的动态内容和高级 UI 控件提高其实用工具。 但是,辅助技术通常无法与这些复杂的控件交互或向用户公开动态内容。 可访问的富 Internet 应用程序 (ARIA) 是一个 W3C 技术规范,用于开发 Web 内容和应用程序,以便残障人士可以访问它们。
为了支持 ARIA 规范,Microsoft UI 自动化 规范使开发人员能够将 UI 自动化 AriaRole 和 AriaProperties 属性与 W3C ARIA 角色和状态或属性相关联。 这有助于用户应用程序(如 Microsoft Internet Explorer)在UI 自动化上下文中支持 ARIA 对象模型,同时保留基线辅助功能对象模型。
本附录利用两个新的 UI 自动化 属性,提供将 W3C 信息映射到 Microsoft Active Accessibility 和 UI 自动化 规范的建议。
本主题包含以下各节:
- 映射到 Microsoft Active Accessibility 和 UI 自动化 的 W3C ARIA 角色
- 映射到 Microsoft Active Accessibility 和 UI 自动化 的 W3C ARIA 状态和属性
- 其他注意事项
映射到 Microsoft Active Accessibility 和 UI 自动化 的 W3C ARIA 角色
W3C ARIA 角色可以映射到 Microsoft Active Accessibility 角色或UI 自动化控件类型。 使用 UI 自动化,AriaRole 属性可能也支持原始 W3C ARIA 角色。 用户代理可以使用 UI 自动化 LocalizedControlType 属性提供 W3C ARIA 角色的本地化说明;但是,这是可选的。 如果未指定本地化字符串,系统将提供默认的 LocalizedControlType 字符串。 根据 ARIA W3C 标准中的定义,用户代理还可以通过使用空间作为分隔符,在 AriaRole 属性中提供辅助角色。
映射到 Microsoft Active Accessibility 和 UI 自动化 的 W3C ARIA 状态和属性
W3C ARIA 状态和属性映射到各种 Microsoft Active Accessibility,UI 自动化属性和函数。 UI 自动化 AriaProperties 属性支持大多数 ARIA 状态和属性。 例外情况是采用对象引用的 ARIA 属性 (例如,由 ARIA 属性) 描述,以及辅助功能对象模型支持的 ARIA 属性。 例如,ARIA activedescendent 属性应表示为辅助功能对象模型中具有焦点的元素。 指定 ARIA owns 属性时,还应反映在辅助功能对象模型中。
AriaProperties 是一个字符串属性,其中包含名称/值对集合,其分隔符为等号 (=) ,分号为 (;) ,例如“checked=true;disabled=false”。 当这些分隔符或反斜杠出现在值中时,反斜杠 (\) 用作转义。 提供程序代码可以添加验证以验证文档对象模型中的原始 ARIA 属性,但这不是必需的。
W3C ARIA 状态和属性 | Microsoft Active Accessibility 属性 | UI 自动化属性 | UI 自动化 AriaProperties 属性 |
---|---|---|---|
activedescendent | STATE_SYSTEM_FOCUSED (accState) | HasKeyboardFocus (指定用于接收焦点的子元素的属性) | 不适用 |
原子 (atomic) | 不适用 | 不适用 | 原子 (atomic) |
忙碌 | STATE_SYSTEM_BUSY (accState) | 不适用 | 忙碌 |
channel | 不适用 | 不适用 | channel |
checked | STATE_SYSTEM_CHECKED (accState) | ToggleState (切换 控件模式) | checked |
controls | 不适用 | ControllerFor | 不适用 |
describedby | 不适用 | DescribedBy | 不适用 |
disabled | STATE_SYSTEM_UNAVAILABLE (accState) | IsEnabled | disabled |
dropeffect | 不适用 | 不适用 | dropeffect |
expanded | STATE_SYSTEM_COLLAPSED 或 STATE_SYSTEM_EXPANDED (accState) | ExpandCollapseState (ExpandCollapse 控件模式) | expanded |
flowto | 不适用 | FlowTo | 不适用 |
抓住 | 不适用 | 不适用 | 抓住 |
haspopup | STATE_SYSTEM_HASPOPUP (accState) | 不适用 | haspopup |
隐藏 | STATE_SYSTEM_INVISIBLE (accState) | IsOffscreen | 隐藏 |
无效 | 不适用 | IsDataValidForForm | 无效 |
labelledby | 不适用 | LabeledBy | 不适用 |
级别 | accValue | 由自动化元素树结构表示的 n/a () | 级别 |
live | 不适用 | 不适用 | live |
多行 | 不适用 | 文档 控件类型 | 多行 |
multiselectable | STATE_SYSTEM_EXTSELECTABLE (accState) | CanSelectMultiple (Selection 控件模式) | multiselectable |
拥有 | n/a (应反映在可访问的对象树) | n/a (应反映在自动化元素树) | 不适用 |
Posinset | n/a (在可访问对象树结构中表示或由 childId) | 在自动化元素树结构中表示的 n/a () | posinset |
压 | STATE_SYSTEM_PRESSED | ToggleState (切换 控件模式) | 压 |
readonly | STATE_SYSTEM_READONLY | IsReadOnly | readonly |
相关 | 不适用 | 不适用 | 相关 |
必需 | 不适用 | IsRequiredForForm | 必需 |
secret | STATE_SYSTEM_PROTECTED | IsPassword | secret |
已选定 | STATE_SYSTEM_SELECTED | IsSelected (SelectionItem 控件模式) | 已选定 |
setsize | 不适用 | 自动化元素树结构中的 n/a (子计数) | setsize |
sort | 不适用 | 不适用 | sort |
tabindex | STATE_SYSTEM_FOCUSABLE | IsKeyboardFocusable | tabindex |
valuemax | 不适用 | 最大 (RangeValue 控件模式) | valuemax |
valuemin | 不适用 | 最小 (RangeValue 控件模式) | valuemin |
valuenow | IAccessible::get_accValue | Value (RangeValue 控件模式) | valuenow |
valuetext |
IAccessible::get_accValue 注意:当同时设置 valuenow 和 valuetext ARIA 属性时,accValue 将保留 ARIA valuetext 属性中的数据。 |
值 (值 控件模式) 注意:当指定 valuetext 和 valuenow 时,RangeValue 和 Value 控件模式可与 UI 自动化 共存。 |
valuetext |
其他注意事项
UI 自动化还提供具有文本控件模式的简单文本对象模型,该模式支持在 Document 对象中嵌入对象。 这使用户代理和客户端应用程序能够将 Web 内容视为 HTML 文档或传统桌面 UI,具体取决于最终用户方案。