검사항목 4.1 운영체제의 보조기술 지원
애플리케이션은 운영체제에서 지원하는 보조기술을 활용할 수 있어야 한다.
필요성
모바일 애플리케이션이 운영체제의 접근성 API를 활용하면 장애인 사용자라 하더라도 모바일 기기의 보조기술을 활용해 정보를 인식하고 기능을 동작시킬 수 있다. 만약 운영체제의 접근성 API를 활용하지 않는다면 장애인이 활용하는 다양한 모바일 보조기술과 호환되지 않아 애플리케이션의 이용이 불가능할 수 있다.
대상
- 보조공학기기 사용자
시각장애 - 스크린리더
저시력자 - 화면확대기
지체장애 - 트랙볼, 인테그라마우스
체크리스트
- 화면낭독 프로그램으로 일반 텍스트가 아닌 객체의 유형(버튼, 체크 상자, 슬라이드바 등)을 구분할 수 있는지 확인
- 알림, 경고 등의 메시지를 화면낭독 프로그램으로 인식할 수 있는지 확인
- 기능이 있는 객체를 화면낭독 프로그램으로 사용할 수 있는지 확인
- 예) 버튼 실행, 값 조절, 화면 갱신 등
- 단순한 제스처로만 구현된 기능을 화면낭독 프로그램의 제스처로 이용할 수 있는지 확인
- 예) 페이지 전환, 한 손가락으로 당기기 등
기기별 화면낭독프로그램의 기본 제스처
iOS
- 기능의 실행 : 객체에 초점 이동 후 더블 탭
- 페이지 전환, 스크롤 등 : 세 손가락 상/하, 좌/우 쓸기
- 값 조절 : 객체에 초점 이동 후 한 손가락 위/아래 쓸기, 객체에 초점 이동 후 더블 탭 후 손가락 떼지 않고 쓸기
Android
- 기능의 실행 : 객체에 초점 이동 후 더블 탭
- 페이지 전환, 스크롤 등 : 두 손가락 상/하, 좌/우 쓸기
- 값 조절 : 객체에 초점 이동 후 더블 탭 후 손가락 떼지 않고 쓸기
QA 지표
오류 수
- 보조기술에서 객체의 유형을 인식할 수 없는 객체 수
- 보조기술로 인식할 수 없는 메시지, 경고 등의 유형 개수
- 보조기술로 실행할 수 없는 객체 수
- 단순한 제스처로만 실행하는 기능 중 대체할 수 있는 수단(화면낭독프로그램의 제스처 등)이 없는 기능 수
- 텍스트로 입력된 내용을 화면낭독프로그램이 음성출력하지 않는 페이지 수
적용기술
애플리케이션은 운영체제의 접근성 기능(ex. 보이스오버, 톡백)을 통해서도 동일한 정보 접근 및 운용이 가능해야 한다. 운영체제에서 제공하는 기본 사용자인터페이스 컴포넌트를 사용하면 가장 높은 접근성을 보장할 수 있으나 이를 활용할 수 없을 때는 기본 사용자인터페이스 컴포넌트에 준하는 수준으로 접근성을 보장해야 한다.
공통
사용자와 상호작용으로 운용되는 객체는 보조기술을 통해서도 명확히 인식하고 이용할 수 있어야 한다.
- 버튼의 실행, 값의 조절 등 객체를 조작하는 동작은 보조기술로도 이용할 수 있어야 한다.
- 간단한 제스처로만 구현된 기능은 대체 가능한 보조기술의 제스처로도 이용할 수 있어야 한다.
- 일반 텍스트와 기능이 있는 객체를 명확히 구분할 수 있는 정보가 제공되어야 한다.
정보의 인식
- 텍스트가 아닌 콘텐츠는 대체 텍스트를 제공해서 보조기술로 정보를 인식할 수 있도록 해야 한다. (검사항목 1.1 대체 텍스트 제공에서 평가)
- 기능을 가지는 모든 객체는 일반 텍스트와 구분되는 객체의 유형(버튼, 체크 상자, 슬라이드바 등)에 대한 정보를 접근성 속성으로 제공해야 한다. 만약 개발과정에서 접근성 속성 사용이 어려운 경우 대체 텍스트 제공 방법을 활용할 수도 있다. (테이블뷰 구성의 화면에서 기능이 있는 객체를 버튼으로 읽지 않는 경우도 해당)
- 사용자에게 알림, 경고 등의 메시지는 운영체제의 API를 통해 보조기술로도 인식할 수 있도록 하거나 그에 준하는 기능으로 개발해야 한다. (검사항목 3.1 오류정정안내 에서는 알림 제공 여부만 평가)
기능의 운용
- 버튼의 실행 및 값의 조절 등 객체를 조작하는 동작이 있는 경우 보조기술을 통해서도 해당 기능을 동등한 수준으로 이용할 수 있어야 한다.
- 예) 볼륨조절 슬라이더 등
- 단순한 제스처로만 특정 기능을 실행할 때 그에 동등한 기능을 화면낭독기의 제스처로 대체할 수 있어야 한다.
- 예) 롤링 콘텐츠 쓸어넘기기
- 한 손가락 쓸기 = 세 손가락 쓸기(iOS) / 두 손가락 쓸기 (Android)
TTS 언어지원
- 콘텐츠 영역에 사용된 언어에 맞는 기본언어를 설정한다.
- 기본 언어를 영문으로 설정하고 한국어 콘텐츠를 탐색할 경우, 화면낭독프로그램이 텍스트를 전혀 읽어내지 못하는 현상이 발생한다.
iOS
iOS는 Accessibility API를 제공하며 UI Accessibility 속성을 활용할 수 있다. 개발 환경에서 접근성 준수 여부를 점검할 수 있도록 Accessibility Inspector와 Accessibility Verifier 같은 도구들도 제공하고 있다.
- Traits 속성은 객체의 형태를 표시하는 속성으로 상태, 액션 등을 설명할 수 있다.
- Button, Link, Search Field, Keyboard Key, Static Text, Image, Plays Sound, Selected, Summary Element, Updates Frequently, Not Enabled, None 등
- accessibilityTraits
개발 문서 문서 링크
예) TabelView의 Cell 생성 메서드에 AccessibilityTraitButton을 제공하는 방법
// Swift
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell! = tableView.dequeueReusableCellWithIdentifier(Identifier)
if (cell == nil) {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: Identifier)
}
let row = indexPath.row
cell.textLabel?.text = cellname[row]
cell.accessibilityTraits = UIAccessibilityTraitButton
return cell
}
// Objective-C
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
... (중략)
cell.accessibilityTraits = UIAccessibilityTraitButton;
}
Android
안드로이드에서도 iOS와 마찬가지로 Accessibility API를 제공하고 있다.
Accessibility Service, Accessibility Event, Accessibility API for customize, Eyes-free 등이 대표적이다.
특히 Eyes-free API는 오픈 소스로 시각장애인 등이 안드로이드용 모바일 기기를 활용할 수 있도록 Talkback 등을 제공하고 있다.
- Button, ImageButton, CheckBox, RadioButton, Switch, ToggleButton 을 이용하면 객체 용도(Role)를 같이 읽어준다.
개발 문서 문서 링크