共用方式為


附錄 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 也會使用下列可用的控件模式:InvokeExpandCollapse,以及 Toggle。 例如,groupbox 控件沒有默認動作。 如果支援 ExpandCollapse,則 Active Accessibility Bridge 會針對預設動作使用該連結。

UI 自動化控制件類型 accRole 默認動作
按鈕 ROLE_SYSTEM_PUSHBUTTON
行事曆 ROLE_SYSTEM_CLIENT 沒有
CheckBox ROLE_SYSTEM_CHECKBUTTON 核取/取消核取 (切換)
ComboBox ROLE_SYSTEM_COMBOBOX 沒有
習慣 ROLE_SYSTEM_CLIENT 沒有
DataGrid ROLE_SYSTEM_LIST 沒有
DataItem ROLE_SYSTEM_LISTITEM 沒有
ROLE_SYSTEM_DOCUMENT 沒有
編輯 ROLE_SYSTEM_TEXT 沒有
群組 ROLE_SYSTEM_GROUPING 沒有
標頭 ROLE_SYSTEM_LIST 沒有
HeaderItem ROLE_SYSTEM_COLUMNHEADER 點擊
超連結 ROLE_SYSTEM_LINK 跳躍 (對應至叫用)
映像 ROLE_SYSTEM_GRAPHIC 沒有
清單 ROLE_SYSTEM_LIST 沒有
ListItem ROLE_SYSTEM_LISTITEM 按兩下
功能表 ROLE_SYSTEM_MENUPOPUP 沒有
MenuBar ROLE_SYSTEM_MENUBAR 沒有
MenuItem ROLE_SYSTEM_MENUITEM 針對具有子系的功能表項執行或開啟/關閉。
窗格 ROLE_SYSTEM_PANE 沒有
ProgressBar ROLE_SYSTEM_PROGRESSBAR 沒有
RadioButton ROLE_SYSTEM_RADIOBUTTON 檢查
ScrollBar ROLE_SYSTEM_SCROLLBAR 沒有
滑桿 ROLE_SYSTEM_SLIDER 沒有
微調器 ROLE_SYSTEM_SPINBUTTON 沒有
SplitButton ROLE_SYSTEM_SPLITBUTTON 沒有
StatusBar ROLE_SYSTEM_STATUSBAR 沒有
索引標籤 ROLE_SYSTEM_PAGETABLIST 沒有
TabItem ROLE_SYSTEM_PAGETAB 開關
數據表 ROLE_SYSTEM_TABLE 沒有
文字 ROLE_SYSTEM_STATICTEXT 沒有
Thumb ROLE_SYSTEM_INDICATOR 沒有
TitleBar ROLE_SYSTEM_TITLEBAR 沒有
ToolBar ROLE_SYSTEM_TOOLBAR 沒有
工具提示 ROLE_SYSTEM_TOOLTIP 沒有
樹狀結構 ROLE_SYSTEM_OUTLINE 沒有
TreeItem ROLE_SYSTEM_OUTLINEITEM 展開或折疊
視窗 ROLE_SYSTEM_WINDOW 沒有

 

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

 

事件

System-Level 事件常數 UI 自動化
EVENT_SYSTEM_MENUPOPUPSTART UIA_MenuOpenedEventId (注意:必須檢查這是否為彈出視窗。
EVENT_SYSTEM_MENUPOPUPEND UIA_MenuClosedEventId
EVENT_SYSTEM_MENUSTART UIA_MenuModeStartEventId
EVENT_SYSTEM_MENUEND UIA_MenuModeEndEventId
EVENT_SYSTEM_SOUND
EVENT_SYSTEM_ALERT
EVENT_SYSTEM_CAPTURESTART
EVENT_SYSTEM_CAPTUREEND
EVENT_SYSTEM_DIALOGSTART
EVENT_SYSTEM_DIALOGEND
EVENT_SYSTEM_MOVESIZESTART
EVENT_SYSTEM_MOVESIZEEND
EVENT_SYSTEM_CONTEXTHELPSTART
EVENT_SYSTEM_CONTEXTHELPEND 不相關
EVENT_SYSTEM_DRAGDROPSTART
EVENT_SYSTEM_DRAGDROPEND
EVENT_SYSTEM_SWITCHSTART 不相關
EVENT_SYSTEM_SWITCHEND 不相關
EVENT_SYSTEM_MINIMIZESTART
EVENT_SYSTEM_MINIMIZEEND
EVENT_SYSTEM_FOREGROUND
EVENT_SYSTEM_SCROLLINGSTART 無法使用
EVENT_SYSTEM_SCROLLINGEND 無法使用

 

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 數據表