다음을 통해 공유


부록 G: UI 자동화 활성 접근성 브리지

이 부록에는 Microsoft Active Accessibility Bridge에 대한 정보가 포함되어 있습니다. Active Accessibility Bridge를 사용하면 Microsoft Active Accessibility를 구현하는 애플리케이션이 Microsoft UI 자동화 구현하는 애플리케이션에 액세스할 수 있습니다. Microsoft Active Accessibility와 UI 자동화 함께 연결하여 Windows XP의 화면 읽기와 같은 Microsoft Active Accessibility 기반 클라이언트는 Windows Presentation Foundation(WPF) 애플리케이션과 같은 UI 자동화 UI 자동화 기반 공급자와 프로그래밍 방식으로 상호 작용할 수 있습니다. UI 자동화 네이티브 코어 API(UIAutomationCore.dll)의 일부입니다.

활성 접근성 브리지는 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; 컨트롤 패턴 또는 RangeValue 컨트롤 패턴 컨트롤 패턴을 지원하는 컨트롤 형식에서 지원됩니다. RangeValue 값은 Microsoft 활성 접근성 동작(0~100)과 일치합니다. 값 항목은 문자열을 사용합니다.
put_accValue ValueProperty; 컨트롤 패턴 또는 RangeValue 컨트롤 패턴을 지원하는 컨트롤 형식에서 지원됩니다.
get_accHelp HelpTextProperty
get_accDescription 구현되지 않음
get_accHelpTopic 구현되지 않음

 

컨트롤 형식 및 accRole

Microsoft Active Accessibility 기본 역할은 ROLE_SYSTEM_CLIENT. 컨트롤 형식에 대한 기본 작업을 찾을 수 없는 경우 활성 접근성 브리지는 Invoke, ExpandCollapseToggle과 같은 사용 가능한 컨트롤 패턴도 사용합니다. 예를 들어 groupbox 컨트롤에는 기본 작업이 없습니다. ExpandCollapse를 지원하는 경우 활성 접근성 브리지는 이를 기본 작업에 사용합니다.

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 없음
Document 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 없음
Spinner ROLE_SYSTEM_SPINBUTTON 없음
SplitButton ROLE_SYSTEM_SPLITBUTTON 없음
StatusBar ROLE_SYSTEM_STATUSBAR 없음
Tab ROLE_SYSTEM_PAGETABLIST 없음
TabItem ROLE_SYSTEM_PAGETAB 스위치
테이블 ROLE_SYSTEM_TABLE 없음
Text ROLE_SYSTEM_STATICTEXT 없음
Thumb ROLE_SYSTEM_INDICATOR 없음
제목 표시줄 ROLE_SYSTEM_TITLEBAR 없음
툴바 ROLE_SYSTEM_TOOLBAR 없음
ToolTip 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를 사용합니다. Yes
STATE_SYSTEM_FOCUSABLE IsKeyboardFocusableProperty No
STATE_SYSTEM_FOCUSED HasKeyboardFocusProperty No
STATE_SYSTEM_PROTECTED IsPasswordProperty No
STATE_SYSTEM_READONLY IsReadOnlyProperty(값 컨트롤 패턴 및 RangeValue 컨트롤 패턴) No
STATE_SYSTEM_UNAVAILABLE IsEnabledProperty Yes
STATE_SYSTEM_LINKED ControlTypeProperty = "하이퍼링크" No
STATE_SYSTEM_SELECTABLE SelectionItemPattern이 지원됩니다. No
STATE_SYSTEM_SELECTED IsSelectedProperty(SelectionItem 컨트롤 패턴) No
STATE_SYSTEM_COLLAPSED ExpandCollapseState = Collapsed Yes
STATE_SYSTEM_EXPANDED ExpandCollapseState = Expanded 또는 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 자세한 내용은 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 테이블을 참조하세요.