• 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