本附录包含有关Microsoft活动辅助功能桥的信息。 Active Accessibility Bridge 使实现Microsoft活动辅助功能的应用程序能够访问实现Microsoft UI 自动化的应用程序。 通过将Microsoft活动辅助功能和 UI 自动化桥接在一起,Microsoft基于活动的辅助功能客户端(例如 Windows XP 上的屏幕阅读器)可以编程方式与基于 UI 自动化的 UI 自动化提供程序(例如 Windows Presentation Foundation(WPF)应用程序)进行交互。 它是 UI 自动化 Native Core API(UIAutomationCore.dll)的一部分。
活动辅助功能桥将 UI 自动化属性和事件映射到Microsoft活动辅助功能的属性和事件。 下表将 Microsoft Active Accessibility IAccessible 接口方法和属性映射到 UI 自动化。 使用这些表来确定开发基于活动辅助功能的客户端Microsoft的相应编码做法。
导航和层次结构属性
| IAccessible 属性 | UI 自动化属性 |
|---|---|
| get_accChild | 未实现 |
| get_accChildCount | 派生自 UI 自动化树 |
| get_accParent | 派生自 UI 自动化树 |
| accNavigate | 未实现 |
描述性属性和方法
| IAccessible | UI 自动化 |
|---|---|
| accDoDefaultAction | 有关详细信息,请参阅控件类型和 accRole 表。 |
| get_accDefaultAction | 有关详细信息,请参阅控件类型和 accRole 表。 |
| get_accKeyboardShortcut | AccessKeyPropertyor AcceleratorKeyProperty;如果两者都存在,则 AccessKeyProperty 优先。 |
| get_accName | NameProperty |
| get_accRole | ControlTypeProperty。 有关详细信息,请参阅控件类型和 accRole 表。 |
| get_accState | 有关详细信息,请参阅控件类型和 accRole 表。 |
| get_accValue | ValueProperty;支持 Value 控件模式或 RangeValue 控件模式控件模式的控件类型支持。 RangeValue 值与Microsoft活动辅助功能行为(0 到 100)一致。 值项使用字符串。 |
| put_accValue | ValueProperty;支持 Value 控件模式或 RangeValue 控件模式的控件类型支持 |
| get_accHelp | HelpTextProperty |
| get_accDescription | 未实现 |
| get_accHelpTopic | 未实现 |
控件类型和 accRole
Microsoft活动辅助功能默认角色 ROLE_SYSTEM_CLIENT。 如果未找到控件类型的默认作,活动辅助功能桥还将使用以下可用的控件模式:Invoke、ExpandCollapse,以及 Toggle。 例如,组框控件没有默认作。 如果它支持 ExpandCollapse,则活动辅助功能桥将使用该桥进行默认作。
UI 自动化属性和 accState
| accState | UI 自动化属性 | 触发器状态更改 |
|---|---|---|
| STATE_SYSTEM_CHECKED | 对于 ControlType = “checkbox”,请使用 ToggleState.On。 对于“radiobutton”,请使用 SelectionItemPattern::IsSelected | 是的 |
| STATE_SYSTEM_FOCUSABLE | IsKeyboardFocusableProperty | 不 |
| STATE_SYSTEM_FOCUSED | HasKeyboardFocusProperty | 不 |
| STATE_SYSTEM_PROTECTED | IsPasswordProperty | 不 |
| STATE_SYSTEM_READONLY | IsReadOnlyProperty (值控件模式和 RangeValue 控件模式) | 不 |
| STATE_SYSTEM_UNAVAILABLE | IsEnabledProperty | 是的 |
| STATE_SYSTEM_LINKED | ControlTypeProperty = “hyperlink” | 不 |
| STATE_SYSTEM_SELECTABLE | 支持 SelectionItemPattern | 不 |
| STATE_SYSTEM_SELECTED | IsSelectedProperty (SelectionItem 控件模式) | 不 |
| STATE_SYSTEM_COLLAPSED | ExpandCollapseState = Collapsed | 是的 |
| STATE_SYSTEM_EXPANDED | ExpandCollapseState = Expand 或 PartiallyExpanded | 是的 |
| STATE_SYSTEM_HASPOPUP | 支持展开/折叠的菜单项 | 不 |
| STATE_SYSTEM_MIXED | ToggleState = 不确定 | 不 |
| STATE_SYSTEM_SIZEABLE | IUIAutomationTransformPattern::CanResize | 不 |
| STATE_SYSTEM_MOVEABLE | IUIAutomationTransformPattern::CanMove | 不 |
| STATE_SYSTEM_MULTISELECTABLE | IUIAutomationSelectionPattern::CanSelectMultiple | 不 |
选择和焦点
| IAccessible | UI 自动化 |
|---|---|
| get_accFocus | IUIAutomation::FocusedElement |
| accSelect | 有关详细信息,请参阅 UI 自动化属性和 accSelect SELFLAG 表。 |
| get_accSelection | SelectionPattern::GetSelection |
UI 自动化属性和 accSelect SELFLAG
| accSelect SELFLAG | UI 自动化属性 |
|---|---|
| SELFLAG_NONE | 不可用 |
| SELFLAG_TAKFOCUS | IUIAutomationElement::SetFocus |
| SELFLAG_TAKESELECTION | IUIAutomationSelectionItemPattern::Select |
| SELFLAG_ADDSELECTION | IUIAutomationSelectionItemPattern::AddToSelection |
| SELFLAG_TAKEREMOVESELECTION | IUIAutomationSelectionItemPattern::RemoveFromSelection |
| SELFLAG_EXTENDSELECTION | 不可用 |
空间映射
| IAccessible | UI 自动化 |
|---|---|
| accLocation | BoundingRectangleProperty |
| accHitTest | IRawElementProviderFragmentRoot::ElementProviderFromPoint |
事件
| Object-Level 事件常量 | UI 自动化 |
|---|---|
| EVENT_OBJECT_FOCUS | AutomationFocusChangedEvent |
| EVENT_OBJECT_VALUECHANGE | ValueProperty (值控件模式和 RangeValue 控件模式) |
| EVENT_OBJECT_SELECTION | ElementSelectedEvent (SelectionItem 控件模式) |
| EVENT_OBJECT_SELECTIONADD | ElementAddedToSelectionEvent (SelectionItem 控件模式) |
| EVENT_OBJECT_SELECTIONREMOVE | ElementRemovedFromSelectionEvent |
| EVENT_OBJECT_SELECTIONWITHIN | EventsSelectionInvalidatedEvent |
| EVENT_OBJECT_STATECHANGE | 有关触发状态更改的状态,请参阅 UI 自动化属性和 accState 表 |