메뉴 건너뛰기

A11Y

Windows의 접근성 기술에는 **MSAA (Microsoft Active Accessibility)**와 **UIAutomation**이라는 두 가지 주요 인터페이스가 있습니다. 두 기술은 모두 애플리케이션이 사용자의 인터페이스에 접근하여 사용자에게 정보를 제공하거나, 보조 기술이 해당 인터페이스를 통해 상호작용할 수 있도록 돕습니다. 하지만 두 기술은 성능, 확장성, 안정성 측면에서 차이를 보입니다. 아래에서는 MSAA와 UIAutomation의 차이점을 중심으로 비교해 보겠습니다.

---

#### 1. **MSAA (Microsoft Active Accessibility)**
MSAA는 Windows 95부터 제공된 오래된 접근성 API입니다. 이는 GUI 요소의 접근성을 보장하기 위해 설계되었으며, 애플리케이션에서 장애가 있는 사용자가 화면의 정보를 쉽게 파악할 수 있도록 돕는 역할을 합니다.

##### 장점
- **속도**: 
  - **In-process**에서 매우 빠르게 작동합니다. 즉, MSAA는 애플리케이션 내부에서 호출될 때 매우 높은 성능을 발휘합니다. 애플리케이션의 프로세스 내에서 정보를 가져오는 경우 속도가 빠르기 때문에 실시간 상호작용에서 뛰어난 성능을 보입니다.
  - 그러나 **Out-process**에서 작동할 경우, 즉 애플리케이션 외부에서 정보를 요청할 때는 속도가 상대적으로 느려집니다. 이는 프로세스 간 통신(IPC: Inter-Process Communication)의 오버헤드 때문입니다.
  
- **호환성**: 
  - **Windows 버전에 관계없이** 쉽게 적용할 수 있습니다. MSAA는 Windows의 초기 버전부터 사용되어 왔으며, 최신 버전에서도 여전히 호환되기 때문에 특정 버전 의존성 없이 사용할 수 있는 점이 강점입니다.
  
##### 단점
- **제한된 정보 제공**: 
  - MSAA는 기본적인 GUI 요소에 대한 정보만을 제공합니다. 복잡한 인터페이스나 다양한 사용자 요구 사항을 지원하는 데는 한계가 있습니다.

---

#### 2. **UIAutomation**
UIAutomation은 MSAA의 후속 기술로, Windows Vista 이후에 등장한 보다 발전된 접근성 API입니다. 이 API는 UI 컨트롤과의 상호작용에 대한 보다 세부적인 제어와 정보를 제공하기 위해 설계되었습니다.

##### 장점
- **확장성**: 
  - UIAutomation은 **보다 자세한 정보를 처리할 수 있는 능력**을 가지고 있습니다. 다양한 컨트롤의 특성, 상태 및 상호작용을 세부적으로 다룰 수 있으며, 이로 인해 복잡한 사용자 인터페이스와의 상호작용에 적합합니다.
  
- **유연성**: 
  - UIAutomation은 **확장 가능성**이 뛰어나고, 커스텀 컨트롤을 처리할 수 있는 기능도 제공합니다. 이를 통해 MSAA가 처리하지 못하는 세부 정보나 커스텀 인터페이스도 지원할 수 있습니다.

##### 단점
- **속도**: 
  - UIAutomation은 **In-process**와 **Out-process** 모두에서 **비슷하게 느린 속도**를 보입니다. 이는 MSAA에 비해 성능적으로 불리한 부분인데, 프로세스 내부에서 실행되더라도 성능이 MSAA만큼 빠르지 않습니다. 특히 Out-process에서 성능이 저하되며, In-process와 속도 차이가 거의 없습니다.
  
- **쓰레드 안정성 문제**: 
  - UIAutomation은 **쓰레드 안정성**이 떨어진다는 단점이 있습니다. 즉, 멀티 쓰레드 환경에서 사용 시 예상치 못한 문제가 발생할 수 있으며, 이를 처리하는 데 어려움이 있을 수 있습니다.
  
- **Windows 버전에 따른 차이**: 
  - UIAutomation은 **Windows 버전에 따라 처리되는 정보가 다릅니다**. 즉, Windows의 버전에 따라 접근할 수 있는 API 기능이나 정보의 정확도가 다를 수 있습니다. 이는 특히 최신 버전의 Windows에서 새로운 기능이 추가되거나 기존 기능이 변경될 때 발생하는 문제입니다.

---

### 결론
MSAA와 UIAutomation은 각기 다른 특성과 장점을 가지고 있으며, 사용 목적에 따라 선택해야 합니다. **MSAA**는 단순한 접근성 요구 사항을 가진 애플리케이션에 적합하며, 높은 성능과 호환성이 장점입니다. 반면, **UIAutomation**은 보다 복잡한 인터페이스와의 상호작용을 필요로 할 때 유리하지만, 성능이 떨어지고 쓰레드 안정성 문제를 동반할 수 있습니다.

따라서, 성능과 호환성을 중시하는 경우 **MSAA**를, 확장성 및 세부 정보를 중요시하는 경우 **UIAutomation**을 선택하는 것이 일반적입니다. 두 기술 모두 각자의 사용 목적에 맞게 적절히 선택될 수 있으며, 최신 Windows 시스템에서는 UIAutomation이 점차 표준으로 자리 잡아가고 있습니다.

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