모바일 앱 접근성 지침 · 6. 운용의 용이성 · 6.5 입력 방식
6.5.2 포인터 입력 취소
단일 포인터로 실행되는 기능은 누르는 순간(다운 이벤트)에 실행되지 않고, 실행 전 중지나 실행 후 취소가 가능해야 합니다.
KS X 3253:2025신규
한눈에 보기
- 검사 항목
- 6.5.2 포인터 입력 취소
- 원칙
- 6. 운용의 용이성
- 지침
- 6.5 입력 방식
- 도입
- KS X 3253:2025
요구 사항
단일 포인터 입력으로 실행되는 기능은 실수로 실행되는 것을 막기 위해 다음 중 하나 이상을 지켜야 합니다.
- 다운 이벤트만으로 실행 금지 — 누르는 순간(down-event)만으로 기능이 실행되지 않아야 합니다.
- 중지 또는 실행 취소 — 기능은 손을 뗄 때(up-event) 완료되어야 하며, 실행 전에 중지하거나 실행 후에 취소할 수 있어야 합니다.
- 되돌리기 — 다운 이벤트로 실행된 기능은 업 이벤트로 되돌릴 수 있어야 합니다.
예외 — 화면 피아노 건반, 슈팅 게임처럼 기능을 완료하는 데 다운 이벤트가 반드시 필요한 경우.
개정 내역: 2025년 개정에서 새로 추가된 검사 항목입니다.
왜 필요한가요
잘못 눌렀다는 것을 알았을 때 손가락을 컨트롤 밖으로 옮겨 취소하거나 결과를 되돌릴 수 있어 우발적인 오동작이 줄어듭니다.
도움받는 사용자
- 손떨림·운동 장애가 있는 사용자
- 저시력인
- 인지장애인
적용 방법
표준 버튼과 클릭 리스너는 손을 뗄 때 실행되고 영역 밖으로 끌면 취소됩니다. 터치 이벤트를 직접 처리할 때 ACTION_DOWN·touchesBegan에서 실행하지 않습니다.
// 비권장: 누르는 순간 실행
view.setOnTouchListener { _, e -> if (e.action == MotionEvent.ACTION_DOWN) sendMessage(); true }
// 권장: 표준 클릭(업 이벤트, 영역 밖으로 끌면 취소)
view.setOnClickListener { sendMessage() }// 비권장: .touchDown
button.addTarget(self, action: #selector(send), for: .touchDown)
// 권장: .touchUpInside (밖으로 끌어 놓으면 실행되지 않음)
button.addTarget(self, action: #selector(send), for: .touchUpInside)// 비권장: onPressIn={send}
<Pressable onPress={send} accessibilityRole="button" accessibilityLabel="보내기" />사례
누르는 즉시 결제
onTouchDown → 결제 실행 (손가락을 밖으로 빼도 취소 불가)업 이벤트에 실행 + 되돌리기
onClick → 삭제 실행 → 스낵바 "삭제했습니다 [실행 취소]"자주 하는 실수
- 터치 다운 이벤트에서 전송·결제·삭제 같은 기능을 실행합니다.
- 되돌릴 수 없는 기능에 취소나 확인 단계가 없습니다.
검사 방법
- 각 버튼을 누른 채 손가락을 버튼 밖으로 옮긴 뒤 떼어, 기능이 실행되지 않는지 확인합니다.
- 누르는 순간 실행되는 기능은 업 이벤트로 되돌릴 수 있는지, 또는 다운 이벤트가 필수인 예외인지 확인합니다.