Accessibility

Judy·2022년 6월 21일
0

iOS

목록 보기
15/28

Accessibility Inspector

Accessibility Inspector는 앱의 접근성 문제를 쉽게 찾고 진단하고 수정할 수 있는 방법을 제공한다.

접근성 문제 테스트

Xcode Menu -> Open Developer Tool -> Accessibility Inspector -> Target으로 iOS 기기 선택

Inspector의 구성

  • Inspector 탭
  • Audit 탭
  • Settings 탭

Audit 버튼을 누르면 해당 뷰에 대한 잠재적인 접근성 문제 목록이 표시됨

아래 도움말 버튼을 클릭하면 문제에 대해 수행할 작업을 제안해 줌

접근성 문제 해결 예시

문제 1) 의미없는 내용의 VoiceOver

코드로 버튼에 접근성 레이블(accessibilityLable)을 추가하면 됨

cameraButton.accessibilityLable = "Take a photo"

문제2) 액세스할 수 없는 Label

예를 들어 CATextLayer를 사용해 브랜드 이름을 그리는 경우 자체 액세스 가능성을 처리해야 함

-> isAccessibilityElement를 true로 설정해서 접근성 요소임을 알림
-> 의미있는 Label 지정

let textLayer = CATextLayer()

brandTitleBackgroundView.isAccessibilityElement = true
if let brandName = textLayer.string as? String {
	b\brandTitleBackgroundView.accessibilityLable = brandName
}

문제 3) 텍스트의 명암 대비

텍스트의 명암비는 사용자가 선택하기 용이하도록 3.0 이상을 권장
-> Color Constract Calculator를 이용해 텍스트와 배경이 권장 명암비를 충족하는지 확인

Menu -> Windows -> Show Color Constract Calculator


접근성 기능

Hoer Text

저시력자를 위한 Mac 기능으로 마우스 커서 아래에 있는 항목을 크고 선명하게 보여줌

VoiceOver

레이블을 음성으로 읽어줌

"모든 사람이 귀하의 앱에 액세스할 수 있는지 확인하는 데 몇 분을 할애하시기 바랍니다."


Accessibility Label

Accessibility는 Apple의 하드웨어 및 소프트웨어 설계에 내장되어 있다.

"접근성이 인권이며 우리의 핵심 가치 중 하나라고 믿습니다."

VoiceOver, Speak Screen, and Voice Control과 같은 기능에서 앱에 접근할 수 있는 중요한 측면은 버튼, 텍스트 필드, 컨트롤 및 기타 요소에 Label을 지정하는 것!

훌륭한 Label 작성하기

Label: 접근성 요소를 간결하게 식별하는 지역화된 문자열
-> 접근성 요소를 식별
-> 사람이 읽을 수 있고 이해할 수 있는 Label로 앱의 요소에 대한 의미를 전달

context 이해하기

예시) + 버튼

  • 직관적인 의미: 더하기(플러스)
  • 메모장: 메모 추가
  • 쇼핑앱: 즐겨찾기 추가
  • 쇼핑목록 제품별: 해당 제품을 장바구니에 추가

여러 의미로 해석될 수 있으므로 문맥에 따라 의미를 명확하게 해야 함

항상 앱에 Label을 추가하는 것을 잊지말기!
VoiceOver가 바보같은 내용을 읽지 않도록...!

좋은 Label

1. Button, Tab과 같은 요소 자체는 문자열에 넣지 않아도 됨

VoiceOver은 앱의 요소 유형을 알고 있어 알아서 추가해서 읽어줌
ex) "Add Button" -> "Add"

2. UI가 변경되면 Label도 업데이트하기

ex) 버튼의 이미지가 변경될 때

3. 같은 기능이라도 대상이 다르면 명확하게 표현하기

ex) "땅콩 버터 추가하기", "쿠키 추가하기"

4. 의미를 알 수 있다면 불필요한 반복은 피하기

ex) "이전 노래", "노래 재생", "다음 노래" -> "이전", "재생", "다음"

5. 로딩 중과 같은 애니메이션에도 Label을 넣어주기

ex) "로딩 중..."

6. 최대한 간결하게 표현하기

ex) "아이템을 폴더에서 휴지통으로 옮겨 삭제" -> "삭제"


Writing Great Accessibility Labels (WWDC 2019)
Accessibility Inspector (WWDC 2019)

profile
iOS Developer

0개의 댓글