다음을 통해 공유


Microsoft Active Accessibility 및 UI 자동화 비교

Windows Automation API는 Microsoft Active Accessibility와 Microsoft UI 자동화 두 가지 기술로 구성됩니다. Microsoft Active Accessibility는 Windows 95용 플랫폼 추가 기능으로 도입된 레거시 접근성 기술이며, UI 자동화 Microsoft Active Accessibility에 내재된 제한 사항을 극복하는 더 새롭고 더 유능한 기술입니다.

이 항목에서는 Microsoft Active Accessibility와 UI 자동화 간의 기본 차이점을 요약합니다. 여기에는 다음 섹션이 포함됩니다.

기본 디자인 원칙

Microsoft Active Accessibility와 UI 자동화 서로 다른 두 가지 기술이지만 기본 디자인 원칙은 비슷합니다. 두 기술의 목적은 Windows 애플리케이션에서 사용되는 UI 요소에 대한 풍부한 정보를 노출하는 것입니다. 접근성 도구 개발자는 이 정보를 사용하여 시각, 청각 또는 운동 장애가 있는 사용자가 Windows에서 실행되는 애플리케이션에 더 쉽게 액세스할 수 있도록 하는 소프트웨어를 만들 수 있습니다.

Microsoft Active Accessibility와 UI 자동화 모두 UI 개체 모델을 데스크톱에 루팅된 계층 트리로 노출합니다. Microsoft Active Accessibility는 개별 UI 요소를 접근성 있는 개체나타내며 UI 자동화 자동화 요소나타냅니다. 둘 다 접근성 도구 또는 소프트웨어 자동화 프로그램을 클라이언트로 참조합니다. 그러나 Microsoft Active Accessibility는 서버로서의 접근성을 위해 UI를 제공하는 애플리케이션 또는 컨트롤을 참조하는 반면, UI 자동화 이를 공급자라고 합니다.

속성 및 컨트롤 패턴

Microsoft Active Accessibility는 고정된 작은 속성 집합이 있는 단일 COM(구성 요소 개체 모델) 인터페이스를 제공합니다. UI 자동화 Microsoft Active Accessibility에서 액세스할 수 없는 방식으로 액세스 가능한 개체를 조작하는 컨트롤 패턴이라는 확장 인터페이스 집합뿐만 아니라 다양한 속성 집합을 제공합니다.

자세한 내용은 UI 자동화 속성 개요UI 자동화 컨트롤 패턴 개요를 참조하세요.

MSAA 역할 및 UI 자동화 컨트롤 패턴

Microsoft는 Windows 95가 릴리스된 것과 거의 동시에 Microsoft Active Accessibility 개체 모델을 디자인했습니다. 이 모델은 10년 전에 정의된 "역할"을 기반으로 하며 새 UI 동작을 지원하거나 둘 이상의 역할을 함께 병합할 수 없습니다. 예를 들어 보조 기술이 복잡한 웹 콘텐츠를 처리하는 데 도움이 되는 텍스트 개체 모델은 없습니다. UI 자동화 개체가 둘 이상의 역할을 지원할 수 있도록 하는 컨트롤 패턴을 도입하여 이러한 제한을 극복하고 UI 자동화 텍스트 컨트롤 패턴은 본격적인 텍스트 개체 모델을 제공합니다.

개체 모델 탐색

Microsoft Active Accessibility의 또 다른 제한 사항은 개체 모델을 탐색하는 것입니다. Microsoft Active Accessibility는 액세스 가능한 개체의 계층 구조로 UI를 나타냅니다. 클라이언트는 액세스 가능한 개체에서 사용할 수 있는 인터페이스 및 메서드를 사용하여 한 액세스 가능한 개체에서 다른 개체로 이동합니다. 서버는 IAccessible 인터페이스의 속성 또는 표준 IEnumVARIANT COM 인터페이스를 사용하여 액세스 가능한 개체의 자식을 노출할 수 있습니다. 그러나 클라이언트는 모든 서버에 대해 두 가지 방법을 모두 처리할 수 있어야 합니다. 이러한 모호성은 클라이언트 구현자에 대한 추가 작업과 서버 구현자에 대한 접근성이 손상되는 개체 모델을 의미합니다.

UI 자동화 자동화 요소의 계층 트리로 UI를 나타내고 트리 탐색을 위한 단일 인터페이스를 제공합니다. 클라이언트는 범위 지정 및 필터링을 통해 트리의 요소 보기를 사용자 지정할 수 있습니다.

개체 모델 확장성

IAccessible COM 인터페이스 사양을 중단하거나 변경하지 않고는 Microsoft Active Accessibility 속성 및 함수를 확장할 수 없습니다. 그 결과 개체 모델을 통해 새 컨트롤 동작을 노출할 수 없습니다. 정적인 경향이 있습니다.

UI 자동화 사용하여 새 UI 요소가 만들어질 때 애플리케이션 개발자는 사용자 지정 속성, 컨트롤 패턴 및 이벤트를 도입하여 새 요소를 설명할 수 있습니다. 자세한 내용은 사용자 지정 속성, 이벤트 및 컨트롤 패턴을 참조 하세요.

MSAA에서 전환

Windows Automation API 프레임워크는 Microsoft Active Accessibility 서버에서 UI 자동화 공급자로의 전환을 지원합니다. IAccessibleEx 인터페이스를 사용하면 전체 구현을 다시 작성할 필요 없이 특정 UI 자동화 속성 및 컨트롤 패턴을 레거시 Microsoft Active Accessibility 서버에 추가할 수 있습니다. 또한 IAccessibleEx 인터페이스를 사용하면 in-process Microsoft Active Accessibility 클라이언트가 UI 자동화 클라이언트 인터페이스를 통하지 않고 UI 자동화 공급자 인터페이스에 직접 액세스할 수 있습니다. 자세한 내용은 IAccessibleEx 인터페이스를 참조 하세요.

Microsoft Active Accessibility, UI 자동화 또는 IAccessibleEx 선택

이 섹션에서는 보조 기술 제품을 구현하거나 보조 기술 제품에서 애플리케이션에 액세스할 수 있도록 하는 데 사용할 Windows Automation API 솔루션을 결정하는 데 도움이 됩니다.

새 애플리케이션 및 컨트롤

새 애플리케이션 또는 컨트롤을 개발하는 경우 UI 자동화 사용하는 것이 좋습니다. Microsoft Active Accessibility는 단기적으로 구현하기가 더 쉬울 수 있지만, 이 기술에 내재된 제한 사항(예: 노후화된 개체 모델 및 새 UI 동작 또는 병합 역할을 지원할 수 없음)은 장기적으로 더 어렵고 비용이 많이 듭니다. 이러한 제한 사항은 새 컨트롤을 도입할 때 특히 명백해집니다.

UI 자동화 개체 모델은 사용하기 쉽고 Microsoft Active Accessibility보다 더 유연합니다. UI 자동화 요소는 사용자 인터페이스의 진화를 반영하며 개발자는 사용자 지정 UI 자동화 컨트롤 패턴, 속성 및 이벤트를 정의할 수 있습니다.

Microsoft Active Accessibility는 프로세스가 부족한 클라이언트에 대해 느리게 실행되는 경향이 있습니다. 성능을 향상시키기 위해 접근성 도구 프로그램 개발자는 대상 애플리케이션 프로세스에서 프로그램을 연결하고 실행하도록 선택하는 경우가 많습니다. 매우 어렵고 위험한 접근 방식입니다. UI 자동화 out-of-process 클라이언트에 대해 훨씬 쉽게 구현할 수 있으며 훨씬 더 나은 성능과 안정성을 제공합니다.

기존 Microsoft Active Accessibility 구현

Microsoft Active Accessibility를 기반으로 하는 기존 애플리케이션 또는 컨트롤을 업데이트하는 경우 IAccessibleEx 인터페이스를 구현하여 UI 자동화 대한 지원을 추가하는 것이 좋습니다. 먼저 애플리케이션 또는 컨트롤이 다음 요구 사항을 충족하는지 확인합니다.

  • 기본 Microsoft Active Accessibility 서버의 액세스 가능한 개체 계층 구조는 잘 구성되고 오류가 없어야 합니다. IAccessibleEx 는 기존 액세스 가능한 개체 계층의 문제를 해결할 수 없습니다.
  • IAccessibleEx 구현은 Microsoft Active Accessibility 사양과 UI 자동화 사양을 모두 준수해야 합니다. Microsoft는 두 사양의 준수 유효성을 검사하기 위한 도구 집합을 제공합니다. 자세한 내용은 접근성 테스트를 참조 하세요.

이러한 요구 사항 중 하나가 충족되지 않는 경우 기본적으로 UI 자동화 구현하는 것이 좋습니다. 필요한 경우 이전 버전과의 호환성을 위해 레거시 Microsoft Active Accessibility 서버 구현을 유지할 수 있습니다. UI 자동화 클라이언트 관점에서 UI 자동화 공급자와 IAccessibleEx를 올바르게 구현하는 Microsoft Active Accessibility 서버 간에는 차이가 없습니다.

자세한 내용은 IAccessibleEx 인터페이스를 참조 하세요.

Windows Automation API 개요

Microsoft Active Accessibility

UI 자동화

IAccessibleEx 인터페이스