성공기준 이해 2.5.7:끌기(Dragging) 동작 (Level AA)
요약
- 목표
- 사용자 작업을 끌기에 의존하지 않는다.
- 할 일
- 끌기와 관련된 모든 작업의 경우 간단한 포인터 대체 수단을 제공해야 한다.
- 중요성
- 어떤 사람들은 마우스로 항목을 끌기를 이용할 수 없다.
의도
이 성공 기준의 목적은 드래그 동작을 사용하는 기능이 요소를 끄는 데 필요한 능력 없이도 또 다른 단일 포인터 작동 방식을 갖도록 하는 것이다.
어떤 사람들은 끌기 동작을 정확한 방식으로 수행할 수 없다. 다른 사람들은 트랙볼, 헤드 포인터, 시선 추적 시스템 또는 음성 제어 마우스 에뮬레이터와 같은 특수하거나 개조된 입력 장치를 사용하므로 끌기가 번거롭고 오류가 발생하기 쉽다.
인터페이스가 끌기 동작을 사용하는 기능을 구현하면 사용자는 네 가지 개별 작업을 수행한다.
- 탭이나 클릭하여 시작점을 설정한 다음
- 길게 눌러 그 접촉 대상을 잡고 있는 동안
- 포인터 위치 조정을 수행하고
- 끝점에서 포인터를 놓는다.
모든 사용자가 해당 접촉 대상을 정확하게 누르고 있으면서 포인터 위치를 변경할 수 있는 것은 아니다. 포인터(마우스, 펜, 터치 접촉)를 사용하는 운동 장애가 있는 사용자가 기능을 사용할 수 있도록 대체 방법이 제공되어야 한다.
터치 스크린 장치를 사용하는 사람은 실제 키보드를 사용하지 않을 수 있으므로 이 요구 사항은 키보드 접근성과 별개이다. 끌어서 놓는 컨트롤이 발생하면 탭 이동이나 화살표 키와 같은 키보드 관련 상호 작용이 불가능할 수 있다. 그러나 텍스트 입력을 제공하는 것은 끌기 대신 허용되는 단일 포인터 대안이 될 수 있다. 예를 들어, 슬라이더 옆의 입력을 통해 모든 사용자가 슬라이더에 대한 정확한 값을 입력할 수 있다. 이러한 상황에서 터치 사용자에게 나타나는 화면 키보드는 영숫자 값을 입력하는 단일 포인터 수단을 제공한다.
이 기준은 사용자 에이전트에 의해 활성화된 스크롤에는 적용되지 않는다. 페이지 스크롤은 범위에 포함되지 않으며 CSS
overflow
와 같은 기술을 사용하여 콘텐츠 섹션을 스크롤 가능하게 만드는 것 또한 적용되지 않는다.
다른 요구사항과의 관계
성공 기준 2.1.1 키보드 및 2.1.3 키보드(예외 없음)에서는 키보드에 액세스할 수 있으려면 끌기 기능이 필요하다. 그러나 끌기 작업에 대한 키보드 동등성을 달성한다고 해서 자동으로 이 성공 기준을 충족하는 것은 아니다. 클릭이나 탭만으로는 작동하지 않는 끌기 및 키보드 컨트롤로 작동하는 인터페이스를 만드는 것이 가능하다. 단일 포인터 조작으로 키보드 접근성과 조작성을 모두 다루는 끌기 대안에 대해 많은 디자인을 만들 수 있지만 두 가지 요구 사항은 독립적으로 평가되어야 한다.
이 성공 기준은 2.5.1 포인터 제스처 성공 기준에서 다루는 포인터 움직임과 반대로 끌기 동작에 적용된다. 포인터 제스처에는 방향성 경로 기반의 동작과 다중 지점 동작이 포함된다. 반대로 끌기 동작의 경우 실제 경로가 아니라 동작의 시작과 끝 지점만 중요하다.
추가적인 예로 포인터의 다운 이벤트를 통해 포인터 첫 번째 위치에 x/y 직사각형 좌표를 설정하고, 끌어서 이동 후 다음 업 이벤트에서 두 번째 x/y 좌표를 설정하는 선택 직사각형이 있다. 유사한 예는 사용자가 질문과 해당 답변 사이에 선을 그려야 하는 연결식 시험과 같이 화면의 서로 다른 두 항목 사이에 연결선을 그리는 것이다. 이러한 경우 끌기 동작에는 동작에 의존하지 않는 동일한 작업을 수행하기 위한 대체 방법이 필요하다. 예를 들어, 두 번의 별도 탭 또는 클릭 동작으로 직사각형 좌표나 연결선의 시작점과 끝점을 정의할 수 있다.
같은 페이지에서 끌기 동작에 대한 대안
끌기 동작을 통해 기능을 실행할 수 있고 끌기 없이 단일 포인터 접근을 허용하는 동등한 옵션이 있는 경우 이 성공 기준을 통과한다. 기능이 동일하다면 동일한 구성요소일 필요는 없다. 표시기를 끌어서 색상을 변경할 수 있는 색상환을 예로 들 수 있다. 또한 색상 값의 숫자 입력을 위한 텍스트 필드를 사용하면 끌기 동작 없이 색상을 정의할 수 있다. (텍스트 입력은 장치에 구애받지 않는 것으로 간주된다. 목적은 문자를 입력하는 것이지만 텍스트 입력은 음성, 포인터 또는 키보드를 통해 이루어질 수 있다.)
끌기 동작과 경로 기반 포인터 동작의 구별
이 성공 기준에서 다루는 끌기 동작은 시작과 끝점만 중요한 포인터 상호 작용이다. 포인터가 대상과 맞물리면 끄는 방향은 포인터가 대상에서 해제될 때까지 상호 작용에 영향을 주지 않는다. 끌기 동작에는 중간점이 없기 때문에 끌기 동작은 어느 방향으로든 진행될 수습니다. 경로 기반 제스처는 성공 기준 2.5.1 포인터 제스처에서 다룬다.
이점
- 끌기 동작을 수행하는 데 어려움을 겪는 사용자가 포인터 인터페이스를 사용하여 인터페이스를 여전히 조작할 수 있다.
예제
- 지도를 사용하면 사용자가 지도 보기를 드래그할 수 있으며, 지도에는 보기를 이동할 수 있는 위/아래/왼쪽/오른쪽 버튼도 있다.
- 정렬 가능한 요소 목록은 목록 요소를 탭하거나 클릭한 후 간단히 해당 컨트롤을 탭하거나 클릭하여 목록에서 요소를 위나 아래로 이동할 수 있는 인접한 컨트롤을 제공할 수 있다.
- 사용자가 열 간에 항목을 끌어다 놓을 수 있는 작업판은 팝업 메뉴 항목을 탭하거나 클릭하여 선택한 요소를 다른 열로 이동하기 위해 항목을 탭하거나 클릭한 후 열리는 추가 팝업 메뉴도 제공한다.
- 현재 선택한 색상에 대한 마커를 다른 위치로 끌어 값을 설정할 수 있는 방사형 제어 위젯(색상환)을 사용하면 색상환의 다른 위치를 탭하거나 클릭하여 다른 색상 값을 선택할 수도 있다.
- 현재 값을 표시하는 조절기(thumb)를 드래그하여 값을 설정할 수 있는 선형 슬라이더 컨트롤 위젯을 사용하면 슬라이더 트랙의 임의 지점을 탭하거나 클릭하여 값을 변경하고 조절기를 해당 위치로 설정할 수 있다.
- 여러 사람이 있는 사진에서 한 사람에게 선물을 끌어 놓을 수 있는 위젯에는 사용자가 메뉴에서 선물을 받아야 할 사람을 선택할 수 있는 대체 메뉴도 있다.
기법
이 섹션에서 번호가 매겨진 각 항목은 WCAG 실무 그룹이 이 성공 기준을 충족하기에 충분하다고 간주하는 기법 또는 기법의 조합을 나타낸다. 그러나 이러한 특정 기법을 사용할 필요는 없다. 다른 기법 사용에 대한 자세한 내용은 WCAG 성공 기준에 대한 기법 이해, 특히 "기타 기법" 섹션을 참고하라.
충분 기법
오류
다음은 WCAG 실무 그룹에서 이 성공 기준의 실패로 간주하는 일반적인 실수이다.