티스토리 뷰

🍏/Accessibility

[iOS] Switch Control Accessibility

사용자 eungding 2021. 5. 26. 09:16
728x90
반응형

WWDC 20 - App accessibility for Switch Control  를 본 기록 ✏️

 

[1] Switch Control 이란? 

 

스위치 컨트롤(Switch Control)은 

운동 능력이 제한된 사용자(Users with limited motor abilities)가 

하나 이상의 외부 스위치나 버튼을 사용하여 iOS 기기와 상호 작용할 수 있도록 하는 애플 장치에 내장된 기술입니다. 

 

 

사용자는 이 스위치를 이용해서 커서를 이동시키거나 특정 제스쳐(스크롤, 탭, 볼륨조절 등) 할 수 있습니다. 

 

보통 이러한 스위치나 버튼은 휠체어에 장착되고 사용자는 헤드탭(head taps), 혀 클릭(tongue clicks), 빨대 내쉬기(breathing in or out into a straw) 등으로 스위치를 작동합니다. 

 

WWDC에서 보여주신 실제 사용 사례 입니다!

 

https://tv.kakao.com/channel/3395492/cliplink/419407247

 

 

설정 > 손쉬운 사용 > 스위치 제어 (신체 및 동작 지원 section안에 있음)에 들어가서

스위치 제어를 켜볼 수 있습니다.  

(스위치 제어를 키면 오토스캐닝 됩니다!)

 

 

그리고 스위치를 폰이랑 연결하는 것은 

스위치에 들어가서 할 수 있는 것 같아요! 

 

 

 

[2] Switch Control Support

 

그럼 이런 Switch Control을 지원하려면 어떻게 해야할까요?

Switch Control을 위해 별도의 작업을 해야할 필요가 없는 경우가 많습니다. 

접근성 대응을 잘해서 voice over에서 100% accessible 하다면 스위치 컨트롤에도 적합한 앱입니다! 

 

 

 

하지만 VoiceOver에는 적용되지 않는 전문적인 동작이 필요하는 등 

특별히 스위치 컨트롤 사용자를 대상으로 한 앱을 만들고 싶을 수 있습니다. 

이를 위해 관련 API 제공하는데,  API를 살펴보기 전에 고려사항부터 알아봅시다! 

 

[3] Special Considerations 

 

Switch Control 사용자에게 적합한 앱을 만들 때는 

아래 내용을 고려해야합니다. 

 

 

 

1. Timinig

 

자동 스캐너를 사용할 경우 올바른 항목 또는 그룹이 선택될 때까지 기다려야 하는 경우가 많기 때문에 탭 타이밍이 매우 중요합니다.

실수로 mistap을 하게 되면 간단한 작업을 하는데 더 많은 단계를 발생시킬 수 있기 때문입니다. 

 

2. Navigation efficiency and grouping   /  Group elements for scanning efficiency and speed

 

그룹화를 해서 커서 탐색의 효율성과 속도를 높여야합니다. 

 

3. Error-tolerance 

 

(toleracne는 '관용' 이라는 뜻)

일부 스위치 사용자는 떨림 또는 기타 무의식적인 움직임이 있을 수 있습니다. 이는 다른 보조 기술에서 흔히 볼 수 있는 것보다 더 높은 오류율로 이어질 수 있습니다. 모든 데이터를 삭제하거나 로그아웃할 수 있는 옵션이 있는 경우 실수로 한 번 누르면 스위치 제어 사용자에게 상당히 치명적인 영향을 미칠 수 있으므로 오류 허용오차가 매우 중요합니다.

 

4. Confirm destructive behaviors

 

앱에 파괴적인(?) 동작이 있는 지 확인합니다. 

사용자가 모든 데이터를 삭제하거나 계정을 삭제하는 것이 너무 쉬워서는 안 됩니다.

 

5. No Timeout

 

적어도 스위치 제어가 실행 중일 때는 앱에 시간 초과가 발생하지 않도록 하는 것이 좋습니다.
페어링 코드 및 인증 코드를 입력하는 화면에는 보안을 위해 짧은 시간 만료가 발생하는 경우가 많습니다.

그러나 스위치 제어 사용자는 커서 대기 때문에 정보를 더 느리게 입력하고 입력 오류를 수정하는 데 시간이 더 오래 걸리기 때문에 시간 초과가 발생할 수 있습니다.

 

6. Don't keep private user info on screen 

 

스위치 제어 사용자는 휠체어에 장착된 기기를 사용할 수 있으며, 이는 화면을 비공개로 유지하는 것이 더 어려울 수 있다는 것을 의미합니다. 계정 번호나 의료 정보와 같은 개인 정보를 필요한 시간보다 오래 화면에 표시하지 않도록 합니다. 

 

 

[4] API

 

스위치 컨트롤로 하는 게임 앱을 예제로 보여주십니다. 

 

 

 

네모친 부분을 그룹핑하고 싶어서 accessibilityNavigationStyle을 combined로 지정해줬고 

 

 

그룹 안의 순서를 정해주고 싶어서

(4 -> 5 -> 6  순서로 포커스가 이동하도록)

accessibilityElements를 해당 순서로 지정해줬습니다. 

 

 

그리고 설정에 이런 것을 제공해줘서 

카드에 포커스가 가면 자동으로 카드가 뒤집히도록 해볼 것입니다. 

 

 

accessibilityDidBecomeFocused / accessibilityDidLoseFocus 를 사용해주면 됩니다.

 

 

그리고 accessbilityCustomActions 도 추가해줍니다.

그러면 Switch Control의 Top Menu에 나오게 됩니다.

 

 

Select Item을 해주는 노란 스위치를 누르니까

Switch Control Menu가 나오더라구요..! 

 

 

최종 완성 모습은 이렇게 됩니다! 

 

https://tv.kakao.com/channel/3395492/cliplink/419408282

 

그리고 이외에도 유용한 API는 이런 것들이 있습니다. 

 

 

 

 

 

728x90
반응형

'🍏 > Accessibility' 카테고리의 다른 글

[iOS] Reading Content Accessibility  (0) 2021.05.27
[iOS] Visual Accessibility  (3) 2021.05.27
[iOS] Switch Control Accessibility  (0) 2021.05.26
[iOS] Great Accessibility Label  (0) 2021.05.25
[MacOS] Mac Catalyst Accessibility  (0) 2021.05.24
[iOS] Dynamic Type  (0) 2021.05.21
댓글
댓글쓰기 폼