다음을 통해 공유


UI 자동화 공급자 개요

Microsoft UI 자동화 공급자는 접근성 클라이언트 애플리케이션이 요소에 대한 정보를 검색하고 해당 기능을 호출할 수 있도록 애플리케이션 UI의 요소를 노출하는 소프트웨어 개체입니다. 일반적으로 UI의 각 컨트롤 또는 다른 고유 요소에는 공급자가 있습니다.

Microsoft에는 WPF(Microsoft Win32, Windows Forms 및 Windows Presentation Foundation)와 함께 제공되는 각 표준 컨트롤에 대한 공급자가 포함되어 있습니다. 즉, 표준 컨트롤이 UI 자동화 클라이언트에 자동으로 노출되므로 표준 컨트롤에 대한 접근성 인터페이스를 구현할 필요가 없습니다.

애플리케이션에 사용자 지정 컨트롤이 포함된 경우 해당 컨트롤에 대한 UI 자동화 공급자를 구현하여 접근성 클라이언트 애플리케이션에서 액세스할 수 있도록 해야 합니다. 공급자를 포함하지 않는 타사 컨트롤에 대한 공급자도 구현해야 합니다. UI 자동화 공급자 인터페이스 및 컨트롤 패턴 인터페이스를 구현하여 공급자를 구현합니다.

이 항목에서는 컨트롤 개발자가 UI 자동화 공급자를 구현하는 방법에 대한 개요를 제공합니다. 여기에는 다음 단원이 포함됩니다.

공급자 형식입니다.

UI 자동화 공급자는 서버 쪽 공급자와 클라이언트 쪽(또는 프록시) 공급자의 두 가지 범주로 구분됩니다.

서버 쪽 공급자는 관련 UI 자동화 공급자 인터페이스의 고유한 네이티브 구현을 포함하는 사용자 지정 컨트롤과 같은 개체입니다. 서버 쪽 공급자는 공급자 인터페이스의 구현을 클라이언트에서 요청하는 UI 자동화 코어에 노출하여 프로세스 경계를 넘어 클라이언트 애플리케이션과 통신합니다. 서버 쪽 공급자에 대한 자세한 내용은 Server-Side UI 자동화 공급자 구현을 참조하세요.

클라이언트 쪽 공급자 또는 프록시는 컨트롤을 대신하여 UI 자동화 공급자 인터페이스를 구현하는 개체로, 자체의 전체 공급자 구현을 포함하지 않습니다. 프록시가 없으면 이러한 컨트롤은 UI 자동화 대개 불투명합니다. 이 컨트롤은 컨트롤 위치와 같은 HWND(창 핸들)에서 사용할 수 있는 기본 정보만 제공할 수 있습니다. 일반적으로 프록시 공급자는 Windows 메시지를 보내고 받아 프로세스 경계를 넘어 애플리케이션과 통신합니다. 자세한 내용은 Client-Side(프록시) UI 자동화 공급자 구현을 참조하세요.

UI 자동화 공급자 개념

이 섹션에서는 UI 자동화 공급자를 구현하기 위해 이해해야 할 주요 개념 중 일부에 대해 간략하게 설명합니다.

요소

UI 자동화 요소는 UI 자동화 클라이언트에 표시되는 UI의 일부(일반적으로 창 또는 컨트롤)입니다. 애플리케이션 창, 창, 단추, 도구 설명, 목록 상자 및 목록 항목을 예로 들 수 있습니다.

UI 자동화 요소는 트리로 클라이언트에 노출됩니다. UI 자동화는 요소를 탐색하여 트리를 생성합니다. 각 요소에 대해 공급자가 탐색을 사용하도록 설정합니다. 각 요소는 자체 부모 요소, 해당 형제 요소 및 첫 번째 및 마지막 자식 요소를 가리킬 수 있습니다.

클라이언트는 다음 표에 설명된 대로 세 가지 주 뷰에서 UI 자동화 트리를 볼 수 있습니다.

보기 Description
Raw 뷰 모든 요소를 포함합니다.
컨트롤 뷰 컨트롤인 요소를 포함합니다.
콘텐츠 뷰 사용자에게 정보를 전달하는 컨트롤 요소를 포함합니다.

 

콘텐츠 요소 또는 컨트롤 요소로 요소를 정의하는 것은 공급자 구현에서 담당합니다. 컨트롤 요소가 콘텐츠 요소일 수도 있고 그렇지 않을 수도 있지만, 모든 콘텐츠 요소는 컨트롤 요소입니다.

트리의 클라이언트 보기에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하세요.

프레임워크

프레임워크는 화면 영역에서 하위 컨트롤, 적중 테스트, 렌더링을 관리하는 구성 요소입니다. 예를 들어 HWND라고도 하는 Win32 창은 메뉴 모음, 상태 막대 및 단추와 같은 여러 UI 자동화 요소가 포함된 프레임워크 역할을 할 수 있습니다.

목록 상자 및 트리 뷰 컨트롤과 같은 Win32 컨테이너 컨트롤은 자식 항목을 렌더링하고 적중 테스트를 수행하기 위한 자체 코드를 포함하기 때문에 프레임워크로 간주됩니다. 반면, 렌더링 및 적중 테스트가 포함된 창에서 처리되고 있기 때문에 WPF 목록 상자는 프레임워크가 아닙니다.

애플리케이션에서 UI는 다양한 프레임워크로 구성될 수 있습니다. 예를 들어 애플리케이션의 HWND 에는 DHTML(동적 HTML)이 포함될 수 있으며, 이 HTML에는 HWND의 콤보 상자와 같은 구성 요소가 포함될 수 있습니다.

조각

특정 프레임워크에서 요소의 전체 하위 트리를 조각이라고 합니다. 하위 트리의 루트 노드에 있는 요소를 조각 루트라고 합니다. 조각 루트에는 부모가 없지만 다른 프레임워크(일반적으로 Win32 창(HWND) 내에서 호스트됩니다.

호스트

모든 조각의 루트 노드는 일반적으로 Win32 창(HWND)인 요소에서 호스트되어야 합니다. 다른 요소에서 호스트되지 않는 데스크톱은 예외입니다. 사용자 지정 컨트롤의 호스트는 애플리케이션 창 또는 최상위 컨트롤 그룹을 포함할 수 있는 다른 창이 아니라 컨트롤 자체의 HWND 입니다.

조각의 호스트는 UI 자동화 서비스를 제공하는 중요한 역할을 합니다. 이 호스트를 통해 조각 루트를 탐색할 수 있으며, 몇 가지 기본 속성을 제공하므로 사용자 지정 공급자가 속성을 구현할 필요가 없습니다.

개념

Client-Side UI 자동화 공급자 구현

Server-Side UI 자동화 공급자 구현

UI 자동화 트리 개요