Export (0) Print
Expand All

Appendix G: Active Accessibility Bridge to UI Automation

This appendix contains information about the Microsoft Active Accessibility Bridge. The Active Accessibility Bridge enables applications that implement Microsoft Active Accessibility to access applications that implement Microsoft UI Automation. By bridging Microsoft Active Accessibility and UI Automation together, Microsoft Active Accessibility-based clients, such as a screenreader on Windows XP, can programmatically interact with UI Automation-based providers of UI Automation, such as a Windows Presentation Foundation (WPF) application. It is part of the UI Automation Native Core API (UIAutomationCore.dll).

The Active Accessibility Bridge maps UI Automation properties and events to those of Microsoft Active Accessibility. The following tables map the Microsoft Active Accessibility IAccessible interface methods and properties to UI Automation. Use these tables to determine appropriate coding practices for developing your Microsoft Active Accessibility-based client.

Navigation and Hierarchy Properties

IAccessible propertyUI Automation property
get_accChild Not implemented
get_accChildCount Derived from UI Automation tree
get_accParent Derived from UI Automation tree
accNavigate Not implemented

 

Descriptive Properties and Methods

IAccessibleUI Automation
accDoDefaultAction See the Control Types and accRole table for details.
get_accDefaultAction See the Control Types and accRole table for details.
get_accKeyboardShortcut AccessKeyPropertyor AcceleratorKeyProperty; if both present, AccessKeyProperty takes precedence.
get_accName NameProperty
get_accRole ControlTypeProperty. See the Control Types and accRole table for details.
get_accState See the Control Types and accRole table for details.
get_accValue ValueProperty; supported on control types that support the Value control pattern or RangeValue control pattern control pattern. RangeValue values are consistent with Microsoft Active Accessibility behavior (0 to 100). Value items use a string.
put_accValue ValueProperty; supported on control types that support the Value control pattern or RangeValue control pattern
get_accHelp HelpTextProperty
get_accDescription Not implemented
get_accHelpTopic Not implemented

 

Control Types and accRole

The Microsoft Active Accessibility default role is ROLE_SYSTEM_CLIENT. If no default action is found for a control type, the Active Accessibility Bridge will also use the following available control patterns: Invoke, ExpandCollapse, and Toggle. For example, a groupbox control has no default action. If it supports ExpandCollapse, then the Active Accessibility Bridge will use that for the default action.

UI Automation control typeaccRoleDefault action
Button ROLE_SYSTEM_PUSHBUTTONPress
Calendar ROLE_SYSTEM_CLIENTNone
CheckBox ROLE_SYSTEM_CHECKBUTTONCheck/Uncheck (toggle)
ComboBox ROLE_SYSTEM_COMBOBOXNone
CustomROLE_SYSTEM_CLIENTNone
DataGrid ROLE_SYSTEM_LISTNone
DataItem ROLE_SYSTEM_LISTITEMNone
Document ROLE_SYSTEM_DOCUMENTNone
Edit ROLE_SYSTEM_TEXTNone
Group ROLE_SYSTEM_GROUPINGNone
Header ROLE_SYSTEM_LISTNone
HeaderItem ROLE_SYSTEM_COLUMNHEADERClick
Hyperlink ROLE_SYSTEM_LINKJump (maps to Invoke)
Image ROLE_SYSTEM_GRAPHICNone
List ROLE_SYSTEM_LISTNone
ListItem ROLE_SYSTEM_LISTITEMDouble click
Menu ROLE_SYSTEM_MENUPOPUPNone
MenuBar ROLE_SYSTEM_MENUBARNone
MenuItem ROLE_SYSTEM_MENUITEMExecute or Open/Close for menu items that have children.
Pane ROLE_SYSTEM_PANENone
ProgressBar ROLE_SYSTEM_PROGRESSBARNone
RadioButton ROLE_SYSTEM_RADIOBUTTONCheck
ScrollBar ROLE_SYSTEM_SCROLLBARNone
Slider ROLE_SYSTEM_SLIDERNone
Spinner ROLE_SYSTEM_SPINBUTTONNone
SplitButton ROLE_SYSTEM_SPLITBUTTONNone
StatusBar ROLE_SYSTEM_STATUSBARNone
Tab ROLE_SYSTEM_PAGETABLISTNone
TabItem ROLE_SYSTEM_PAGETABSwitch
Table ROLE_SYSTEM_TABLENone
Text ROLE_SYSTEM_STATICTEXTNone
Thumb ROLE_SYSTEM_INDICATORNone
TitleBar ROLE_SYSTEM_TITLEBARNone
ToolBar ROLE_SYSTEM_TOOLBARNone
ToolTip ROLE_SYSTEM_TOOLTIPNone
Tree ROLE_SYSTEM_OUTLINENone
TreeItem ROLE_SYSTEM_OUTLINEITEMExpand or Collapse
Window ROLE_SYSTEM_WINDOWNone

 

UI Automation Properties and accState

accStateUI Automation propertyTriggers state change
STATE_SYSTEM_CHECKEDFor ControlType = "checkbox" use ToggleState.On. For "radiobutton" use SelectionItemPattern::IsSelected Yes
STATE_SYSTEM_FOCUSABLEIsKeyboardFocusableProperty No
STATE_SYSTEM_FOCUSEDHasKeyboardFocusPropertyNo
STATE_SYSTEM_PROTECTEDIsPasswordPropertyNo
STATE_SYSTEM_READONLYIsReadOnlyProperty (Value control pattern and RangeValue control pattern)No
STATE_SYSTEM_UNAVAILABLEIsEnabledPropertyYes
STATE_SYSTEM_LINKEDControlTypeProperty = "hyperlink"No
STATE_SYSTEM_SELECTABLESelectionItemPattern is supportedNo
STATE_SYSTEM_SELECTEDIsSelectedProperty (SelectionItem control pattern)No
STATE_SYSTEM_COLLAPSEDExpandCollapseState = CollapsedYes
STATE_SYSTEM_EXPANDEDExpandCollapseState = Expanded or PartiallyExpandedYes
STATE_SYSTEM_HASPOPUPMenu items that support Expand/CollapseNo
STATE_SYSTEM_MIXEDToggleState = IndeterminateNo
STATE_SYSTEM_SIZEABLE IUIAutomationTransformPattern::CanResize No
STATE_SYSTEM_MOVEABLE IUIAutomationTransformPattern::CanMove No
STATE_SYSTEM_MULTISELECTABLE IUIAutomationSelectionPattern::CanSelectMultiple No

 

Selection and Focus

IAccessibleUI Automation
get_accFocus IUIAutomation::FocusedElement
accSelect See the UI Automation Properties and accSelect SELFLAGs table for details.
get_accSelection SelectionPattern::GetSelection

 

UI Automation Properties and accSelect SELFLAGs

accSelect SELFLAGsUI Automation property
SELFLAG_NONENot available
SELFLAG_TAKFOCUS IUIAutomationElement::SetFocus
SELFLAG_TAKESELECTION IUIAutomationSelectionItemPattern::Select
SELFLAG_ADDSELECTION IUIAutomationSelectionItemPattern::AddToSelection
SELFLAG_TAKEREMOVESELECTION IUIAutomationSelectionItemPattern::RemoveFromSelection
SELFLAG_EXTENDSELECTIONNot available

 

Spatial Mapping

IAccessibleUI Automation
accLocation BoundingRectangleProperty
accHitTest IRawElementProviderFragmentRoot::ElementProviderFromPoint

 

Events

System-Level Event ConstantsUI Automation
EVENT_SYSTEM_MENUPOPUPSTARTUIA_MenuOpenedEventId (Note: Must check if this is a pop-up window.)
EVENT_SYSTEM_MENUPOPUPENDUIA_MenuClosedEventId
EVENT_SYSTEM_MENUSTARTUIA_MenuModeStartEventId
EVENT_SYSTEM_MENUENDUIA_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_CONTEXTHELPENDNot relevant
EVENT_SYSTEM_DRAGDROPSTART
EVENT_SYSTEM_DRAGDROPEND
EVENT_SYSTEM_SWITCHSTARTNot relevant
EVENT_SYSTEM_SWITCHENDNot relevant
EVENT_SYSTEM_MINIMIZESTART
EVENT_SYSTEM_MINIMIZEEND
EVENT_SYSTEM_FOREGROUND
EVENT_SYSTEM_SCROLLINGSTARTNot available
EVENT_SYSTEM_SCROLLINGENDNot available

 

Object-Level Event ConstantsUI Automation
EVENT_OBJECT_FOCUSAutomationFocusChangedEvent
EVENT_OBJECT_VALUECHANGEValueProperty (Value control pattern and RangeValue control pattern)
EVENT_OBJECT_SELECTIONElementSelectedEvent (SelectionItem control pattern)
EVENT_OBJECT_SELECTIONADDElementAddedToSelectionEvent (SelectionItem control pattern)
EVENT_OBJECT_SELECTIONREMOVEElementRemovedFromSelectionEvent
EVENT_OBJECT_SELECTIONWITHINEventsSelectionInvalidatedEvent
EVENT_OBJECT_STATECHANGESee UI Automation Properties and accState table for states that trigger a state change

 

 

 

Community Additions

ADD
Show:
© 2014 Microsoft