부록 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, ExpandCollapse 및 Toggle과 같은 사용 가능한 컨트롤 패턴도 사용합니다. 예를 들어 groupbox 컨트롤에는 기본 작업이 없습니다. ExpandCollapse를 지원하는 경우 활성 접근성 브리지는 이를 기본 작업에 사용합니다.
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 |
이벤트
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 테이블을 참조하세요. |