[iOS] [Swift] 접근성 (Accessbility) for UIKit

JB
4 min readOct 22, 2022

--

접근성(Accessbility)이란?

앱은 모두에게 사용가능해야만 합니다. 그렇다면, 모두에게 접근가능하게끔 디자인하는 것은 모두가 해당 앱을 즐길 수 있다는 의미입니다.

UIKitbuilt-in accessbility 기능을 제공해줍니다. 이는 시각 장애인들의 앱 편의성을 올려줍니다. 대개 이로인해 접근성을 활성화하기위해 추가적인 작업을 하지 않아도 됩니다. 물론custom 하게 접근성을 읽어주게끔 할 수 있습니다. 이러한 접근성을 보다 쉽게 도와주는 VoiceOver 에 대해 먼저 알아봅시다.

VoiceOver 란?

VoiceOver 는 사용자가 화면을 볼 수 없는 경우에도 iPhone 을 사용할 수 있도록 도와주는 제스처 기반 화면 읽기 도구입니다. VoiceOver 는 다음 중 한가지 방법으로 손쉽게 켤 수 있습니다.

  • Siri를 활성화한 다음 VoiceOver 켜줘 또는 VoiceOver 꺼줘라고 말하십시오.
  • 측면 버튼 삼중 클릭하기를 수행하십시오(Face ID 지원 iPhone의 경우)
  • 홈 버튼 삼중 클릭하기를 수행하십시오(홈 버튼이 있는 iPhone의 경우)
  • 제어 센터 사용하기를 수행하십시오

VoiceOver 제스처

  • 오른쪽으로 쓸어 넘기기 를 통해 다음 그룹으로 넘어갈 수 있습니다
  • 이중 탭하기 를 통해 clickable 한 컴포넌트들과의 interaction 을 할 수 있습니다
  • 세 손가락으로 드래그 를 통해 화면을 위아래로 또는 좌우로 움직일 수 있습니다

더 자세한 튜토리얼 이 필요하다면

  • 설정 -> 손쉬운 사용 -> VoiceOver를 켜고 -> VoiceOver 연습을 탭을 통해 튜토리얼을 시작할 수 있습니다.

접근성을 자유자제로 컨트롤하기

실 기기에서는 VoiceOver 를 켜면되지만 시뮬레이터로 테스트하려면 accessbility inspector 를 켜야합니다.

켜는 방법은 Xcode -> Open Developer Tool -> Accessbility Insepctor 를 통해 켜게되면

이러한 accessbility inspector 를 켤 수 있고 이를 통해 접근성을 테스트를 해볼 수 있습니다.

이제 기본적이고 가장 많이사용하는 Accessbility API Property에 대해 알아보겠습니다

isAccessbilityElement

  • 접근성 속성을 읽어줄 지 말지를 정할 수 있는 가장 많이 사용하는 Property 입니다.
  • 기본값은 NO (읽어주지 않는다) 이며 UIKit controls 의 기본값은 YES (읽어준다) 입니다.

accessibilityLabel

  • 해당 컴포넌트로 포커싱이 되면 어떻게 읽어줄 지 커스텀할 수 있게 해주는 Property 입니다.
  • 기본값은 nil 이며 UIKit controls 의 기본값은 문자를 읽어 줍니다.

accessibilityElements

  • 컨테이너에 담겨있고 접근성을 읽어주고 싶은 element 들을 배열로 담을 수 있습니다.
  • 기본값은 nil 입니다.

accessibilityHint

  • element 에 대한 간단한 설명 또는 가이드를 사용하고 싶을 때 사용합니다.
  • 기본값은 nil 입니다.

마치며

애플에서 다행히도(?) built-in accessbility 를 제공해주기 때문에 접근성에 대해 특별히 신경써 주어야하는 부분은 없습니다. 하지만 보다 명확한 접근성을 의도대로 읽어주려면 custom 한 요소들을 입혀 더욱 앱의 완성도를 높일 수 있습니다.

References:

--

--