[iOS] 접근성 (Accessibility)

Stanford — Developing iOS 10 Apps with Swift — 17. Accessibility 강의 정리 글

naljin
4 min readJan 13, 2021

애플에서는 학습, 동작, 시각, 청각 등의 문제를 겪고 있는 사람들을 위해 아래와 같은 접근성 기능을 제공한다.

Voice Over

isAccessibilityElement: Bool

  • label이나 button 은 기본으로 true지만 imageView 등은 아님.
  • false 로 설정되면 해당 element 에 대해서는 voice over trigger 안됨

accessibilityLabel: String?

  • 접근성 문구.
  • button의 경우 image 가 있다면 해당 image 이름으로 label 이 설정되기 때문에 따로 설정이 필요할 수 있음.

accessibilityTraits: UIAccessibilityTraits

  • button, header, image 등 해당 element 의 카테고리 특성을 나타냄.
  • [accessibilityLabel + accessibilityTraits] 형식으로 보이스 오버 출력

accessibilityValue: String?

  • state 가지고 있는 것에 대해 설정.
  • Ex) 슬라이더 50%로 설정되어있으면 “50%”로 설정

accessibilityHint: String?

  • 설명의 긴 버전.
  • 해당 인터페이스를 사용해본적이 없어서 어떻게 사용하는게 좋은지에 대한 설명 부여.
  • 하지만 끌 수 있기(turn off) 때문에 유저에게 중요한 정보는 담으면 안됨.
  • Ex) 볼륨을 조절하려면 스와이프 up 혹은 down 하세요

accessibilityFrame: CGRect

  • 접근성 설정된 element의 위치 지정 가능

accessibilityElements: [Any]?

  • container에 있는 여러 접근성 elements 들 담을 수 있음.
  • 설정 > 손쉬운 사용 > VoiceOver

Color

  • 색맹의 경우 Color 로 의미를 구분하기 어려울 수 있으므로 모양까지 다르게 하는 것 고려.

Transparency and Contrast

  • 시력에 문제 있는 사람에게 투명도 줄이기 / 대비 증가 설정은 훨씬 더 가독성 높게 만듦

투명도 줄이기

  • UIAccessibility.isReduceTransparencyEnabled 로 설정 여부 체크 가능.
  • 설정 > 손쉬운 사용 > 디스플레이 및 텍스트 크기 > 투명도 줄이기

대비 증가

  • UIAccessibility.isDarkerSystemColorsEnabled 로 설정 여부 체크 가능.
  • 설정 > 손쉬운 사용 > 디스플레이 및 텍스트 크기 > 대비 증가

Motion

  • 전정기관에 문제 있는 사람들은 화면에 나타나는 motion 이 클 경우에 문제가 될 수 있음
  • UIAccessibility.isReduceMotionEnabled 로 설정 여부 확인 후에 부드럽게 전환한다든지 등의 처리 가능
  • 설정 > 손쉬운 사용 > 동작 > 동작 줄이기

Dynamic Type

  • 시력 문제로 큰 글씨를 선호하는 사람들이 있음
  • label.font = UIFont.preferredFont(forTextStyle: .body) 이런식으로 preferredFont 함수 사용. 이 함수를 통해 반환되는 폰트는 Apple San Francisco 이고, 안에 인자로 들어가는 FontStyle 에는 body, title, callout 등 다양한 point 와 weight 에 대당하는 case 제공
  • 추가로 label의 adjustsFontForContentSizeCategory = true 로 설정해줘야 유저가 설정을 바꿀때마다 폰트 사이즈가 자동으로 변경. iOS 9 이전에는 UIContentSizeCategoryDidChange 노티피케이션을 보고있으면서 수동으로 폰트를 업데이트 했어야 했음.
  • preferredContentSizeCategory 속성 접근해서 사용자가 선호하는 글꼴 사이즈 옵션을 가져올 수도 있음.
  • 유동적 글자크기를 위해서 커스텀 폰트를 조정하는 일을 쉽게 하기 위해서 Apple은 iOS 11에서 UIFontMetrics를 제공.
  • 설정 > 손쉬운 사용 > 디스플레이 및 텍스트 크기 > 더 큰 텍스트

출처

https://pilgwon.github.io/blog/2017/08/23/Using-A-Custom-Font-With-Dynamic-Type.html

--

--