IAccessibleEx 구현 지침
Microsoft UI 자동화 코어는 IAccessible 인터페이스를 통해 서버에서 노출하는 액세스 가능한 개체에 대한 모든 Microsoft Active Accessibility 속성을 검색할 수 있습니다. IAccessibleEx를 구현할 때 기존 Microsoft Active Accessibility 속성을 통해 노출할 수 없는 UI 기능의 측면만 노출해야 합니다. 이 항목에서는 Microsoft Active Accessibility에 해당 항목이 없는 UI 기능을 나타내는 UI 자동화 속성 및 컨트롤 패턴을 식별합니다. IAccessibleEx 구현에서 노출할 수 있는 속성 및 컨트롤 패턴입니다.
이 항목에는 다음과 같은 섹션이 포함되어 있습니다.
속성
다음 UI 자동화 속성은 Microsoft Active Accessibility 기능과 겹치지 않습니다. IAccessibleEx 구현에서 사용할 수 있습니다.
- AriaProperties
- AriaRole
- AutomationId
- ClassName
- ClickablePoint
- ControllerFor
- 문화권
- DescribedBy
- FlowsTo
- FrameworkId
- IsContentElement
- IsControlElement
- IsDataValidForForm
- IsRequiredForForm
- ItemStatus
- ItemType
- LabeledBy
- LocalizedControlType
- 방향
AcceleratorKey 및 AccessKey UI 자동화 속성은 accKeyboardShortcut Microsoft Active Accessibility 속성과 겹치지만 액세스 키와 가속기가 모두 있는 컨트롤에 대해 IAccessibleEx 구현에서 사용할 수 있습니다. 마찬가지로 ControlType UI 자동화 속성은 Microsoft Active Accessibility accRole 속성과 겹치지만 IAccessibleEx 구현에서 컨트롤에 대한 보다 구체적인 역할을 정의할 수 있습니다.
다음 UI 자동화 요소 속성에는 이미 Microsoft Active Accessibility 속성이 포함되므로 IAccessibleEx 구현에서 사용할 필요가 없습니다.
UI 자동화 속성 | Microsoft Active Accessibility Equivalent |
---|---|
BoundingRectangle | accLocation |
HasKeyboardFocus | accState, STATE_SYSTEM_FOCUSED |
IsEnabled | accState, STATE_SYSTEM_UNAVAILABLE |
IsKeyboardFocusable | accState, STATE_SYSTEM_FOCUSABLE |
IsPassword | accState, STATE_SYSTEM_PROTECTED |
HelpText | accHelp |
속성 | accName |
NativeWindowHandle | WindowFromAccessibleObject |
IsOffscreen | accState, STATE_SYSTEM_INVISIBLE/STATE_SYSTEM_OFFSCREEN |
ProcessId | UI 자동화 코어에서 제공 |
지원되지 않는 UI 자동화 속성의 경우 IRawElementProviderSimple::GetPropertyValue 메서드의 구현은 pRetVal 매개 변수를 VT_EMPTY 설정하고 S_OK 반환해야 합니다. UIA_E_NOTSUPPORTED 반환하면 MSAA-UIA 프록시가 해당 속성에 대한 기본 매핑을 제거할 수 있습니다.
컨트롤 패턴
다음 UI 자동화 컨트롤 패턴은 Microsoft Active Accessibility 기능과 겹치지 않습니다. IAccessibleEx 구현에서 사용할 수 있습니다.
- Dock
- 확장/축소
- 그리드
- GridItem
- MultipleView
- RangeValue
- Scroll
- ScrollItem
- SynchronizedInput
- 테이블
- TableItem
- 변환
RangeValue 및 변환 컨트롤 패턴의 경우 일부 메서드는 UI 자동화 컨트롤 패턴과 Microsoft Active Accessibility 메서드 간에 겹칩니다. 이러한 경우 둘 다 구현되어야 합니다. 예를 들어 Microsoft Active Accessibility의 IAccessible::get_accValue 및 IAccessible::p ut_accValue 메서드는 모두 UI 자동화IRangeValueProvider::Value 및 IRangeValueProvider::SetValue 메서드와 마찬가지로 구현되어야 합니다. 내부적으로 구현은 이러한 코드에 대한 코드를 공유할 수 있습니다. 두 집합을 모두 구현하기 위한 이 요구 사항은 기존 Microsoft Active Accessibility 클라이언트에서 사용할 수 있는 IAccessible 인터페이스를 유지하면서 패턴 인터페이스의 부분 구현을 방지합니다.
컨트롤에 아래에 설명된 역할 중 하나가 있는 경우 다음 UI 자동화 컨트롤 패턴이 필요하지 않습니다. 그렇지 않으면 해당되는 경우 명시적으로 지원되어야 합니다.
UI 자동화 컨트롤 패턴 | Microsoft Active Accessibility 역할 |
---|---|
InvokePattern | ROLE_SYSTEM_PUSHBUTTON, ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_BUTTONDROPDOWN, ROLE_SYSTEM_SPLITBUTTON 및 accDefaultAction 속성 값이 NULL이 아닌 기타 역할입니다. |
SelectionItemPattern | ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_RADIOBUTTON |
SelectionPattern | ROLE_SYSTEM_LIST |
TogglePattern | ROLE_SYSTEM_CHECKBUTTON |
ValuePattern | accValue 속성 값이 NULL이 아닌 경우 ROLE_SYSTEM_TEXT(읽기 전용이 아닌 경우), ROLE_SYSTEM_PROGRESSBAR, ROLE_SYSTEM_COMBOBOX 및 기타 역할입니다. |
WindowPattern | 최상위 Microsoft Win32 HWND에서 자동으로 지원됩니다. |
UI 자동화 속성 변경 이벤트에 대한 WinEvents
IAccessible에 대해 정의된 이벤트 외에도 다음 이벤트 식별자도 정의되며 해당 UI 자동화 속성에 대한 속성 변경 이벤트로 IAccessibleEx 구현과 함께 사용할 수 있습니다. 이러한 메커니즘은 IAccessible에 대해 정의된 이벤트와 동일한 메커니즘을 사용합니다. 자세한 내용은 WinEvents를 참조하세요.
EVENT_OBJECT_ 값이 나열된 위의 이벤트의 경우 IAccessibleEx 구현은 나열된 변경된 이벤트 외에도 이 이벤트를 발생시켜야 합니다. 이렇게 하면 기존 IAccessibleEx 클라이언트 코드가 계속 작동하면서 관심 있는 클라이언트에 보다 세분화된 이벤트 정보를 전달할 수 있습니다.
관련 항목