2.5.7 Dragging Movements
Level AA · added in WCAG 2.2
Anything you can do by dragging must also work with a single pointer and no dragging, such as a tap or click. A keyboard alternative alone is not enough.
Who it helps
People with tremors or weak grip may not be able to hold down a button while moving the pointer. People using a head pointer, eye tracking or voice-controlled mouse grids also struggle to drag.
How to meet it
- Add move up and move down buttons, or a "Move to" menu, to sortable lists and kanban cards.
- Let people click a point on a slider track to set the value, or add plus and minus buttons beside it.
- For drag-to-upload areas, include a regular file input or button.
- Exceptions: dragging is allowed when it is essential, such as freehand drawing. It is also allowed when the browser provides it unmodified, like a native range input.
- Check that your alternative works with a single pointer; a keyboard shortcut alone doesn't meet this criterion.
Examples
<ul class="sortable">
<li draggable="true">Write draft</li>
<li draggable="true">Review</li>
<li draggable="true">Publish</li>
</ul><ul class="sortable">
<li draggable="true">
Write draft
<button type="button" aria-label="Move up: Write draft">Move up</button>
<button type="button" aria-label="Move down: Write draft">Move down</button>
</li>
</ul><div class="drop-zone">
<p>Drag files here, or</p>
<label for="upload">Choose files</label>
<input id="upload" type="file" multiple>
</div>Can a scanner detect this?
No
axe-core has no rule for this criterion, because it can't tell whether a drag action has a single-pointer alternative. You need to find every drag interaction and check that a tap or click can do the same thing.
No automated rule tests this criterion. Check it by hand.
Common mistakes
- Offering arrow key support as the only alternative to dragging.
- Hiding the move buttons until hover, so touch users never see them.
- Building a custom slider thumb that only moves by dragging.
- Assuming a library's drag-and-drop component is accessible without checking it.
Related criteria
Check your own page
See which automated WCAG checks your page fails, with the failing elements and how to fix them.
Reviewed November 2, 2026