ARIA 접근성 가이드

KWCAG 2.2 · 6. 운용의 용이성 · 6.5 입력 방식

6.5.4 동작기반 작동

동작기반으로 작동하는 기능은 사용자 인터페이스 구성요소로 조작할 수 있고, 동작기반 기능을 비활성화할 수 있어야 합니다.

KWCAG 2.2신규

한눈에 보기

검사 항목
6.5.4 동작기반 작동
원칙
6. 운용의 용이성
지침
6.5 입력 방식
도입
KWCAG 2.2

요구 사항

기기를 움직이거나(흔들기, 기울이기) 사용자의 움직임(손동작 등)으로 작동하는 기능은 버튼 같은 사용자 인터페이스 구성요소로도 조작할 수 있어야 하며, 의도하지 않은 동작으로 실행되는 것을 막기 위해 동작 기능을 끌 수 있어야 합니다. 예: 흔들어서 실행 취소, 손동작으로 사진 촬영.

예외

  • 접근성 지원 인터페이스: 동작이 안구 마우스처럼 접근성 지원 인터페이스로 기능을 조작하는 데 쓰이는 경우
  • 필수적인 경우: 동작이 기능에 반드시 필요하고, 끄면 기능 자체가 무의미해지는 경우(예: 만보기)

KWCAG 2.2에서 새로 추가된 검사 항목입니다.

왜 필요한가요

휠체어 등에 기기를 고정해 쓰는 사용자는 기기를 흔들거나 기울일 수 없고, 떨림이 있는 사용자는 의도하지 않게 동작 기능을 실행할 수 있습니다.

도움받는 사용자

  • 기기를 거치해 쓰는 지체장애인
  • 떨림·불수의 운동이 있는 사용자
  • 이동 중인 사용자

적용 방법

devicemotion, deviceorientation으로 구현한 기능에는 같은 동작을 하는 버튼과 끄기 설정을 함께 제공합니다.

버튼 대안과 끄기 설정
<button type="button" id="undo">실행 취소</button>
<label><input type="checkbox" id="shake-opt"> 흔들어서 실행 취소 사용</label>
JavaScript
window.addEventListener('devicemotion', (e) => {
  if (!document.getElementById('shake-opt').checked) return; // 사용자가 끄면 무시
  if (isShake(e.accelerationIncludingGravity)) undo();
});
document.getElementById('undo').addEventListener('click', undo);

사례

기울이기 스크롤과 함께 스크롤 버튼·끄기 설정

권장HTML
<button type="button">위로</button><button type="button">아래로</button>
<label><input type="checkbox"> 기울여서 스크롤</label>

흔들어야만 새로고침

비권장JavaScript
window.addEventListener('devicemotion', e => { if (shaken(e)) refresh(); });

자주 하는 실수

  • 흔들기로만 실행되는 기능에 버튼 대안이 없습니다.
  • 동작 기능을 끌 수 없어 휴대 중 의도하지 않게 실행됩니다.

검사 방법

  • 흔들기, 기울이기, 손동작 등 동작으로 실행되는 기능이 있는지 확인합니다.
  • 같은 기능을 버튼 등 화면의 구성요소로 실행할 수 있는지 확인합니다.
  • 동작 기능을 끌 수 있는지, 끈 뒤에는 동작에 반응하지 않는지 확인합니다.

다른 지침의 대응 항목