iOS
-
VoiceOver 사용
iOS의 VoiceOver를 켜고, UI 요소가 접근 가능한지 테스트합니다.
-
키보드 테스트
iPad 등에서 키보드를 연결하여 모든 요소가 탐색 가능한지 확인합니다.
견고성(Robust)
모바일 접근성 제작 기법 요약 설명
- 접근성 콘텐츠 제작 기법은 모든 사용자, 특히 장애가 있는 사용자가 웹과 모바일 콘텐츠에 접근하고 사용할 수 있도록 보장하는 방법이며, 웹 접근성 지침(WCAG: Web Content Accessibility Guidelines)과 모바일 접근성 표준을 따르는 것이 중요합니다.
- 모바일 앱 접근성 콘텐츠 제작 기법이란, 사용자가 장애를 갖고 있거나 특정 기능에 제약이 있어도 모바일 앱을 원활하게 이용할 수 있도록 지원하는 방법을 말합니다. 접근성을 고려한 콘텐츠 제작은 다양한 사용자들의 요구를 반영해 앱의 전반적인 사용성을 크게 향상시킵니다.
요약 설명관련 지침 : 사용자 인터페이스 컴포넌트는 보조 기술을 이용하여 사용할 수 있도록 해야 한다.
보조 기술과의 호환성은 모든 사용자 인터페이스 컴포넌트가 TalkBack, VoiceOver 등 보조 기술과 원활하게 상호작용할 수 있도록 설계해야 한다는 의미입니다. 사용자에게 필수적인 정보를 제공하고, 앱을 탐색하고 기능을 사용할 때 필요한 각종 버튼, 링크, 입력 필드 등이 보조 기술을 통해 접근 가능해야 합니다. 모든 UI 요소에 적절한 접근성 속성을 추가하여, 사용자에게 시각적·청각적 피드백이 아닌 정보도 전달될 수 있도록 합니다.WCAG 2.2 Quick Reference - Compatible with Assistive Technologies
"뒤로 가기" 버튼에 접근성 라벨을 설정하여 VoiceOver 사용자에게 명확히 안내.
TalkBack 사용자도 버튼에 "뒤로 가기"라는 라벨이 읽히도록 설정.
손이나 손가락을 사용할 수 없는 사용자들이 UI 컴포넌트를 탐색하고 조작할 수 있도록 설정.
시각장애인 등의 사용자는 모바일 기기에서 제공하는 장애인 보조 기술을 사용하여 애플리케이션을 이용하게 됩니다. 만약 애플리케이션의 사용자 인터페이스 컴포넌트가 보조 기술의 사용을 지원하지 않는다면 보조 기술을 사용하는 장애인은 애플리케이션을 이용할 수 없는 상황에 처하게 됩니다.
애플리케이션에서 보조 기술을 지원하는 가장 효과적인 방법은 기본사용자인터페이스 컴포넌트를 사용하는 것이나 부득이 사용자정의 컴포넌트를 사용할 경우 보조 기술로도 접근할 수 있는 속성들을 반드시 제공해야 합니다.
기본적으로는 사용자 인터페이스 컴포넌트가 어떤 유형(버튼, 슬라이더 등)인지 정보를 제공해야 합니다. 시각장애인의 경우 디자인을 인지할 수 없으므로 컴포넌트의 종류에 따라 조작하는 방법을 선택하게 되므로 사용자 인터페이스 컴포넌트의 유형을 명확히 제공하는 것이 중요합니다.
스크린 리더 등 보조 기술을 통해 화면 내용을 청각적으로 인식하는 사용자.
음성 출력을 인식할 수 없기 때문에 시각적 피드백과 텍스트 정보를 선호하는 사용자.
간결하고 쉽게 이해할 수 있는 사용자 인터페이스를 필요로 하는 사용자.
스위치 제어나 음성 명령을 통해 기기를 제어하는 사용자.
앱이 다양한 보조 기술을 통해 모든 사용자에게 보다 나은 접근성을 제공할 수 있도록 보장.
모든 UI 요소가 TalkBack 및 VoiceOver와 호환되는지 확인합니다.
상태 변화가 보조 기술 사용자에게 적절히 전달되고 있는지 확인합니다.
스위치 제어로 모든 UI 컴포넌트를 탐색하고 사용할 수 있는지 확인합니다.
iOS의 VoiceOver를 켜고, UI 요소가 접근 가능한지 테스트합니다.
iPad 등에서 키보드를 연결하여 모든 요소가 탐색 가능한지 확인합니다.
Android의 TalkBack을 켜고 UI 요소가 제대로 인식되는지 확인합니다.
스위치 제어 장치를 사용해 UI 탐색이 가능한지 확인합니다.
NVDA 또는 JAWS와 같은 스크린 리더를 사용해 UI 컴포넌트의 접근성을 점검합니다.
모든 UI 컴포넌트가 키보드로 탐색 가능한지 확인합니다.
Vue.js 앱에서 ARIA 속성이 적용된 컴포넌트가 스크린 리더와 호환되는지 점검합니다.
React에서 개발된 UI 요소가 스크린 리더와 호환되는지, 자동화된 접근성 도구로도 점검합니다.
보조 기술 사용자 테스트를 통해 모든 UI 컴포넌트가 호환성 요구사항을 충족하는지 평가.
모든 UI 요소가 스위치 제어로 탐색 및 조작 가능한지 여부.
TalkBack 및 VoiceOver에서 모든 UI 요소가 올바르게 설명되고, 상호작용 가능한지 여부.
접근성 라벨과 역할 설정
접근성 라벨과 역할 설정
버튼이나 링크가 TalkBack 및 VoiceOver에서 인식되지 않는 경우.
스위치 제어로 특정 UI 요소를 사용할 수 없는 경우.
TalkBack 및 VoiceOver에서 인식할 수 있는 라벨이 제공되지 않은 경우.
TalkBack 및 VoiceOver에서 읽을 수 있는 라벨이 없는 경우, 보조 기술 사용자가 기능을 이해할 수 없습니다.
상태 변화가 발생할 때 사용자에게 그 변경 사항을 알리지 않으면 혼란이 발생할 수 있습니다.
스위치 제어로 모든 UI를 탐색할 수 있도록 설정해야 합니다.
iOS의 VoiceOver를 켜고, UI 요소가 접근 가능한지 테스트합니다.
스위치 제어 장치를 통해 UI 컴포넌트를 탐색하고 조작할 수 있는지 확인합니다.
Android의 TalkBack을 켜고 UI 요소가 제대로 인식되는지 확인합니다.
Android의 접근성 설정에서 스위치 제어를 활성화하여 UI 탐색이 가능한지 확인합니다.
PC에서 NVDA 또는 JAWS와 같은 스크린 리더를 사용해 UI 컴포넌트의 접근성을 점검합니다.
모든 UI 컴포넌트가 키보드로 탐색 가능한지 확인합니다.
Vue.js 앱에서 ARIA 속성이 적용된 컴포넌트가 TalkBack 및 VoiceOver와 호환되는지 점검합니다.
React에서 개발된 UI 요소가 TalkBack 및 VoiceOver와 호환되는지, 자동화된 접근성 도구로 점검합니다.
출처 : NULI 모바일 앱 접근성 (18. 보조기술과의 호환성)
요약 설명웹 및 모바일 애플리케이션의 접근성을 평가하고 개선하기 위한 다양한 도구와 방법을 소개합니다.
Lighthouse와 WAVE와 같은 웹 접근성 분석 도구를 사용하면 웹 페이지의 접근성을 점검할 수 있고, Android와 iOS에서 활용되는 접근성 도구를 통해 앱의 접근성을 테스트하고 개선할 수 있습니다.
여러 접근성 테스트 도구를 활용하고 웹 및 앱을 지속적으로 개선함으로써, 장애인을 포함한 모든 사용자에게 보다 편리한 환경을 제공할 수 있습니다.
Lighthouse는 구글에서 제공하는 웹 페이지 품질 개선을 위한 오픈 소스로 자동화 도구입니다.
Lighthouse는 사이트의 성능, 접근성, SEO 등에 대한 전반적인 진단을 해줍니다.
상세 설명 :
Lighthouse Overview 공식 문서 참조
웹 페이지의 로딩 속도 등 실제 성능을 측정. 성능의 측정항목은 6가지 Metric으로 정의되며,
각 Metric들은 페이지가 로드되는 속도를 다양한 측면에서 측정합니다.
상세 설명 :
Lighthouse Performance Audits.
Best practices를 따라 개발되었는지 확인
접근성 확인. 폰트 사이즈, 메뉴간 간격 등을 측정
웹과 네이티브 앱의 기능 모두의 이점을 가지도록 만들어진 서비스인지 체크
Search Engine Optimization의 약자로 검색 엔진 수집 최적화 측정
WAVE는 WebAIM에서 만든 확장 프로그램으로 현재 화면의 각 요소가 접근성을 준수하는지 평가합니다. 각 요소가 위반한 내용에 대한 이유와 해결 방법을 제시하여 접근성을 준수하는 개발을 쉽게 할 수 있도록 돕습니다.
Accessibility Scanner는 Android 기기에서 접근성 문제를 탐지하는 Google Play의 앱입니다.
스크린 리더와 같은 보조 기술은 크로미움의 접근성 API를 사용해 웹콘텐츠와 상호 작용합니다.
접근성 API의 기본 모델은 접근성 트리입니다. 접근성 객체의 트리를 통해 보조 기술은 각 속성과 실제 속성값을 탐색하고 필요한 작업을 수행할 수 있습니다.
웹 개발자는 주로 HTML에서 ARIA 속성과 같은 DOM 속성값을 통해 접근성 트리를 만들고 이를 다룹니다.
크롬 개발자 도구에서는 개발자에게 콘텐츠가 보조 기술에 어떤 식으로 전달되는지 이해할 수 있게 접근성 창을 제공하고 있습니다.
DOM 트리 뷰어에서 노드를 선택하면 해당하는 접근성 노드의 속성 정보가 상위 노드, 직계 자식 노드와 함께 창에 표시됩니다.
VSCode 사용 시 별도 확장 설치 후 소스 코드에서 잘못 작성된 부분을 사전에 감지하여 수정할 수 있습니다.
접근성 오류 부분이 있는지 분석해 주는 플러그인이며 서비스 개발 환경이 React라면
실시간으로 JSX 요소에 대한 접근성 규칙을 확인하고 준수할 수 있도록 돕는 패키지를 설치해 개발할 수 있습니다.
기본적으로 추천되는 규칙 외에 예외로 사용하고 싶은 부분이 있다면 같이 서비스를 개발하는 개발자들과 협의하면서
lint 규칙을 만들어가다 보면 접근성을 준수하는 서비스 개발에 도움이 될 것입니다.
상세 설명 :
jsx-eslint/eslint-plugin-jsx-a11y
iOS 앱 개발도구인 xcode에는 Accessibility Inspector 툴을 통해 접근성을 수동 검사할 수 있습니다.
현재 초점이 위치한 요소의 정보를 VoiceOver 음성으로 들려줍니다.
현재 초점이 위치한 곳에서 이전 요소의 정보를 VoiceOver 음성으로 들려줍니다.
현재 초점이 위치한 곳에서 모든 요소를 자동으로 탐색하며 요소의 정보를 VoiceOver 음성으로 들려줍니다.
현재 초점이 위치한 곳에서 다음 요소의 정보를 VoiceOver 음성으로 들려줍니다.
마우스로 요소를 직접 선택하여 탐색합니다.
항목은 Label(대체 텍스트), Value(값), Traits(유형 정보), Identifier(식별자), Hint(힌트 정보), User Input Labels(사용자 입력 텍스트 정보)입니다.
Android 앱 개발도구인 Android Studio 의 Lint를 통해 개발과정에서 접근성을 수동 검사할 수 있습니다.
접근성은 시작은 있지만 끝이 없는 작업입니다.
오류 항목을 정기적으로 점검하여 접근성 개선을 한다면 점차 검사를 할 항목이 줄어들게 될 것입니다.
모두가 차별 없이 서비스를 이용할 수 있도록 접근성 유지를 위한 모두의 노력이 필요합니다.
무엇보다 접근성 작업은 서비스를 제공한다면 선택이 아닌 필수로 지켜야하는 항목임을 잊지 말아야 합니다.