본문 바로가기

2.5.2 포인터 입력 취소

(Level A)

목표
마우스나 터치로 인한 의도하지 않은 컨트롤의 활성화를 줄인다.
할 일
포인터 입력 취소가 예측 가능하고 동작이 동일하도록 해야한다.
중요성
누구든지 의도하지 않은 동작으로부터 쉽게 돌아올 수 있도록 한다.

성공 기준(SC)

단일 포인터로 조작할 수 있는 기능은 다음 중 한 가지 이상을 준수해야 한다.

다운 이벤트 실행 금지(No Down-Event)
포인터의 다운 이벤트가 발생할 때 어떤 기능도 실행해서는 안 된다.
중지 또는 실행취소
기능의 완료는 업 이벤트(Up-event)에서 이루어지고 완료되기 전에는 기능을 중단시키는 수단이 제공되거나 실행 후 취소할 수 있는 매커니즘을 제공해야한다.
업 이벤트로 되돌리기
포인터의 업 이벤트는 앞서 발생한 다운 이벤트 결과를 되돌려야한다.
필수적인
다운 이벤트에서 기능을 완료하는 것이 필수적이다.

참고

키보드 또는 숫자 키패드 누르기를 에뮬레이션하는 기능은 필수적인 것으로 간주한다.

참고

이 요구사항은 포인터 동작으로 실행되는 웹 콘텐츠에 적용된다. (즉, 사용자 에이전트나 보조 기술을 조작하기 위해 필요한 동작에는 적용되지 않는다.)

이 성공기준의 목적은 사용자의 잘못된 포인터 입력 실수를 쉽게 예방하는데 있다. 다양한 장애가 있는 사용자는 의도하지 않게 터치나 마우스 이벤트를 발생해 원하지 않는 결과를 낳을 수 있다. 다음 각 하위 섹션은 이 성공 기준의 각 항목과 대체로 일치하며, 사용자의 포인터 동작 취소 방법을 간단히 설명한다.

포인터 취소를 만드는 가장 접근성 좋은 방법은 업 이벤트에서 활성화하는 것이다.

업 이벤트 활성화란 포인터를 놓을 때 활성화 되는것을 의미한다. 터치스크린 상호작용에서 손가락이 대상에 닿아도 활성화 되지않으며, 대상 영역 내에서 손을 뗄 때만 업 이벤트가 발생한다. 마우스 상호작용도 마찬가지로 마우스 버튼을 눌렀을 때 설정 된 대상의 영역 내에 커서가 있는 상태에서 버튼을 뗄 때 업 이벤트가 발생한다.

저작자는 업 이벤트로 기능이 활성화/클릭되는 일반적인 환경을 이용해서 사용자의 의도치 않은 실행을 줄일 수 있다. 예들를어, Javascript click 이벤트는 마우스 주(왼쪽) 버튼을 놓을 때 발생하며, 암묵적 업 이벤트의 예시이다. 이름과 다르게 클릭 이벤트는 특정 장치 종속성이 없고 터치나 키보드 상호작용에서도 같은 방식으로 동작한다.

업 이벤트를 우선하는 이유는 이 성공기준 첫 항목에 내포되어있다. 포인터의 다운 이벤트가 발생할 때는 어떤 기능도 실행해서는 안 된다. 저작자는 업 이벤트만 사용해 이 첫 항목을 준수할 수 있다.

상호작용이 단순 “클릭”과 같을 때, 업 이벤트 활성화에는 취소기능이 내장되어 있다. 화면을 터치하는 시점과 손가락을 떼는 시점은 서로 구분된다. 마찬가지로 마우스 상호작용도 마우스 버튼을 누른 시점과 떼는 시점은 서로 다르다. 포인터를 놓을 때만 활성화 된다면 사용자는 이 활성화를 중단(취소)할 수 있다. 마우스나 터치스크린을 정확하게 쓰기 어려운 사람은 이러한 기본방식이 큰 도움이 된다. 이런 사람은 일반적으로 항목을 누를 때 시각적 피드백을 받는다. 만약 잘못된 항목을 선택한걸 알면 포인터나 손가락을 대상에서 벗어나 이동 후 놓아 이 동작을 취소할 수 있다.

끌어서 놓기 같은 더 복잡한 상호작용은, 다운과 업 이벤트가 한 과정을 완료하기 위해, 여러 단계 동작을 각각 시작하고 종료 할 수 있다. 예를들어 끌어서 놓기는 다음 항목과 같은 상태이다.

  1. 눌러서 선택 (다운-이벤트)
  2. 누른걸 유지해 새 위치로 이동한 후,
  3. 떼면서 (업-이벤트)로 놓기 동작을 완료한다.

이런 복잡한 동작에서는 중단 또는 실행취소 기능의 필요성이 증가한다. 디자이너는 확인 대화 상자나 실행취소 버튼과 같은 방법으로 이동을 확인하도록 선택할 수 있으며, 이를 통해 사용자는 방금 완료된 과정을 실행취소 할 수 있다. 또는, 3단계 완료 전에 사용자가 선택 항목을 원래위치로 되돌리고 작업을 끝내는 방식으로 동작을 중단할 수 있다. 화면의 다른 부분이 이동을 허용하지 않는 경우 사용자는 끌어서 놓기를 그곳에서 끝낼 수 있으며 결과적으로 동작은 무효화 된다.

다른 상호작용에서 다운 이벤트가 시작되어도 업 이벤트가 끝날 때 그 동작을 되돌릴 수 있어야한다. 이에 대한 예로 누르고 있기 동작이 이에 포함된다. 사용자가 객체를 누르고 있을 때 일시적인 팝업이 나타나거나(또는 비디오가 재생) 포인터를 누르는 동안(다운 이벤트)에만 표시되다가, 포인터를 놓는 즉시(업 이벤트) 해당 팝업이 사라진다(또는 비디오가 정지). 업 이벤트가 앞에서 발생한 다운 이벤트를 되돌리기에, 사용자는 이전 지점으로 돌아가 사실상 작업은 취소된다.

다운 이벤트에서 기능을 완료하는 것은 업 이벤트를 사용하지 않는것이 필수인 경우에만 허용된다.

가장 흔한 필수 다운 이벤트 활성화는 키보드 에뮬레이션에서 발생한다. 물리 키보드에서는 기본적으로 키에서 다운 이벤트가 활성화된다. - 즉, 키를 누르면 문자가 나타난다. 소프트웨어 키보드 에뮬레이터에서 기대하는 동작을 무시하고 키를 놓을 때 문자가 입력되도록 변경하려면, 그 동작은 예상과 어긋나며 예상 상호작용에 부정적인 영향을 미친다.

키보드에는 백스페이스 또는 삭제 키가 기본적으로 제공되며, 사실상 실행취소 기능을 제공한다. 실행 취소는 다운 이벤트의 필수 예외 요구사항은 아니다. 하지만, 이 성공기준의 필수 요구사항은 아니더라도 사용자에게 어떤 동작을 되돌릴 수 있는 쉬운 방법을 제공하는 게 권장되는 방식이다. (더 나아가 필수적인 기능일 수도 있다)

다른 예로 실행 시점이 중요하기 때문에 다운 이벤트가 필요한 경우가 있다.

  • 화면에 표시된 피아노 키보드를 연주하는 경우, 물리적으로 누르기 동작을 모방하는 활동이 해당된다. 이러한 경우 업 이벤트에서 활성화되면 의도가 크게 벗어나게 된다.
  • 스키드 사격 프로그램처럼 정확한 활동이 핵심인 경우, “업” 이벤트를 기다리면 실행에 필요한 시점이 무효화 된다.
  • 모든 사용자가 대상을 잘못 눌렀을 때 더 쉽게 복구할 수 있다.
  • 컨트롤이 의도하지 않게 활성화되거나 예기치 못한 동작이 실행 될 가능성을 줄여 시각적 장애가 있는 사람, 인지 제한 및 운동장애가 있는 사용자에게 도움이 된다. 복잡한 컨트롤이 활성화 될 경우 해당 동작을 되돌리거나 중단 할 수 있는 의미다.
  • 상황변화를 감지 못하는 사람은 사이트를 탐색하는 동안 방향을 잃을 가능성이 더 낮다.
  • 단일 탭이나 길게 누르기를 입력으로 사용하는 인터페이스 요소의 경우, 해당 요소 내에서 손가락을 떼면 해당 이벤트가 실행된다.
  • 끌어서 놓기 인터페이스는 사용자가 세로로 쌓인 카드를 정렬하기 위해, 포인터로 카드 한장 집어 들고(다운 이벤트), 새로운 좌표로 이동한 뒤, 포인터를 놓으면(업이벤트) 해당하는 새 위치에 카드를 삽입할 수 있다. 놓기 영역 외부에 포인터를 놓으면 동작은 취소된다. 즉, 상호작용이 시작되기 전의 기존 위치로 카드가 다시 돌아간다.

이 섹션에서 번호가 매겨진 각 항목은 접근성 지침 실무 그룹이 이 성공 기준을 충족하기에 충분하다고 간주하는 기술 또는 기술의 조합을 나타낸다. 그러나 이러한 특정 기술을 사용할 필요는 없습니다. 다른 기술 사용에 대한 자세한 내용은 WCAG 성공 기준에 대한 기술 이해, 특히 “기타 기술” 섹션을 참조하라.

다음은 접근성 지침 실무 그룹에서 이 성공 기준의 실패로 간주하는 일반적인 실수이다.

의견 남기기