프로그래밍 기술/소프트웨어 접근성, UI 자동화

[S/W 접근성] UI 자동화 기술 개요

언제나휴일 2016. 4. 19. 09:17
반응형

2. UI 자동화

 

 Microsoft 사에서는 Windows 운영체제에서 동작하는 대부분의 UI(사용자 인터페이스) 요소를 프로그래밍 방식으로 액세스 할 수 있는 프레임워크를 제공하고 있습니다. 이를 Microsoft UI 자동화라 부르며 Micorsoft Windows의 새로운 내게 필요한 옵션 프레임워크입니다.

 

 UI 자동화 기술을 사용하면 데스크톱에 있는 UI 요소를 프로그래밍 방식으로 제어할 수 있고 다양한 정보를 사용자에게 제공할 수 있습니다. 따라서 키보드나 모니터 등의 표준 기술이 아닌 다른 장치 혹은 소프트웨어로 소프트웨어를 사용하기 위한 보조 기술을 개발할 때 표준 방식으로 만들 수 있습니다. 또한 특정 소프트웨어가 소프트웨어 접근성 가이드라인에 맞게 동작하는지 테스트하는 평가 도구를 개발할 때도 필요한 기술입니다.

 

2. 1 UI 자동화 기술 개요

 

 UI 자동화 기술은 공급자 API, 클라이언트 API, UI 자동화 핵심, UI 클라이언트 측 공급자 모듈로 구성하고 있습니다.

 

구성 요소

DLL

설명

공급자 API

UIAutomationProvider.dll

UIAutomationTypes.dll

UI 공급자에 의해 구현되는 인터페이스 집합

클라이언트 API

UIAutomationClient.dll

UIAutomationTypes.dll

UI 요소 정보를 가져오고 제어할 수 있게 제공하는 서비스 집합

UI 자동화 핵심

UIAutomationCore.dll

공급자와 클라이언트에서 사용하는 형식

UI 클라이언트 측 공급자

UIAutomationClientsideProvider.dll

표준 레거시 컨트롤에 대한 UI 자동화 공급자 집합

[ 2.1] UI 자동화 기술 구성 요소

 

 UI 자동화 기술은 두 가지 유형의 소프트웨어 개발자를 위한 형식들을 구성하고 있습니다. UI 요소를 포함하는 응용 프로그램 개발자를 위해 공급자 API를 제공하고 있고 보조 기술이나 평가 도구 개발자를 위해 클라이언트 API를 제공합니다.


2. 2 UI 요소

 

 UI 자동화 기술에서는 모든 UI 요소를 자동화 요소(AutomationElement) 개체로 표현합니다.

 

2.2.1 UI 자동화 속성

 

 UI 자동화 공급자는 UI 자동화 요소의 정보를 속성으로 제공합니다. 따라서 UI 자동화 클라이언트 응용에서는 UI 요소의 정보를 UI 자동화 속성을 통해 얻을 수 있습니다.

 

 UI 자동화 속성 중에는 UI 요소를 구분할 때 사용하는 속성을 제공하고 있는데 번호와 이름으로 식별합니다. 하지만 식별자로 사용하는 이름 속성은 디버깅이나 진단 용도로만 사용합니다.

 

2.2.2 UI 자동화 이벤트

 

 응용 프로그램이 동작에 따라 UI 자동화 요소의 변화를 감지하기 위해 UI 자동화 이벤트를 제공하고 있습니다. 보조 기술이나 소프트웨어 접근성 평가 도구를 개발할 때 UI 자동화 이벤트를 이용하여 응용 프로그램의 변화를 감지하여 최종 사용자에게 알릴 수 있습니다.

 

 UI 자동화 이벤트는 크게 속성이 변경될 때 버튼을 클릭하였을 때 UI 자동화 트리의 구조가 변경될 때 전역적인 이벤트 발생(포커스가 이동하거나 창이 닫힐 때)으로 구분하고 있습니다.

 

 이 외에도 사용자 권리 권한이 필요한 작업을 위해 UI 요소의 보안을 제공합니다.

 

 

2. 3 UI 자동화 트리

 

 보조 기술을 구현하거나 소프트웨어 접근성 평가도구를 개발할 때는 원하는 UI 요소를 기준으로 하위 UI 요소들의 정보를 수집하고 탐색할 수 있어야 합니다. 이를 위해 UI 자동화 기술에서는 UI 자동화 트리를 제공하고 있습니다.

 

 UI 자동화 트리는 루트 요소를 기준으로 자식 UI 요소들을 계층적으로 포함하고 있습니다. UI 자동화 트리는 프로세스의 수행에 따라 동적으로 변할 수 있습니다. UI 자동화 공급자는 일반적으로 창에서 호스팅하는 루트와 하위 트리로 구성하는 UI 요소 사이에 탐색을 구현하여 UI 자동화 트리를 지원합니다.

 

 UI 자동화 트리는 특정 클라이언트에 관한 자동화 요소 개체만 포함하는 뷰를 만들 수 있게 필터링을 제공합니다. 이를 통해 클라이언트가 UI 자동화 구조를 요구 사항에 맞게 지정할 수 있습니다.

 

 또한 UI 자동화 공급자는 컨트롤 요소의 속성과 컨텐츠 요소의 속성을 정의하고 있어서 요구 사항에 맞게 필터링할 수 있습니다.

 

 그리고 UI 자동화에서는 세 가지 형태의 기본 뷰를 제공하고 있습니다. 먼저 Raw 뷰는 전체 UI 요소를 포함하는 뷰입니다. 그리고 Raw 뷰의 하위 집합으로 UI 컨트롤의 논리적 구조와 상호 작용을 위해 Raw 뷰의 모든 컨트롤 요소를 포함하는 컨트롤 뷰를 제공합니다. 또한 컨트롤 뷰의 하위 집합으로 여러 항목을 포함할 수 있는 콤보 박스나 리스트 등의 컨트롤의 항목들을 포함하는 컨텐츠 뷰를 제공합니다.

 

 

2. 4 UI 자동화 컨트롤 패턴

 

 UI 자동화 기술에서는 UI 요소를 수행할 수 있는 기능이나 속성에 따라 패턴 형식을 제공하는데 이를 UI 자동화 컨트롤 패턴이라 부릅니다.

 

 예를 들어 버튼처럼 사용자의 명령을 수행할 수 있는 컨트롤들은 Invoke 컨트롤 패턴에 속하고 스크롤 막대를 포함할 수 있는 컨트롤은 Scroll 컨트롤 패턴에 속합니다. 따라서 하나의 UI 컨트롤은 여러 가지 유형의 컨트롤 패턴에 속할 수 있습니다.

 

 UI 자동화 컨트롤 패턴에서는 특정 유형의 컨트롤에서 사용할 수 있는 기능들과 속성, 이벤트들을 유형별로 구분하여 지원합니다.

 

 UI 자동화 공급자에서는 컨트롤 패턴을 구현하여 각 컨트롤 패턴에 따라 지원하는 기능에 관한 인터페이스를 약속합니다. UI 자동화 클라이언트는 UI 자동화 컨트롤 클래스의 메서드와 속성을 이용하여 UI 정보를 얻거나 제어합니다.

 

 일부 컨트롤은 현재 상태에 따라 지원하는 컨트롤 패턴을 지원하지 않을 수 있습니다. 예를 들어 텍스트 박스에 텍스트 줄이 많아 세로 스크롤이 활성화하면 스크롤 패턴에 속하지만 그렇지 않으면 스크롤 패턴에 속하지 않게 됩니다. 버튼도 활성화 상태에서는 사용자가 수행할 수 있는 InvokePattern에 속하지만 비활성화 상태에서는 InvokePattern에 속하지 않습니다.

반응형