附錄 G:使用者介面自動化的作用中輔助功能網橋
本附錄包含 Microsoft Active Accessibility Bridge 的相關信息。 Active Accessibility Bridge 可讓實作 Microsoft Active Accessibility 的應用程式存取實作 Microsoft UI 自動化的應用程式。 藉由將 Microsoft Active Accessibility 和 UI Automation 橋接在一起,Microsoft Windows XP 上以螢幕助讀程式之類的 Active Accessibility 型用戶端,可以程序設計方式與 UI 自動化的 UI 自動化提供者互動,例如 Windows Presentation Foundation (WPF) 應用程式。 它是UI自動化原生核心 API 的一部分(UIAutomationCore.dll)。
Active Accessibility Bridge 會將 UI 自動化屬性和事件對應至Microsoft Active Accessibility。 下表會將 Microsoft Active Accessibility IAccessible 介面方法和屬性對應至 UI 自動化。 使用這些數據表來判斷開發Microsoft Active Accessibility 型客戶端的適當編碼作法。
導覽和階層屬性
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 Active Accessibility 行為 (0 到 100) 一致。 值專案使用字串。 |
put_accValue | ValueProperty;支援 Value 控制項模式或 RangeValue 控制項模式的控制型態支援 |
get_accHelp | HelpTextProperty |
get_accDescription | 未實作 |
get_accHelpTopic | 未實作 |
控件類型和 accRole
Microsoft Active Accessibility 預設角色為 ROLE_SYSTEM_CLIENT。 如果找不到控件類型的預設動作,Active Accessibility Bridge 也會使用下列可用的控件模式:Invoke、ExpandCollapse,以及 Toggle。 例如,groupbox 控件沒有默認動作。 如果支援 ExpandCollapse,則 Active Accessibility Bridge 會針對預設動作使用該連結。
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 數據表 |