• accessibility가 뭔가? -> 모든 유저가 앱을 사용할 수 있도록 하는 것
    • 불편이 있는 유저도 앱을 문제없이 사용할 수 있다.
    • 이를 위해서는 개발자가 약간의 수고를 해야한다.
  • accessibility예시
    • voiceover: 스크린 리더. 스크린의 요소들을 읽어준다.
    • voice control(new)
    • full keyboard access(new)
  • 모든 accessibility는 동일한 기술을 기반으로 동작한다 -> 플랫폼에 필요한 정보를 넘기면 알아서 동작한다.
  • 접근성 유저 인터페이스
    • Understandable: label
    • Interactable: action
    • navigable: Ordering and grouping
  • swiftui의 accessibility 자동화
    • swiftui의 선언적 구조 덕분에 많은 부분을 자동화 해준다.
    • 표준 컴포넌트들은 엔간한 기능을 자동으로 지원한다.
    • accessibility notification: voiceover가 화면의 변화를 감지할 수 있도록 하는 기술
      • swiftUI는 자동으로 이를 보내준다.
    • 커스텀 컴포넌트는 어떻게 하지? -> swiftUI의 컴포넌트들을 조합하면 자동으로 해준다!
    • 이미지도 지원해준다. -> 하지만 기본 값은 이미지 이름을 말해줄 뿐이다.
      • label인자를 주면 된다!
      • decorative 하게 텍스트를 이용해도 된다.
    • 이후에는 요소간의 링크를 지원할 것이다.
  • swiftUI accessibility API
    • accessibility(label:) 모디파이어: 라벨 변경
    • accessibility(addTrait:)
    • accessibility(value:)
    • accessibilityAction(named: action:)
  • 원칙
    • understandable: 보여지는 텍스트들이 충분한 정보를 포함하고 있는가?
    • interactable: 커스텀 액션이 인터렉션을 간단하게 만드는가?
    • navigable: 네비게이션 스피드를 늘릴 수 있는가?
  • accessibility tree
    • swiftUI가 호스팅하는 뷰들 중에서 접근성을 지원하는 뷰들로 구성된 트리
    • accesibility group으로 여러개의 accesibility를 하나로 묶을 수 있다.
    • 우선순위 지원도 가능하다.
  • 남은 과제
    • accessibility로 할수 없는 일을 할 수 있게 만들어라
    • accessibility inspector로 접근성을 검사하라.