부록 G: UI 자동화에 대한 활성 접근성 브리지
이 부록에는 Microsoft Active Accessibility Bridge에 대한 정보가 포함되어 있습니다. 활성 접근성 브리지를 사용하면 Microsoft Active Accessibility를 구현하는 애플리케이션이 Microsoft UI 자동화를 구현하는 애플리케이션에 액세스할 수 있습니다. Microsoft Active Accessibility 및 UI Automation을 함께 연결하여 Windows XP의 화면 읽기와 같은 Microsoft Active Accessibility 기반 클라이언트는 WPF(Windows Presentation Foundation) 애플리케이션과 같은 UI 자동화 기반 공급자와 프로그래밍 방식으로 상호 작용할 수 있습니다. UI 자동화 Native Core 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; 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는 사용 가능한 컨트롤 패턴인 호출, ExpandCollapse및 토글사용합니다. 예를 들어 groupbox 컨트롤에는 기본 작업이 없습니다. ExpandCollapse를 지원하는 경우 활성 접근성 브리지는 이를 기본 작업에 사용합니다.
UI 자동화 속성 및 accState
accState | UI 자동화 속성 | 상태 변경을 트리거합니다. |
---|---|---|
STATE_SYSTEM_CHECKED | ControlType = "확인란"의 경우 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 = "하이퍼링크" | 아니요 |
STATE_SYSTEM_SELECTABLE | SelectionItemPattern이 지원됩니다. | 아니요 |
STATE_SYSTEM_SELECTED | IsSelectedProperty(SelectionItem 컨트롤 패턴) | 아니요 |
STATE_SYSTEM_COLLAPSED | ExpandCollapseState = Collapsed | 예 |
STATE_SYSTEM_EXPANDED | ExpandCollapseState = Expanded 또는 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 테이블을 참조하세요. |