- 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의 컴포넌트들을 조합하면 자동으로 해준다!
- 이미지도 지원해준다. -> 하지만 기본 값은 이미지 이름을 말해줄 뿐이다.
- 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로 접근성을 검사하라.