- Success Criterion 2.5.1
- Conformance level A
Swipe-to-Delete Action With No Tap-Based Alternative
2.5.1 — Pointer Gestures
Scenario
Setting
A video streaming service's show detail page
What’s wrong
Swipe-to-delete/-archive list actions with no tap alternative (long-press menu also counts as alternative only if single-pointer, untimed).
Example
episodeTile.addEventListener('touchmove', trackSwipeDistance);
episodeTile.addEventListener('touchend', () => {
if (swipeDistance < -100) removeDownloadedEpisode(episodeId);
});
// no Remove button exists on the downloaded episode tile itself Why it matters
A viewer who can't complete a long horizontal swipe can never clear a finished episode from this show's downloads, so storage keeps filling up with videos they've already watched.
How to test
Try tapping a delete/archive action instead of swiping: if swipe is the only route (and any long-press menu offered isn't a genuine single-pointer, untimed alternative), it fails.
How to fix
Show the remove action as a persistent button on each downloaded episode tile, not only behind a swipe.
<button aria-label="Remove downloaded episode" onclick="removeDownloadedEpisode(episodeId)">Remove</button> Outcome
A viewer taps Remove on a finished episode and it clears from the show's downloads right there on the page.
Who is affected
Users with limited finger reach, tremor, or a fixed hand position who can't drag consistently.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Feature Requiring a Swipe Gesture With No Tap Alternative
- Swipe-Only Carousel With No Next or Previous Button
- Map or Image Zoomable Only by Pinch Gesture
- Two-Finger Gesture Required With No Single-Pointer Option
- Pull-to-Refresh as the Only Way to Refresh Content
- Slider Operable Only by Dragging, Not by Tapping or Typing