适用于 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 对象模型,同时保留基线辅助功能对象模型。
本附录提供了 W3C 信息的建议映射,以利用这两个新的 UI 自动化属性,将 W3C 信息映射到Microsoft活动辅助功能和 UI 自动化规范。
本主题包含以下部分:
- 映射到Microsoft活动辅助功能和 UI 自动化 的 W3C ARIA 角色
- 映射到Microsoft活动辅助功能和 UI 自动化 的 W3C ARIA 状态和属性
- 其他注意事项
映射到Microsoft活动辅助功能和 UI 自动化的 W3C ARIA 角色
W3C ARIA 角色可以映射到Microsoft活动辅助功能角色或 UI 自动化控件类型。 使用 UI 自动化时,AriaRole 属性可能也支持原始 W3C ARIA 角色。 用户代理可以使用 UI 自动化 LocalizedControlType 属性提供 W3C ARIA 角色的本地化说明;但是,这是可选的。 如果未指定本地化字符串,系统将提供默认的 LocalizedControlType 字符串。 用户代理还可以使用空格作为分隔符在 AriaRole 属性中提供辅助角色,如 ARIA W3C 标准中定义。
映射到Microsoft活动辅助功能和 UI 自动化的 W3C ARIA 状态和属性
W3C ARIA 状态和属性映射到各种Microsoft活动辅助功能和 UI 自动化属性和函数。 UI 自动化 AriaProperties 属性支持大多数 ARIA 状态和属性。 例外情况是采用对象引用的 ARIA 属性(例如,描述的 ARIA 属性)和辅助功能对象模型支持的 ARIA 属性。 例如,ARIA activedescendent 属性应表示为辅助功能对象模型中具有焦点的元素。 指定辅助功能对象模型时,ARIA 拥有的属性也应反映在辅助功能对象模型中。
AriaProperties 是一个字符串属性,该属性具有名称/值对的集合,其分隔符为等号(=)和分号(;),例如“checked=true;disabled=false”。 当这些分隔符或反斜杠出现在值中时,反斜杠 (\) 将用作转义符。 提供程序代码可以添加验证以验证文档对象模型中的原始 ARIA 属性,但不是必需的。
W3C ARIA 状态和属性 | Microsoft活动辅助功能属性 | UI 自动化属性 | UI 自动化 AriaProperties 属性 |
---|---|---|---|
activedescendent | STATE_SYSTEM_FOCUSED (accState) | HasKeyboardFocus(指定用于接收焦点的子元素的属性) | n/a |
原子 | n/a | n/a | 原子 |
忙 | STATE_SYSTEM_BUSY (accState) | n/a | 忙 |
渠道 | n/a | n/a | 渠道 |
检查 | STATE_SYSTEM_CHECKED (accState) | ToggleState (切换 控件模式) | 检查 |
控制 | n/a | ControllerFor | n/a |
describedby | n/a | DescribedBy | n/a |
禁用 | STATE_SYSTEM_UNAVAILABLE (accState) | IsEnabled | 禁用 |
dropeffect | n/a | n/a | dropeffect |
扩大 | STATE_SYSTEM_COLLAPSED 或 STATE_SYSTEM_EXPANDED (accState) | ExpandCollapseState (ExpandCollapse 控件模式) | 扩大 |
flowto | n/a | FlowTo | n/a |
抓 | n/a | n/a | 抓 |
haspopup | STATE_SYSTEM_HASPOPUP (accState) | n/a | haspopup |
隐藏 | STATE_SYSTEM_INVISIBLE (accState) | IsOffscreen | 隐藏 |
无效 | n/a | IsDataValidForForm | 无效 |
labelledby | n/a | LabeledBy | n/a |
水平 | accValue | n/a (由自动化元素树结构表示) | 水平 |
住 | n/a | n/a | 住 |
多行 | n/a | 文档 控件类型 | 多行 |
多选 | STATE_SYSTEM_EXTSELECTABLE (accState) | CanSelectMultiple (选择 控件模式) | 多选 |
拥有 | n/a (应反映在可访问的对象树中) | n/a (应反映在自动化元素树中) | n/a |
Posinset | n/a (在可访问的对象树结构或 childId 中表示) | n/a (在自动化元素树结构中表示) | posinset |
压 | STATE_SYSTEM_PRESSED | ToggleState (切换 控件模式) | 压 |
readonly | STATE_SYSTEM_READONLY | IsReadOnly | readonly |
相关 | n/a | n/a | 相关 |
必填 | n/a | IsRequiredForForm | 必填 |
秘密 | STATE_SYSTEM_PROTECTED | IsPassword | 秘密 |
选择 | STATE_SYSTEM_SELECTED | IsSelected (SelectionItem 控件模式) | 选择 |
setsize | n/a | n/a (自动化元素树结构中的子计数) | setsize |
排序 | n/a | n/a | 排序 |
tabindex | STATE_SYSTEM_FOCUSABLE | IsKeyboardFocusable | tabindex |
valuemax | n/a | 最大值(RangeValue 控件模式) | valuemax |
valuemin | n/a | 最小值(RangeValue 控件模式) | valuemin |
valuenow | IAccessible::get_accValue | 值(RangeValue 控件模式) | valuenow |
valuetext |
IAccessible::get_accValue 注意:设置 valuenow 和 valuetext ARIA 属性时,accValue 保存 ARIA valuetext 属性中的数据。 |
值(值 控件模式) 注意:指定 valuetext 和 valuenow 时,RangeValue 和 Value 控件模式可与 UI 自动化共存。 |
valuetext |
其他注意事项
UI 自动化还提供了一个简单的文本对象模型,其中包含 文本 控件模式,该模式支持在 Document 对象中嵌入对象。 这使用户代理和客户端应用程序能够根据最终用户方案将 Web 内容视为 HTML 文档或传统桌面 UI。