More Accessible in iOS

Hoontopia
hoontopia
Published in
4 min readJan 19, 2019

* Mobile Accessibility (모바일 접근성) 이란?

Mobile(모바일) + Accessibility(접근성) 으로 다음과 같이 정의를 내렸다.

“모바일 기기 또는 어플리케이션의 설계 및 구현 단계에서 사용자를 보조하는 다양한 기능을 고려하여 제공함으로써, 사용자가 모바일 기기를 보다 편하게 사용 할 수 있게 하는 정도”

모바일 OS인 iOS와 Android는 더 나은 접근성을 보장하기 위하여 갖춰놓은 기능 들이 있는데, 대표적으로 시각장애인 들을 위한 Voice-Over (iOS), Talk-Back (Android) 이 있다.

지금부터 iOS에서 제공하는 Voice-Over의 경우에, Application 단에서 더욱 더 Accessible하게 동작하도록 하기 위한 방법 들을 알아보자.

먼저, 대체 텍스트와 초점에 대해 알아두어야 한다.

1. 대체 텍스트 (Accessibility Label)

- 이미지의 표현 또는 이미지를 설명하는 텍스트

2. 초점 (Accessibility Focus)

- 화면상의 선택된 사용자 인터페이스 컴포넌트의 내용을 보조 기술을 통해 이용할 수 있도록 도와주는 기능

- 선택된 사용자 인터페이스 컴포넌트는 초점이 적용되고, 초점은 화면 상에서 테두리나 하이라이트로 표시

예를 들어, 짱구 이미지에 대체 텍스트를 “짱구”로 설정 하였고 초점이 이미지로 이동 했을 경우 Voice-Over가 “짱구”라고 낭독하여 짱구 이미지임을 알 수 있도록 한다.

스탠다드 UIKit 컨트롤 들과 뷰 들은 자동적으로 Accessible 하므로, 사실 스탠다드 UIKit 컨트롤만 사용한다면 추가적인 작업을 많이 할 필요가 없다.

하지만! 커스텀 뷰를 사용한다면, 다음과 같이 직접 뷰 들을 Accessible 하도록 보장해야 한다!

1. 인터페이스 빌더를 사용하여 Accessible하게 만들어주는 방법

위와 같이 Identity Inspector에서 Accessibility Enabled를 체크하는 경우, Voice-Over가 인식하여 초점 이동이 가능하게 되며, Label이나 Hint에 텍스트를 설정 한 경우 해당 텍스트로 음성 안내를 하게 된다.

* Traits

- 사용자 인터페이스 요소의 동작을 설명한다. 예를 들면, 인터페이스 요소가 이미지이며 사용자가 탭 시 사파리에서 링크를 연다면, Image와 Link trait을 조합하여 특성을 나타낼 수 있다.

- Traits은 한개 이상 선택이 가능한데, Button, Link, Search Field, Keyboard Key는 상호배타적이다.

2. 코드 작성을 통하여 Accessible하게 만들어주는 방법

내용 변경이 잦은 경우, 인터페이스 빌더만 사용하기에 한계가 있다.

때문에 코드 작성을 통하여 동적으로 셋팅 해주어야 하는데, 다음과 같은 UIAccessibility(UIKit의 컨트롤들과 뷰들은 디폴트로 구현하고 있음)의 인터페이스를 사용하면 된다.

- isAccessibilityElement

디폴트 값은 false이며, true로 Voice-Over가 인식한다.

- accessibilityLabel

대체텍스트를 설정 할 수 있다.

추가적인 내용은 다음의 링크에서 확인 가능하다!

https://developer.apple.com/documentation/uikit/accessibility/uiaccessibility

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/iPhoneAccessibility/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008785

https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/SupportingAccessibility.html

--

--