附錄 G:消費者介面自動化的作用中協助工具橋接器
本附錄包含 Microsoft Active Accessibility Bridge 的相關資訊。 Active Accessibility Bridge 可讓實作 Microsoft Active Accessibility 的應用程式存取實作 Microsoft 消費者介面自動化的應用程式。 藉由將 Microsoft Active Accessibility 和 消費者介面自動化橋接在一起,Microsoft Active Accessibility 型用戶端,例如 Windows XP 上的 screenreader,可以程式設計方式與消費者介面自動化消費者介面自動化型提供者互動,例如Windows Presentation Foundation (WPF) 應用程式。 它是 消費者介面自動化 Native Core API (UIAutomationCore.dll) 的一部分。
Active Accessibility Bridge 會將消費者介面自動化屬性和事件對應至 Microsoft Active Accessibility 的屬性和事件。 下表會將 Microsoft Active Accessibility IAccessible介面方法和屬性對應至消費者介面自動化。 使用這些資料表來判斷開發 Microsoft Active Accessibility 型用戶端的適當程式碼撰寫做法。
導覽和階層屬性
IAccessible 屬性 | UI 自動化屬性 |
---|---|
get_accChild | 未實作 |
get_accChildCount | 衍生自消費者介面自動化樹狀結構 |
get_accParent | 衍生自消費者介面自動化樹狀結構 |
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 會將它用於預設動作。
消費者介面自動化屬性和 accState
accState | UI 自動化屬性 | 觸發程式狀態變更 |
---|---|---|
STATE_SYSTEM_CHECKED | 針對 ControlType = 「checkbox」,請使用 ToggleState.On。 若為 「radiobutton」,請使用SelectionItemPattern::IsSelected | Yes |
STATE_SYSTEM_FOCUSABLE | IsKeyboardFocusableProperty | No |
STATE_SYSTEM_FOCUSED | HasKeyboardFocusProperty | No |
STATE_SYSTEM_PROTECTED | IsPasswordProperty | No |
STATE_SYSTEM_READONLY | IsReadOnlyProperty (Value 控制項模式和 RangeValue 控制項模式) | No |
STATE_SYSTEM_UNAVAILABLE | IsEnabledProperty | Yes |
STATE_SYSTEM_LINKED | ControlTypeProperty = 「hyperlink」 | No |
STATE_SYSTEM_SELECTABLE | 支援 SelectionItemPattern | No |
STATE_SYSTEM_SELECTED | IsSelectedProperty (SelectionItem 控制項模式) | No |
STATE_SYSTEM_COLLAPSED | ExpandCollapseState = Collapsed | Yes |
STATE_SYSTEM_EXPANDED | ExpandCollapseState = Expand 或 PartiallyExpanded | Yes |
STATE_SYSTEM_HASPOPUP | 支援展開/折迭的功能表項目 | No |
STATE_SYSTEM_MIXED | ToggleState = 不確定 | No |
STATE_SYSTEM_SIZEABLE | IUIAutomationTransformPattern::CanResize | No |
STATE_SYSTEM_MOVEABLE | IUIAutomationTransformPattern::CanMove | No |
STATE_SYSTEM_MULTISELECTABLE | IUIAutomationSelectionPattern::CanSelectMultiple | No |
選取範圍和焦點
IAccessible | UI 自動化 |
---|---|
get_accFocus | IUIAutomation::FocusedElement |
accSelect | 如需詳細資訊,請參閱 消費者介面自動化 Properties and accSelect SELFLAG 資料表。 |
get_accSelection | SelectionPattern::GetSelection |
消費者介面自動化屬性和 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 | 如需觸發狀態變更的狀態,請參閱消費者介面自動化 Properties 和 accState 資料表 |