Microsoft Active Accessibility

Microsoft Active Accessibility

Microsoft Active Accessibility(MSAA)는 사용자 인터페이스 접근성을 위한 Application Programming Interface(API; 응용 프로그램프로그래밍 인터페이스)입니다.MSAA는 1997년에 Microsoft Windows 95에 플랫폼 애드온으로 도입되었습니다.MSAA는 Assistive Technology(AT) 제품이 응용 프로그램(또는 운영 체제)의 표준 커스텀 사용자 인터페이스(UI) 요소와 상호 작용하고 응용 프로그램의 UI 요소에 액세스, 식별 및 조작할 수 있도록 설계되었습니다.AT 제품은 신체적 또는 인지적 어려움, 장애 또는 장애가 있는 개인에게 더 나은 액세스를 제공하기 위해 MSAA 지원 애플리케이션과 함께 작동합니다.AT 제품의 예로는 시야가 제한된 사용자를 위한 화면 리더, 물리적 접근이 제한된 사용자를 위한 화면 키보드 또는 청각이 제한된 사용자를 위한 내레이터가 있습니다.MSAA는 자동화된 테스트 도구 및 컴퓨터 기반 훈련 애플리케이션에도 사용할 수 있습니다.

MSAA 의 최신 사양은, Microsoft UI Automation Community Promise Specification 의 일부에 기재되어 있습니다.

역사

Active Accessibility는 처음에 OLE[1] Accessibility로 불렸으며 이 헤리티는 다음과 같은 바이너리 컴포넌트의 이름 지정에 반영됩니다.oleacc.dll헤더 파일oleacc.h정의와 선언이 포함되어 있습니다.1996년 3월 마이크로소프트의 ActiveX 브랜드 추진의 일환으로 OLE Accessibility는 ActiveX Accessibility(AXA라고도 함)로 이름이 변경되어 1996년 3월 샌프란시스코에서 열린 Microsoft Professional Developers Conference에서 발표되었습니다.그 후 ActiveX 브랜딩은 인터넷 고유의 테크놀로지용으로 예약되었으며 ActiveX Accessibility는 Active Accessibility가 되어 종종 MSAA로 단축됩니다.

MSAA는 원래 1997년 4월에 Microsoft Active Accessibility Software Developers Kit(SDK) 버전 1.0의 일부로 제공되었습니다.SDK 패키지에는 문서, 프로그래밍 라이브러리, 샘플 소스 코드 및 접근 가능한 기술 벤더가 제품에 포함시킬 수 있는 Re-Distributable Kit(RDK)가 포함되어 있습니다.RDK 에는, Microsoft Windows 95 용으로 갱신된 operating system의 컴포넌트가 포함되어 있습니다.Windows 98 및 Windows NT 4.0 Service Pack 4 이후 MSAA는 모든 버전의 Windows 플랫폼에 내장되어 있으며, 정기적으로 업그레이드와 패치를 받고 있습니다.

지금까지 MSAA를 통해 Windows의 보조 테크놀로지 애플리케이션에 대한 프로그램적 노출이 제공되어 왔습니다.다만, 새로운 애플리케이션에서는, Windows Vista 와 에 도입Microsoft UI Automation(UIA)가 사용되고 있습니다.NET Framework 3.0.

버전 이력

다음 Active Accessibility 버전이 [2]출시되었습니다.

버전 묘사
1.0 Windows 95용 오리지널 애드온릴리즈RDK는 운영 체제의 영어 버전에서만 지원되었습니다.(1997)
1.1 Windows 98에 포함되어 있습니다.
1.2.x MSAA의 첫 번째 개정판으로 영어판 및 국제판 Windows에서 모두 사용할 수 있게 되었습니다.(1998)
1.3.x 더 많은 언어에 대한 추가 지원이 추가되었습니다.국제 텍스트 리소스 라이브러리용 위성 DLL(oleaccrc.dll)이 도입되었습니다.이후 시스템 컴포넌트는 Windows NT 4.0 Service Pack 6 이후 Windows 98, Windows 2000 및 Windows Me(1999)에 통합되었습니다.
2.0 MSAA의 첫 번째 메이저리비전. 다이내믹 주석 및 MSAA 텍스트 지원 추가.이 버전은 Windows XP에 통합되었습니다.이후의 Windows 버전에서는, MSAA 프레임워크에 마이너 리비전이 행해지고 있습니다.2.0 버전의 RDK는 2003년에 오래된 플랫폼(Windows 95, 98, 2000, Me, NT)에서 사용할 수 있게 되었습니다.(2000–2008)
3.0 이 프레임워크는 MSAA 및 UI Automation(UIA)에 의해 설정된 Windows 플랫폼 접근성 API에 통합된 Windows Automation API 3.0의 일부가 되었습니다.Windows Automation API는 Windows 7에 포함되어 Windows Vista 및 XP(2009)에서 사용할 수 있습니다.

동기 및 목표

MSAA 개발의 동기 부여 요인은 기본 운영 체제 또는 애플리케이션과 보조 기술 제품 간에 이용 가능하고 매끄러운 통신 메커니즘을 가능하게 하는 것이었습니다.

MSAA의 프로그램 목표는 Windows 컨트롤이 이름, 화면상의 위치, 컨트롤 유형 등의 기본 정보와 가시성, 활성화, 선택 등의 상태 정보를 노출할 수 있도록 하는 것입니다.

기술 개요

MSAA는 Component Object Model(COM; 컴포넌트 오브젝트 모델)에 근거하고 있습니다.COM 에서는, 애플리케이션과 operating system이 통신하기 위한 메카니즘을 정의합니다.

그림 1은 MSAA의 개략적인 아키텍처를 나타내고 있습니다.

애플리케이션(워드프로세서등)은, 유저 인터페이스(UI)에 관한 정보를 제공 또는 제공하기 때문에, MSAA에서는 서버라고 불립니다.액세스 어빌리티 툴(스크린 리더등)은, 애플리케이션의 UI 정보를 소비해, 상호 작용하기 때문에, MSAA에서는 클라이언트라고 불립니다.

MSAA 프레임워크의 시스템 구성 요소인 Oleacc.dll은 내게 필요한 옵션 도구(클라이언트)와 응용 프로그램(서버) 간의 통신을 지원합니다.코드 경계는 UI 접근성 정보를 제공하는 응용 프로그램과 사용자 대신 UI와 상호 작용하는 접근성 도구 간의 프로그래밍 경계를 나타냅니다.MSAA 클라이언트가 독자적인 프로세스를 가지고 있는 경우, 이 경계는 프로세스 경계로도 할 수 있습니다.

Microsoft Active Accessibility

UI는 액세스 가능한 객체의 계층으로 표시되고 변경과 액션은 WinEvents로 표시됩니다.

액세스 가능한 오브젝트

액세스 가능한 오브젝트는 MSAA의 중앙 인터페이스로,IAccessible COM 인터페이스 및 정수 ChildId.이를 통해 응용 프로그램은 UI 구조를 나타내는 트리 구조를 노출할 수 있습니다.이 트리의 각 요소는 대응하는 UI 요소를 조작할 수 있는 일련의 속성 및 메서드를 표시합니다.MSAA 클라이언트는 표준 API를 통해 프로그램 UI 정보에 액세스할 수 있습니다.

역할, 이름, 값, 상태

MSAA는 프로그램 요소에 대한 작은 정보 청크를 보조 기술 객체(AT)에 전송하여 정보를 통신합니다.사용자가 애플리케이션과 상호 작용할 수 있도록 AT가 의존하는 4가지 중요한 정보는 요소의 역할, 이름, 값 및 상태입니다.

  • 역할: 버튼이나 테이블 등 컨트롤의 종류를 AT를 통해 사용자에게 전달합니다.IAccessable 메서드는 get_accRole입니다.
  • 이름: 사용자를 다음 페이지로 이동하는 버튼의 [다음], 편집 상자의 [이름] 등 요소의 라벨을 제공합니다.IAccessable 메서드는 get_accName 입니다.
  • : 슬라이더 막대의 값 또는 편집 가능한 텍스트 상자의 정보와 같은 지정된 개체의 값을 제공합니다.모든 개체에 값이 있는 것은 아닙니다.에 대한 IAccessable 메서드는 get_accValue입니다.
  • 상태: 체크박스를 켜는 등 컨트롤의 현재 상태를 나타냅니다.State는 컨트롤이 선택, 집중 및/또는 기타 유형의 변경 가능한 기능인지 여부를 조언한다.IAccessable 메서드는 get_accState입니다.

Microsoft는 컨트롤과 [3]그 기능의 완전한 리스트를 제공하고 있습니다.

역할.

역할 정보는 개발자가 상호 작용하려는 UI 제어 유형을 기반으로 합니다.예를 들어, 개발자가 클릭 가능한 버튼을 구현하고 있는 경우 개발자는 구현할 역할로 푸시 버튼을 선택합니다.다음 표에 MSAA 역할 및 관련 설명의 예를 나타냅니다.

역할. 묘사
역할_SYSTEM_어플리케이션 개체는 응용 프로그램의 기본 창을 나타냅니다.
역할_시스템_버튼메뉴 오브젝트는 메뉴를 드롭다운하는 버튼을 나타냅니다.
역할_SYSTEM_CARET 개체는 시스템 캐럿을 나타냅니다.
역할_시스템_대화상자 개체는 대화 상자 또는 메시지 상자를 나타냅니다.
역할_SYSTEM_Document 오브젝트는 문서 창을 나타냅니다.문서 창은 항상 응용프로그램 창 내에 포함됩니다.이 역할은 MDI(Multiple Document Interface) 에만 적용되며 MDI 제목 표시줄을 포함하는 개체를 참조합니다.
역할_SYSTEM_GRAPHIC 개체는 그림을 나타냅니다.
역할_SYSTEM_리스트 개체는 목록 상자를 나타내며 사용자가 하나 이상의 항목을 선택할 수 있습니다.
역할_시스템_메뉴바 오브젝트는 사용자가 메뉴를 선택하는 메뉴바(창 제목바 아래에 위치)를 나타냅니다.
ROLE_SYSTEM_PRESSBAR 개체는 진행률 표시줄을 나타내며 사용자에게 진행 중인 작업의 완료율을 동적으로 표시합니다.이 컨트롤은 사용자 입력을 받지 않습니다.
역할_SYSTEM_푸시버튼 개체는 푸시 버튼 컨트롤을 나타냅니다.
역할_시스템_라디오 버튼 오브젝트는 옵션버튼을 나타냅니다.옵션 버튼이라고도 불립니다.이것은 상호 배타적인 옵션 중 하나입니다.이 속성을 가진 단일 부모를 공유하는 모든 개체는 상호 배타적인 단일 그룹의 일부로 간주됩니다.ROLE_SYSTEM_GROUPING 개체를 사용하여 개체를 개별 그룹으로 나눕니다.
역할_시스템_스크롤바 개체는 클라이언트 영역의 일부이거나 컨트롤에 사용되는 수직 또는 수평 스크롤 막대를 나타냅니다.
역할_시스템_타이틀바 개체는 창의 제목 또는 캡션 표시줄을 나타냅니다.
ROLE_SYSTEM_툴바 개체는 자주 사용하는 기능에 쉽게 액세스할 수 있는 컨트롤 그룹인 도구 모음을 나타냅니다.
ROLE_SYSTEM_WINDOW 개체는 창 프레임을 나타냅니다. 창에는 제목 표시줄, 클라이언트 및 창에 포함된 기타 개체와 같은 하위 개체가 포함됩니다.MSAA에서 이 창 개체는 대부분의 경우 Windows의 HWND 개체와 동일합니다.

이름.

응용 프로그램의 요소 이름은 개발자에 의해 코드로 할당됩니다.아이콘, 메뉴, 체크박스, 콤보박스 및 기타 컨트롤과 같은 많은 개체에는 사용자에게 표시되는 라벨이 있습니다.컨트롤(예: 단추)에서 사용자에게 표시되는 레이블이 오브젝트의 이름 특성에 대한 기본값입니다.사용자가 오브젝트 이름을 이해하고 컨트롤에 대해 올바르게 설명하는지 확인합니다.Name 속성은 버튼이나 목록과 같은 제어 역할 또는 유형 정보를 포함할 수 없습니다. 그렇지 않으면 역할 속성(MSAA API의 GetRoleText 함수에서 가져온)의 텍스트와 충돌합니다.

가치

값은 개발자가 개체에서 문자열 형식으로 정보를 반환할 때 사용됩니다.객체에 백분율, 정수, 텍스트 또는 시각적 정보가 포함된 객체에 대해 값을 반환할 수 있습니다.예를 들어 스크롤바 및 트랙바 액세스 가능 개체에서 반환되는 속성 값은 백분율을 문자열로 나타낼 수 있습니다.

모든 개체에 할당된 값이 있는 것은 아닙니다.

상태 속성은 한 시점의 개체 상태를 설명합니다.Microsoft Active Accessibility는 oleacc.h에 정의된 개체 상태 상수를 제공하여 개체 상태를 식별합니다.정의된 상태 값이 반환되면 클라이언트는 GetStateText를 사용하여 상태를 설명하는 현지화된 문자열을 가져옵니다.모든 개체는 State 속성을 지원합니다.

과제와 제한

Microsoft는 Windows 95 출시 중 및 출시 후에 Active Accessibility 객체 모델을 설계했습니다.이 모델은 역할을 기반으로 하며 각 역할은 사용자 인터페이스 요소의 유형을 나타냅니다.이러한 역할은 현재 일반적으로 사용되는 사용자 인터페이스 요소로 제한됩니다.예를 들어 보조 기술이 여러 UI 요소를 하나로 결합하는 분할 버튼을 처리하는 데 도움이 되는 텍스트 개체 모델은 없습니다.MSAA는 마크업 텍스트나 리치 텍스트 문서와 같은 스타일링된 텍스트를 표현하려고 하지 않습니다.MSAA에는 Value 속성이 있지만 해당 값에서 호스트할 수 있는 것은 단순하고 스타일 없는 텍스트뿐입니다.그 시점에서는 Microsoft Text Object Model(MS-TOM)이 서식 있는 텍스트의 속성을 표현하는 데 더 적합하다고 생각되었습니다.그러나 MS-TOM의 복잡성과 마이크로소프트 이외의 초기 도입 제한으로 리치 텍스트에 대한 접근이 방해되었습니다.

또 다른 제한사항은 객체 모델을 탐색하는 것입니다.MSAA는 Windows의 Window Manager와 유사한 방식으로 UI를 액세스 가능한 개체의 계층으로 나타냅니다.클라이언트는 IAccessible::acc Navigate 메서드를 사용하여 접근 가능한 개체 간에 이동합니다.그러나 서버는 예측할 수 없는 방법으로 acNavigate를 구현했으며, 대부분의 경우 전혀 구현하지 않았습니다.단, 클라이언트는 모든 MSAA 서버의 모든 접근 방식을 처리할 수 있어야 합니다.이 애매모호함은 클라이언트 구현자에게 추가 작업을 의미하며, 서버 구현에 따라 복잡성이 문제의 원인이 될 수 있습니다.

IAccessible은 COM 기반의 바이너리 인터페이스이므로 변경할 수 없으며 다른 인터페이스를 생성하지 않으면 변경할 수 없습니다.그 결과 기존 IAccessible 기반 객체 모델을 통해 새로운 역할, 동작 또는 속성을 노출할 수 없습니다.기본 UI 요소에 대한 정보의 공통 서브셋을 의도했지만, 새로운 상호작용 방법에 대한 정보를 포함하도록 확장하는 것은 어려운 것으로 밝혀졌다.

유용성

MSAA는 처음에 Windows 95의 애드온으로 제공되었습니다.이후의 모든 Windows 버전과 통합되어 있습니다.

관련 기술

Microsoft UI Automation (UIA):MSAA의 후계자는 User Interface Automation(UIA; 사용자 인터페이스 자동화)입니다.단, MSAA 기반의 어플리케이션이 아직 존재하기 때문에 UI Automation 어플리케이션과 MSAA 어플리케이션 간의 통신을 가능하게 하기 위해 브릿지를 사용합니다.따라서 MSAA-to-UI Automation Proxy와 UI Automation-to-MSAA Bridge라는 두 API 간에 정보를 공유할 수 있습니다.전자는 MSAA 정보를 소비하고 UI Automation 클라이언트 API를 통해 사용할 수 있는 컴포넌트입니다.후자는 UI 자동화를 구현하는 MSAA 액세스 애플리케이션을 사용하여 클라이언트 애플리케이션을 활성화합니다.

액세스 가능한 리치 인터넷 애플리케이션(WAI-ARIA):ARIA 속성에서 MSAA [4]속성으로의 일반적인 매핑이 있습니다.

IAccessible2: MSAA는 IAccessible2의 루트를 제공합니다.IAccessible2는 MSAA에서 수행된 작업을 활용하고 추가 기능을 추가합니다.

Windows Automation API: Windows 7에서 Microsoft는 Windows Automation API라고 불리는 프레임워크로 접근성 기술을 패키징하고 있습니다.MSAA는 이 프레임워크의 일부가 됩니다.

Microsoft Active Accessibility 구현

Active Accessibility는 Windows 95 이후 모든 버전의 Windows 개발자가 사용할 수 있습니다.MSAA는 처음 도입된 이후 Microsoft Internet Explorer, Mozilla Firefox, Microsoft Office 등 많은 비즈니스 및 개인 사용자 응용 프로그램에서 UI에 대한 프로그래밍 방식의 액세스를 지원하기 위한 방법으로 사용되어 왔습니다.이 기술은 화면 리더, 화면 돋보기, 증강 대체 통신(AAC) 장치와 같은 접근성 보조 도구 외에도 QuickTest Pro, Functional Tester 및 SilkTest와 같은 테스트 자동화 소프트웨어에서 사용되고 있습니다.

애플리케이션 및 AT 제품에 대한 MSAA의 추가 구현은 Microsoft Accessibility 사이트 또는 AT Information [5][6][7]웹 사이트에서 검색하면 확인할 수 있습니다.

레퍼런스

  1. ^ NFB-RD 메일링 리스트 1996년 2월 "OLAE [sic] 접근성"
  2. ^ 지원되는 플랫폼:액티브한 접근성 - MSDN
  3. ^ Microsoft 개발자 네트워크(MSDN): https://msdn.microsoft.com/en-us/library/bb773173(VS.85).aspx Windows 컨트롤.
  4. ^ Microsoft 개발자 네트워크(MSDN): UI 자동화 사양
  5. ^ Microsoft:Microsoft 제품의 접근성.
  6. ^ Microsoft:Microsoft의 접근성에 대한 대처 이력.
  7. ^ 트레이스 센터:어시스턴스 테크놀로지 정보 링크아카이브 2012-07-23 오늘 아카이브.

외부 링크