Back to compare picker

Swipe action vs Touch gesture vs List view vs Action menu vs Undo vs Confirmation dialog

Choose swipe action when a horizontal gesture on one row reveals or commits a row-scoped action such as Archive, Mark read, Complete, Pin, Dismiss, or Delete.

Decision dimensions

Dimension Swipe actionTouch gestureList viewAction menuUndoConfirmation dialog
UI or UX UI + UX - Horizontal item-level gesture that reveals or commits row-scoped actionsUI + UX - Touch-first gesture vocabulary and fallback contract for taps, swipes, drags, pinches, and multi-touch interactionsUI + UX - Vertical object-summary browsing surfaceUI + UX - Contextual command list for a resource or selectionUX - Post-action recovery behaviorUI + UX - Consequential alert decision
UI guidance Render swipe action as a row-scoped horizontal gesture with clear direction, action label, background affordance, threshold feedback, cancel behavior, and a visible action-menu or button equivalent.Render touch gesture affordances with visible targets, enough spacing, state feedback, and non-gesture controls for the same outcome when a gesture is path-based, multipoint, hidden, or easy to misfire.Render a labelled vertical list where each row has a strong primary label, concise supporting text, metadata, status, optional leading media, and row-scoped actions with clear hit targets.Render a compact menu of verb-led actions scoped to one resource, row, card, selected set, or page object, with clear section headings, object-aware labels, disabled reasons, and separated dangerous commands.Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance Use swipe action for frequent item-level actions such as archive, mark read, complete, pin, dismiss, or reveal row commands when the row remains understandable without the gesture.Use touch gesture when the product needs direct manipulation on a touchscreen, but treat gestures as part of a larger interaction contract rather than the only way to act.Use list view when scanning and opening object summaries is faster than comparing columns or inspecting large visual cards.Use an action menu when users need several contextual commands without keeping every command visible, and the list itself must explain scope, availability, risk, and outcome.Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.Interrupt users only when the action has a meaningful consequence that cannot be safely recovered afterward.
Good UI A message row reveals Archive on left swipe and More actions on right swipe, shows action labels behind the row, snaps back before threshold, and keeps a More menu for the same commands.A photo viewer supports pinch to zoom, double tap to zoom, plus and minus buttons, a reset button, zoom percent feedback, and a clear pan boundary after zoom.A ticket list row shows TCK-2048 Database backup failed, a one-line incident summary, Critical status, owner, updated time, selected state, and a labelled More actions menu.A Customer actions menu has Manage customer, Data requests, and Account risk sections, with Edit customer, Merge customer, Request data export, and Delete customer separated at the end.Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI A hidden swipe deletes a row immediately with no label, threshold feedback, undo, confirmation, or menu equivalent.A map can only be zoomed with a two-finger pinch and has no plus, minus, or reset controls.A list row shows columns of owner, amount, due date, and status but no headers or column sort state.A More menu contains Open, Edit, View, Delete, Settings, Filter, Owner, and a search box with no sections or object names.A tiny x removes an item with no object-specific recovery label.A popup says Are you sure? with OK and Cancel but does not name the project, notes, or irreversible outcome.
Good UX A user partially swipes a notification, sees Archive and Mark read labels, releases before threshold, and the row snaps back unchanged.A user pinches a diagram to zoom, sees the scale change, releases outside the threshold without committing a rotate gesture, then uses visible Zoom in and Reset controls with one finger.A user filters tickets to Critical, selects two rows, opens the details panel for one ticket, then clears the filter and the selected count and active ticket remain understandable.A user opens Customer actions, chooses Duplicate customer, and receives status that names the customer and keeps focus anchored to the action context.Undo restores the deleted task to the list and reports Quarterly report restored.Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX A user swipes to scroll a horizontally cramped row and accidentally archives a critical alert.A user with a head pointer cannot trigger a two-finger gesture and has no single-pointer alternative.A user selects rows, changes sort order, and the bulk action count still includes hidden rows without saying which rows are affected.A user chooses Delete from a generic row menu and cannot tell whether it deletes the row, account, attached files, or selected customers.A second delete overwrites the first recoverable item without explaining which action Undo affects.Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit Users repeatedly perform simple item-level actions on touch-first rows.A touchscreen interaction needs deliberate design for gesture vocabulary, thresholds, feedback, target sizing, cancellation, and equivalent controls.Users need to scan and act on a collection of objects using compact summaries.A resource, row, card, selected set, or local page object has several contextual commands.The action is common and mistakes are likely.The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when The action is rare, complex, high-impact, non-reversible, or requires review before execution.The gesture is only an implementation detail inside a more specific pattern such as swipe action, pull to refresh, long press, drag and drop, bottom sheet, carousel, or map view.Users need to compare many records across shared attributes.Only one or two commands are needed and visible buttons would be faster.The action has external side effects that cannot be recalled.The action is routine and easily reversible.
Required state Idle row state with visible row identity and discoverable action path.Idle state with visible touch targets, gesture hints when needed, and no reliance on hover.Default list state with label or heading, row count or context, visible row summaries, and primary row identity.Closed trigger or contextual entry point with resource scope.Normal state before the user action.Pre-action state with an explicit consequential trigger.
Accessibility burden Provide a visible or programmatic action equivalent that does not require a path-based gesture.Provide a simple single-pointer alternative for multipoint or path-based gestures unless the gesture is essential.Use semantic list markup for ordinary object lists; use listbox only when rows are options in a single control.Give the trigger or menu an accessible name that includes the resource or selected-set scope.Make the undo control keyboard reachable and programmatically identifiable.Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse Making a hidden swipe the only way to archive, delete, complete, or reveal row actions.Requiring pinch, rotate, two-finger swipe, or shape gestures with no single-pointer alternative.Using list view as a table without column headers or column-state feedback.Treating the action menu as a junk drawer for every command that does not fit elsewhere.Offering undo for an action that cannot actually be reversed.Asking users to confirm every routine action until they stop reading.

Swipe action

UI or UX
UI + UX - Horizontal item-level gesture that reveals or commits row-scoped actions
UI guidance
Render swipe action as a row-scoped horizontal gesture with clear direction, action label, background affordance, threshold feedback, cancel behavior, and a visible action-menu or button equivalent.
UX guidance
Use swipe action for frequent item-level actions such as archive, mark read, complete, pin, dismiss, or reveal row commands when the row remains understandable without the gesture.
Good UI
A message row reveals Archive on left swipe and More actions on right swipe, shows action labels behind the row, snaps back before threshold, and keeps a More menu for the same commands.
Bad UI
A hidden swipe deletes a row immediately with no label, threshold feedback, undo, confirmation, or menu equivalent.
Good UX
A user partially swipes a notification, sees Archive and Mark read labels, releases before threshold, and the row snaps back unchanged.
Bad UX
A user swipes to scroll a horizontally cramped row and accidentally archives a critical alert.
Best fit
Users repeatedly perform simple item-level actions on touch-first rows.
Avoid when
The action is rare, complex, high-impact, non-reversible, or requires review before execution.
Required state
Idle row state with visible row identity and discoverable action path.
Accessibility burden
Provide a visible or programmatic action equivalent that does not require a path-based gesture.
Common misuse
Making a hidden swipe the only way to archive, delete, complete, or reveal row actions.

Touch gesture

UI or UX
UI + UX - Touch-first gesture vocabulary and fallback contract for taps, swipes, drags, pinches, and multi-touch interactions
UI guidance
Render touch gesture affordances with visible targets, enough spacing, state feedback, and non-gesture controls for the same outcome when a gesture is path-based, multipoint, hidden, or easy to misfire.
UX guidance
Use touch gesture when the product needs direct manipulation on a touchscreen, but treat gestures as part of a larger interaction contract rather than the only way to act.
Good UI
A photo viewer supports pinch to zoom, double tap to zoom, plus and minus buttons, a reset button, zoom percent feedback, and a clear pan boundary after zoom.
Bad UI
A map can only be zoomed with a two-finger pinch and has no plus, minus, or reset controls.
Good UX
A user pinches a diagram to zoom, sees the scale change, releases outside the threshold without committing a rotate gesture, then uses visible Zoom in and Reset controls with one finger.
Bad UX
A user with a head pointer cannot trigger a two-finger gesture and has no single-pointer alternative.
Best fit
A touchscreen interaction needs deliberate design for gesture vocabulary, thresholds, feedback, target sizing, cancellation, and equivalent controls.
Avoid when
The gesture is only an implementation detail inside a more specific pattern such as swipe action, pull to refresh, long press, drag and drop, bottom sheet, carousel, or map view.
Required state
Idle state with visible touch targets, gesture hints when needed, and no reliance on hover.
Accessibility burden
Provide a simple single-pointer alternative for multipoint or path-based gestures unless the gesture is essential.
Common misuse
Requiring pinch, rotate, two-finger swipe, or shape gestures with no single-pointer alternative.

List view

UI or UX
UI + UX - Vertical object-summary browsing surface
UI guidance
Render a labelled vertical list where each row has a strong primary label, concise supporting text, metadata, status, optional leading media, and row-scoped actions with clear hit targets.
UX guidance
Use list view when scanning and opening object summaries is faster than comparing columns or inspecting large visual cards.
Good UI
A ticket list row shows TCK-2048 Database backup failed, a one-line incident summary, Critical status, owner, updated time, selected state, and a labelled More actions menu.
Bad UI
A list row shows columns of owner, amount, due date, and status but no headers or column sort state.
Good UX
A user filters tickets to Critical, selects two rows, opens the details panel for one ticket, then clears the filter and the selected count and active ticket remain understandable.
Bad UX
A user selects rows, changes sort order, and the bulk action count still includes hidden rows without saying which rows are affected.
Best fit
Users need to scan and act on a collection of objects using compact summaries.
Avoid when
Users need to compare many records across shared attributes.
Required state
Default list state with label or heading, row count or context, visible row summaries, and primary row identity.
Accessibility burden
Use semantic list markup for ordinary object lists; use listbox only when rows are options in a single control.
Common misuse
Using list view as a table without column headers or column-state feedback.

Action menu

UI or UX
UI + UX - Contextual command list for a resource or selection
UI guidance
Render a compact menu of verb-led actions scoped to one resource, row, card, selected set, or page object, with clear section headings, object-aware labels, disabled reasons, and separated dangerous commands.
UX guidance
Use an action menu when users need several contextual commands without keeping every command visible, and the list itself must explain scope, availability, risk, and outcome.
Good UI
A Customer actions menu has Manage customer, Data requests, and Account risk sections, with Edit customer, Merge customer, Request data export, and Delete customer separated at the end.
Bad UI
A More menu contains Open, Edit, View, Delete, Settings, Filter, Owner, and a search box with no sections or object names.
Good UX
A user opens Customer actions, chooses Duplicate customer, and receives status that names the customer and keeps focus anchored to the action context.
Bad UX
A user chooses Delete from a generic row menu and cannot tell whether it deletes the row, account, attached files, or selected customers.
Best fit
A resource, row, card, selected set, or local page object has several contextual commands.
Avoid when
Only one or two commands are needed and visible buttons would be faster.
Required state
Closed trigger or contextual entry point with resource scope.
Accessibility burden
Give the trigger or menu an accessible name that includes the resource or selected-set scope.
Common misuse
Treating the action menu as a junk drawer for every command that does not fit elsewhere.

Undo

UI or UX
UX - Post-action recovery behavior
UI guidance
Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.
UX guidance
Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.
Good UI
Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.
Bad UI
A tiny x removes an item with no object-specific recovery label.
Good UX
Undo restores the deleted task to the list and reports Quarterly report restored.
Bad UX
A second delete overwrites the first recoverable item without explaining which action Undo affects.
Best fit
The action is common and mistakes are likely.
Avoid when
The action has external side effects that cannot be recalled.
Required state
Normal state before the user action.
Accessibility burden
Make the undo control keyboard reachable and programmatically identifiable.
Common misuse
Offering undo for an action that cannot actually be reversed.

Confirmation dialog

UI or UX
UI + UX - Consequential alert decision
UI guidance
Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance
Interrupt users only when the action has a meaningful consequence that cannot be safely recovered afterward.
Good UI
Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI
A popup says Are you sure? with OK and Cancel but does not name the project, notes, or irreversible outcome.
Good UX
Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX
Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit
The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when
The action is routine and easily reversible.
Required state
Pre-action state with an explicit consequential trigger.
Accessibility burden
Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse
Asking users to confirm every routine action until they stop reading.
Decision rules
  • Choose swipe action when a horizontal gesture on one row reveals or commits a row-scoped action such as Archive, Mark read, Complete, Pin, Dismiss, or Delete.
  • Choose touch gesture when the design problem is general gesture recognition, target sizing, feedback, cancellation, multipoint alternatives, and conflict rules across touch interactions.
  • Choose list view when the main design problem is row anatomy, scanability, selection, sorting, filtering, pagination, row navigation, or list density.
  • Choose action menu when commands must be visible from an explicit trigger, when the action set is larger than a small swipe affordance can hold, or when discoverability matters more than gesture speed.
  • Choose undo when the key question is how users recover after a completed reversible row action.
  • Choose confirmation dialog when a destructive or high-impact row action cannot be safely undone and users need consequence review before execution.
  • Swipe action must define direction, row ownership, partial reveal, threshold, release boundary, snap-back, revealed label, equivalent non-gesture control, status message, and recovery or confirmation path.
  • Swipe action must not be the only path to a primary, destructive, account, security, payment, consent, or critical workflow command.
  • Swipe action conflicts must be resolved against vertical scroll, pull-to-refresh, row navigation, row selection, drag handles, nested horizontal content, and system back gestures.
  • Do not treat a list row with an action menu or a generic touch gesture as swipe action unless the horizontal row gesture behavior itself is designed.
Inspect live examples
Failure modes
  • A hidden swipe deletes a row before users see the action label or threshold.
  • A visible row menu and the swipe action expose different commands for the same object.
  • A diagonal scroll triggers archive while the user is trying to read older rows.
  • A screen reader user cannot discover the row action because it exists only as a path-based gesture.
  • A destructive swipe has no undo and no confirmation despite irreversible side effects.
  • The comparison treats row anatomy, gesture mechanics, command menus, post-action recovery, and pre-action review as one interchangeable pattern.