ARIA 접근성 가이드

속성 · 사용 중단 · 전역

aria-dropeffect

끌어 온 객체를 이 대상에 놓으면 어떤 동작(복사, 이동, 링크 등)이 일어나는지 알리던 속성입니다. ARIA 1.1부터 사용 중단(deprecated)되었습니다.

심화사용 중단

한눈에 보기

구분
속성 (Property)
분류
사용 중단
값 형식
토큰 목록 (token list): copy / execute / link / move / none / popup
기본값
none
적용 범위
모든 요소 (전역 속성)
HTML 대체
HTML 드래그 앤 드롭 API의 dataTransfer.dropEffect (보조기술에 전달되지 않습니다)

설명

aria-dropeffect는 드래그 앤 드롭에서 놓을 대상(drop target)에 붙여, 끌어 온 객체를 놓았을 때 일어나는 동작을 알리던 속성입니다. aria-grabbed와 짝을 이루어 "집은 항목"과 "놓을 수 있는 곳"을 표현하도록 설계되었습니다.

이 속성은 ARIA 1.1에서 사용 중단(deprecated)되었고 ARIA 1.2에서도 같은 상태입니다. 명세는 향후 버전에서 새로운 기능으로 대체될 예정이니 사용 중단된 것으로 취급하라고 안내합니다. 주요 화면낭독기와 브라우저는 이 속성을 거의 지원하지 않았기 때문에, 넣더라도 사용자에게 전달되는 정보가 사실상 없습니다.

더 근본적인 이유는 이 속성이 정보를 전달할 뿐 조작 방법을 제공하지 않는다는 점입니다. 키보드 사용자나 화면낭독기 사용자는 마우스로 끌 수 없으므로, "여기에 놓으면 이동됩니다"라는 정보보다 끌지 않고도 같은 결과를 얻는 방법이 필요합니다. WCAG 2.2의 2.5.7 드래그 동작(AA)은 드래그로 하는 기능에 한 번의 포인터 동작으로 할 수 있는 대체 방법을 요구합니다.

대체 방법은 다음과 같습니다.

  • 버튼으로 옮기기: 각 항목에 "위로 이동"·"아래로 이동" 버튼이나 "다른 목록으로 이동" 메뉴를 둡니다. 가장 단순하고 지원이 확실합니다.
  • 키보드 조작 제공: APG "Rearrangeable Listbox" 예제처럼 listbox에서 항목을 선택한 뒤 버튼이나 단축키로 순서를 바꿉니다. 선택 상태는 aria-selected, 집기·놓기 상태가 필요하면 aria-pressed를 가진 토글 버튼으로 표현합니다.
  • 결과 알리기: 이동이 끝나면 status 라이브 리전으로 "사과를 3번째로 옮겼습니다"처럼 알립니다(aria-live).
  • 필요하면 이름·설명 보충: 사용 방법은 aria-describedby로, 단축키는 aria-keyshortcuts로 알립니다.

검수할 때는 이 속성이 남아 있다면 제거를 권고하고, 드래그 앤 드롭 기능이 키보드만으로도 실행되는지, 드래그 없이 클릭(탭)만으로 같은 결과를 얻을 수 있는지(WCAG 2.5.7), 결과가 화면낭독기에 안내되는지 확인합니다.

값

값
값의미
copy원본의 복사본이 대상에 놓입니다.
execute끌어 온 객체를 입력으로 대상이 지원하는 기능이 실행됩니다.
link끌어 온 객체에 대한 참조(바로가기)가 대상에 만들어집니다.
move원본이 원래 위치에서 제거되어 대상으로 옮겨집니다.
none 기본값놓을 수 없습니다. 다른 값과 함께 쓰면 무시됩니다.
popup놓을 때 동작(복사·이동 등)을 고르는 팝업 메뉴나 대화상자가 나타납니다.

사용 예

사용 중단된 방식

비권장HTML
<!-- 비권장: ARIA 1.1부터 사용 중단, 보조기술 지원 거의 없음 -->
<ul aria-label="할 일">
  <li draggable="true" aria-grabbed="true">보고서 작성</li>
</ul>
<ul aria-label="완료" aria-dropeffect="move">...</ul>

대체: 버튼으로 옮기기

권장HTML
<ul aria-label="할 일">
  <li>
    보고서 작성
    <button type="button" aria-describedby="move-help">완료로 이동</button>
  </li>
</ul>
<p id="move-help" hidden>항목을 완료 목록으로 옮깁니다.</p>
<p role="status" id="move-status"></p>

이동 결과 알리기

JavaScript
function moveToDone(item) {
  doneList.appendChild(item);
  document.getElementById('move-status').textContent =
    item.firstChild.textContent.trim() + ' 항목을 완료로 옮겼습니다.';
}

화면낭독기에서는

화면낭독기 안내 예시 (표현은 화면낭독기·브라우저·버전에 따라 조금씩 다릅니다)
상황들리는 안내 (예)
aria-dropeffect가 있는 목록에 도달완료, 목록 (대부분의 화면낭독기는 드롭 효과를 안내하지 않음)
대체 방식: "완료로 이동" 버튼을 누름보고서 작성 항목을 완료로 옮겼습니다.

사용 지침

이렇게 쓰세요

  • 기존 코드에 남아 있다면 제거하고, 키보드로 조작할 수 있는 대체 방법을 제공합니다.
  • 드래그 기능에는 클릭·탭 한 번으로 할 수 있는 대체 수단을 둡니다(WCAG 2.5.7).
  • 이동·복사 결과는 라이브 리전으로 알립니다.

이렇게 쓰지 마세요

  • 새 코드에 aria-dropeffect를 쓰지 않습니다.
  • 이 속성을 넣었다는 이유로 드래그 앤 드롭이 접근 가능하다고 판단하지 않습니다.
  • 마우스 드래그로만 동작하는 기능을 만들지 않습니다.

사용할 수 있는 역할

전역 속성이므로 모든 역할과 HTML 요소에 쓸 수 있습니다. 특히 다음 역할과 자주 함께 씁니다.

이 속성을 쓰는 패턴

참고 자료