Dragging Movements WCAG 2.5.7: Accessible Alternatives for Sliders, Kanban & Sorting

Learn how to satisfy WCAG 2.2 SC 2.5.7 Dragging Movements. Build accessible single-pointer and keyboard alternatives for complex drag-and-drop interfaces.

Drag-and-drop interactions (such as dragging Kanban cards, adjusting dual-handled price sliders, or reordering list items) require precise motor coordination and continuous pressure. Under WCAG 2.2 Success Criterion 2.5.7 (Dragging Movements - Level AA), any functionality that relies on a dragging movement must provide a single-pointer alternative that operates via simple clicks or taps.

What is a "Dragging Movement"?

A dragging movement occurs when the pointer engages an element on down-press, moves across the viewport while maintaining contact, and releases. Users with tremors, eye-tracking inputs, head pointers, or touchscreens frequently lose contact mid-drag.

Understanding Success Criterion 2.5.7 Dragging Movements

WCAG 2.5.7 does not ban drag-and-drop interactions; it requires that dragging is not the exclusive method of performing an action. An accessible alternative using simple taps or clicks must be available.

Common Problematic UI Patterns

UI Pattern Dragging Mechanism Accessible Single-Pointer Alternative
Reorderable List / Kanban Drag item to new position in column. Up / Down buttons, or dropdown to select target column and position.
Price Range Slider Drag left/right slider thumbs. Clickable numeric input fields or increment/decrement buttons.
Canvas / Whiteboard Pan Click and drag to pan viewport. Directional pan buttons (North, South, East, West) or zoom controls.

Single-Pointer Alternative Strategies

Implementing accessible alternatives improves usability for all visitors:

  • Explicit Action Buttons: Add visible "Move Up" / "Move Down" icon buttons next to each list row.
  • Select Dropdowns: Provide a "Move to..." menu allowing users to choose the destination column or ordinal position.
  • Direct Numeric Input: Pair every graphical slider with an accessible <input type="number"> field.

Accessible Reordering Implementation in Vanilla JS

<!-- Accessible Reorderable Item -->
<li class="reorder-item" draggable="true">
  <span class="item-title">Priority Task #1</span>
  <div class="accessible-controls">
    <button type="button" class="btn-move-up" aria-label="Move Priority Task 1 up">↑</button>
    <button type="button" class="btn-move-down" aria-label="Move Priority Task 1 down">↓</button>
  </div>
</li>

Testing Dragging Accessibility

  1. Pointer Single-Click Test: Attempt to complete all workflow actions using only single left-clicks on a trackpad or mouse without holding the button down.
  2. Touchscreen Tap Test: Verify that mobile users can reorder items or adjust sliders with simple taps.
  3. Keyboard Operation: Confirm that list items can be reordered using keyboard arrow keys and Space/Enter.

Audit Your Website for WCAG 2.2 Compliance Today

Scan your domain in 60 seconds with Rogabot and get instant PR-ready code diffs to prevent ADA lawsuit exposure.

View Pricing Plans