- Success Criterion 2.5.7
- Conformance level AA
- W3C reference F108
Feature Operable Only by Dragging, With No Alternative
2.5.7 — Dragging Movements
Scenario
Setting
A hospital's patient portal appointment scheduler
What’s wrong
Something must be dragged to operate it and there is no click/tap alternative (no 'move to' menu, no buttons).
Example
apptCard.addEventListener('dragstart', handleDragStart);
calendarDay.addEventListener('drop', (e) => bookAppointment(apptCard.id, calendarDay.date));
// no click path to booking exists anywhere on the page Why it matters
A patient who can't perform a sustained drag can't book an appointment on this scheduler at all, no matter how urgent.
How to test
Try to complete the drag operation using only clicks/taps (arrows, a 'move to' menu, or a picker) instead of dragging: if nothing else works, it fails.
How to fix
A 'move to' menu triggered by a click or tap must always exist alongside drag and drop.
apptCard.addEventListener('click', () => openDaySelectMenu(apptCard.id));
// the menu lets the user pick a day and time, then confirm with a tap Outcome
A patient taps the appointment, picks a day from a list, and it's booked without any dragging.
Who is affected
Wheelchair users, people with limited fine motor control, and switch-access users who can't perform drag gestures.
Learn more
- Understanding Understanding document (opens in a new tab)
- Technique Related technique (opens in a new tab)