메뉴 건너뛰기

A11Y

About: MSAA, Microsoft Active Accessibility

2024.09.05 14:29

마다 조회 수:23

Windows의 MSAA(Microsoft Active Accessibility)는 장애가 있는 사용자를 돕기 위해 개발된 기술로, 사용자 인터페이스(UI) 요소에 접근하고 상호작용할 수 있는 표준화된 방법을 제공합니다. MSAA는 Windows 애플리케이션이 보조 기술(AT, Assistive Technology)과 통신할 수 있도록 도와줍니다. 이를 통해 시각, 청각, 신체적 장애를 가진 사용자가 더 쉽게 애플리케이션을 사용하도록 지원하는 역할을 합니다. 아래는 MSAA에 대한 세부 정보와 주요 기능들입니다.

### MSAA 개요
MSAA는 1997년 Windows 95 및 Windows NT 4.0부터 Microsoft에서 지원한 기술입니다. 이 기술은 **애플리케이션과 보조 기술 간의 상호 작용을 표준화**하고, 애플리케이션에서 UI 요소를 쉽게 접근할 수 있도록 합니다. MSAA는 주로 시각장애인, 청각장애인 또는 기타 장애를 가진 사용자를 위해 설계되었으며, 화면 읽기 프로그램, 화면 돋보기 및 음성 인식 소프트웨어 같은 다양한 보조 기술이 MSAA를 사용합니다.

#### 주요 기능
1. **접근성 인터페이스**:
   - MSAA는 UI 요소(윈도우, 버튼, 체크박스, 리스트 등)에 접근할 수 있는 표준 인터페이스를 제공합니다. 보조 기술은 MSAA 인터페이스를 통해 UI 요소의 속성, 위치, 상태 등에 대한 정보를 얻고 상호작용할 수 있습니다.

2. **접근성 이벤트**:
   - MSAA는 애플리케이션 내에서 발생하는 **이벤트**(예: 버튼 클릭, 창 열림 등)를 트래킹할 수 있습니다. 이를 통해 사용자가 프로그램의 변화를 감지하고 적절한 반응을 할 수 있도록 합니다.

3. **Active Accessibility 오브젝트**:
   - MSAA는 각 UI 요소를 **Active Accessibility 오브젝트**로 표현하며, 이 오브젝트는 사용자 인터페이스의 다양한 정보(이름, 역할, 상태, 설명 등)를 포함합니다.

4. **IAccessible 인터페이스**:
   - MSAA의 핵심 구성 요소는 `IAccessible` 인터페이스입니다. 이 인터페이스는 보조 기술이 UI 요소와 상호작용할 수 있는 메서드를 제공합니다. `IAccessible::get_accName`과 같은 메서드를 통해 UI 요소의 이름을 가져올 수 있으며, `IAccessible::accDoDefaultAction`을 통해 기본 동작을 수행할 수 있습니다. IAccessible 인터페이스는 다음과 같은 중요한 메서드와 속성을 제공합니다:
- **get_accName**: UI 요소의 이름을 반환합니다.
- **get_accRole**: UI 요소의 역할(예: 버튼, 텍스트 상자 등)을 반환합니다.
- **get_accState**: UI 요소의 현재 상태(예: 활성화, 비활성화)를 반환합니다.
- **get_accDescription**: UI 요소에 대한 설명을 반환합니다.

### MSAA의 동작 방식
1. **UI 요소의 노출**:
   - MSAA는 애플리케이션의 UI 요소들을 추상화하여, 보조 기술에서 그 정보를 획득할 수 있도록 합니다. 예를 들어, 버튼은 "이름", "역할", "상태" 같은 속성을 가지고 있습니다.
   
2. **보조 기술의 상호작용**:
   - 보조 기술은 `IAccessible` 인터페이스를 호출하여 애플리케이션의 UI 요소에 접근하고, 이를 사용자가 이해할 수 있도록 변환합니다. 예를 들어, 화면 읽기 프로그램은 MSAA를 통해 버튼의 이름을 얻고, 이를 음성으로 읽어줍니다.

3. **접근성 이벤트 핸들링**:
   - 사용자가 특정 액션을 수행할 때, MSAA는 이벤트를 발생시켜 보조 기술이 해당 변화를 감지하고 반응할 수 있도록 합니다.

### MSAA의 활용 사례
- **스크린 리더**: MSAA를 사용하여 애플리케이션 내의 텍스트 및 UI 요소를 읽어 사용자에게 전달합니다.
- **화면 확대기**: MSAA를 통해 특정 UI 요소의 위치를 파악하고, 해당 요소를 확대하여 사용자에게 보여줍니다.
- **음성 인식**: MSAA를 통해 UI 요소에 접근하여 음성 명령으로 사용자 인터페이스를 제어합니다.

### MSAA의 한계
- **제한된 접근성 정보**: MSAA는 UI 요소의 제한된 정보만 제공할 수 있으며, 복잡한 사용자 인터페이스의 경우 모든 필요한 정보를 제공하지 못할 수 있습니다.
- **최신 기술의 도입**: MSAA는 최신 Windows UI 기술(UWP, XAML 등)에서 완벽하게 지원되지 않으며, 대신 **UI Automation**과 같은 새로운 기술로 대체되고 있습니다.

### MSAA와 UI Automation의 차이점
- **MSAA**는 레거시 애플리케이션에 주로 사용되며, 기본적인 접근성 기능을 제공합니다. 반면, **UI Automation**은 더 발전된 기능과 유연성을 제공하며, 더 많은 UI 요소와의 상호작용을 지원합니다. UI Automation은 MSAA를 기반으로 하여 더 복잡한 사용자 인터페이스에도 접근할 수 있도록 확장된 기술입니다.

### 결론
Windows의 MSAA는 보조 기술과 애플리케이션 간의 상호작용을 위한 중요한 접근성 기술로, 사용자가 더 쉽게 소프트웨어를 사용할 수 있도록 도와줍니다. 비록 UI Automation이라는 새로운 기술이 도입되었지만, MSAA는 여전히 많은 레거시 애플리케이션에서 사용되고 있으며, 접근성 개선을 위한 기본적인 표준으로 자리잡고 있습니다.
 

번호 제목 날짜 조회 수
22 시각장애 개발자와 함께하는 아이디어 마이닝 #9. 마치며 2024.11.22 26
21 시각장애 개발자와 함께하는 아이디어 마이닝 #8. 자바스크립트 2024.11.21 26
20 시각장애 개발자와 함께하는 아이디어 마이닝 #7. 스크립트 예시, CMD 2024.11.20 31
19 시각장애 개발자와 함께하는 아이디어 마이닝 #6. 스크립트 언어 2024.11.19 26
18 시각장애 개발자와 함께하는 아이디어 마이닝 #5. HTML 2024.11.18 18
17 시각장애 개발자와 함께하는 아이디어 마이닝 #4. 의사 코드 2024.11.14 17
16 시각장애 개발자와 함께하는 아이디어 마이닝 #3. 이미지 2024.11.13 18
15 시각장애 개발자와 함께하는 아이디어 마이닝 #2. 텍스트와 오디오 2024.11.12 22
14 [세미나] 시각장애 개발자와 함께 하는 아이디어 마이닝 #1. 목적 2024.11.11 21
13 여러 단계로 이루어진 서비스 제공시 시각장애인 접근성 개선 방안 2024.10.22 52
12 시각장애인과의 협업을 위한 특수문자 발음의 이해 2024.10.18 50
11 센스리더의 브라우저 탭키 환경과 가상커서 탭키 환경 2024.10.11 46
10 센스리더의 "기능 검색" 기능에 대하여 2024.10.08 31
9 시각장애인을 위한 소리 정보 제공 시 기본 파형 사용 주의사항 2024.10.02 27
8 시각장애인 접근성 음성 정보의 맹점 2024.10.02 33
7 시각장애인을 위한 음성 접근성 정보 제공 방법 2024.09.25 40
6 접근성 역할에서 "link"와 "button"의 차이 2024.09.24 54
5 시각장애인 접근성 향상을 위한 응용프로그램 조작 인터페이스 2024.09.11 36
4 윈도우 접근성 기술: MSAA와 UIAutomation 비교 2024.09.09 35
3 About: Microsoft Windows IUIAutomation Interface 2024.09.06 22