아티클

iOS 13에서 변경된 접근성 기능 알아보기 1부

2019-09-26 13:58:05

안녕하세요, 엔비전스입니다.

우리나라 시간으로 9월 20일 새벽, iOS 13 버전이 출시되었습니다. iOS 13에서는 VoiceOver 자막 패널 설정, UINavigationController에서의 VoiceOver 초점 변경, 네이티브 탭 컨트롤에서 및 일부 접근성 메뉴명에 대한  한국어 번역 변경 등 여러 접근성 변화가 있었습니다. 따라서 본 아티클에서는 iOS 12의 접근성 알아보기에 이어 iOS 13에서 변경된 접근성 기능에 대해 함께 살펴보도록 하겠습니다. 1부에서는 iOS 13 버전으로 접근성을 테스트하시는 분들을 위해 참고해야 할 기능들을 주로 다루고 2부에서는 그 외 일반적인 업그레이드된 기능들을 다룹니다.

 

접근성 메뉴 위치 변경

iOS 12까지는 접근성 메뉴(손쉬운 사용)가 설정 > 일반 하위에 있었습니다. 그러나 iOS 13 버전부터는 접근성 메뉴가 설정 초기 메뉴 안에 위치하게 되었습니다. 접근성이라는 항목도 하나의 대 메뉴 중 하나로 배치했다는 측면에서 해당 메뉴 구조 개편은 큰 의미가 있다고 여겨집니다. 접근성 메뉴 자체도 구조를 많이 변경했습니다. 시각, 청각, 신체 및 동작 지원, 일반 등으로 장애 유형별 접근성 기능 배치는 예전과 비슷하지만 iOS 12까지 제공되던 한 화면에 더 많은 섹션을 제공하는 것과는 달리 기능들을 그룹화하여 더  많은 하위 메뉴를 두었습니다.

 

UINavigationController 적용 시 초점 변경

아이폰의 환경설정 화면과 같이 뒤로 이동하는 버튼에 이전 화면의 제목을 함께 읽어주는 경우는 대개 UINavigationController를 사용한 경우입니다. 일반적으로 두 손가락 문지르기를 통해 뒤로 버튼으로 이동되게 하려면 AccessibilityPerformEscape 메서드를 사용해야 하지만 UINavigationController를 사용한 경우에는 자동으로 해당 제스처가 적용됩니다. 그런데 iOS 12까지는 UINavigationController가 적용된 화면에 들어왔을 때 화면의 가장 첫 요소인 뒤로 버튼에 포커스 되었지만 iOS 13부터는 해당 화면의 머리말 다음에 있는 첫 요소로 포커스 됩니다. 이는 UINavigationContorller가 삽입된 화면에서 콘텐츠를 조금 더 빠르게 탐색할 수 있도록 하려는 의도로 보입니다. 따라서 사용자는 해당 화면에 진입하면 가장 먼저 뒤로 버튼이나 화면의 제목 헤딩이 아닌, 그 화면의 첫 요소를 듣게 됩니다. 다만 화면에 진입했을 때 콘텐츠가 바로 로딩되지 못할 때는 종전처럼 뒤로 버튼에 포커스 됩니다. 이것은 안드로이드 최신 TalkBack에서의 ‘향상된 포커스’ 기능과 유사합니다.

 

탭 컨트롤 및 기타 한국어 번역 관련

앱 하단에 네이티브 탭 컨트롤을 구현할 경우 VoiceOver는 요소 유형인 ‘탭’과 총개수를 함께 읽어주었습니다. 그런데 영어로는 ‘tab, 1 of 3’과 같이 음성 출력하였으나 iOS 12까지는 한국어의 경우 ‘탭, 1/3’과 같이 음성 출력하였습니다. iOS 13으로 넘어오면서 해당 부분을 수정하여 ‘탭, 총 3개 중 1개’와 같이 번역 스트링이 수정되었습니다. 따라서 커스텀 탭 컨트롤을 구현하는 경우 ‘1 of 3’과 같이 네이티브 탭 컨트롤처럼 탭 컨트롤의 총개수를 읽어주게 하려면 AccessibilityValue 속성을 사용하여 값을 추가하게 되므로 한국어 역시 AccessibilityValue에 ‘총 3개 중 1개’와 같이 값을 삽입하면 네이티브 탭 컨트롤과 같이 음성 출력하게 됩니다. 개인적으로는 ‘탭, 총 세 개 중 첫 번째’와 같이 번역을 수정했으면 하는 아쉬움이 있습니다.

또 다른 변경의 번역으로는 접근성 메뉴명입니다. iOS 12에서는 음성 출력 수준을 어느 정도로 할 것인지를 설정하는 verbosity를 ‘말수’로 번역했는데 ‘상세 정도’로 변경함으로써 기능에 대한 좀 더 직관적인 이해를 할 수 있도록 하였습니다.

 

자동 언어 감지

‘HTML LANG 속성과 스크린 리더’ 아티클에서 다룬 바와 같이 스크린 리더마다 처리 방식이 다르긴 하지만 기본적으로 HTML의 주 언어 명시에 따라 읽어주는 음성 엔진이 다르게 동작합니다. 모바일 네이티브 앱에서도 iOS의 AccessibilityLanguage, 안드로이드에서의 LocaleSpan을 사용하여 언어를 명시한 경우에는 그 언어에 해당하는 TTS가 설치된 경우 해당 TTS로 음성 출력합니다. 그런데 문제는 특히 웹페이지에서 주 언어 명시가 잘못된 경우가 너무 많다는 것입니다. 그래서 한글 웹페이지인데 주 언어 명시가 잘못되어 영문 TTS로 한글 페이지를 읽는 사례가 많아 불편함을 느낀 스크린 리더 사용자가 많았습니다. iOS 13에서는 이를 해결하고자  언어 자동 감지 기능을 온/오프 할 수 있는 기능을 추가하였습니다. 따라서 자동 언어 감지를 ‘끔’으로 설정하면 HTML의 lang 속성이나 iOS 네이티브 앱에서의 accessibilityLanguage 속성에 구애받지 않고 현재 선택된 음성엔진으로 모든 언어를 다 읽어주게 됩니다.

 

자막 패널

스크린리더 음성에 익숙지 않은 비장애인의 경우 접근성 테스트 등의 목적으로 VoiceOver 사용 시 스크린 리더의 음성을 알아듣기 어려운 경우가 종종 발생하곤 합니다. 그래서 Windows 스크린리더, 안드로이드의 TalkBack, MacOS의 VoiceOver 등에서는 자체적으로 음성 출력 뷰어 기능을 제공해 왔습니다. iOS 13에서는 VoiceOver에서도 자막 패널 기능을 지원합니다. 자막 패널을 ‘켬’으로 설정하면 VoiceOver에서 음성 출력하는 모든 내용(레이블, 요소, 상태, 힌트 메시지 등)을 화면 하단에 출력하여 스크린 리더가 읽는 내용을 정확하게 확인할 수 있습니다. 읽어주는 내용이 화면 상으로 출력되었다가 다시 사라지는 안드로이드의 TalkBack의 개발자 설정 중 음성 출력 표시 기능과는 달리 VoiceOver의 자막 패널은 출력된 텍스트가 다른 텍스트로 바뀌기 전까지는 고정되어 있습니다.

댓글 0
댓글을 작성하려면 해주세요.