If you're a button, you have one job

Modern UI buttons often ignore rapid taps while an animation or background action is running, leading to unpredictable behavior and user frustration. Commenters contrast examples like photo-rotation buttons that buffer every tap versus those that play haptics but drop inputs, arguing that visual feedback must always align with what the system actually does. The wider debate spans animations, debouncing, accessibility needs, and the trade‑off between responsiveness and protecting users from accidental multiple activations.

Button behavior, buffering, and “one job”

  • Many argue a button should perform its action once for every tap that the UI acknowledges (visual/haptic/audio). Giving feedback but then ignoring the action is seen as a core failure.
  • The criticized pattern: animations that block handling of subsequent taps, so fast multi-taps on a rotation button partly or fully “disappear.”
  • Others note buttons often do have multiple responsibilities: conveying what they will do, reflecting current state (toggle modes), acknowledging input, and sometimes showing progress.
  • Debate on when it’s acceptable to ignore input: during layout changes, to avoid mis-taps on shifted controls, or after destructive actions.

Debouncing, repeat taps, and accessibility

  • Several raise accidental double-taps, tremors, or “over-clicks” as real issues; some users may want repeats ignored once intent is “locked in.”
  • Others counter that if you debounce/ignore taps, you must not give positive feedback for them.
  • Suggestions:
    • Disable or visually “latch” a button while an in‑flight action completes.
    • Offer system-wide options like iOS’s “Ignore Repeats,” rather than baking per‑app heuristics.
    • Treat error states (e.g., wrong passcode) as hard interrupts that clear buffered input.

Animations: value vs harm

  • Strong sentiment that modern iOS/Android overuse animations, making UIs feel slow or unresponsive and sometimes blocking input.
  • Some still see value where animation clarifies what changed (e.g., seeing an image rotate helps interpret orientation).
  • Proposed principles:
    • Animations should be interruptible and never gate logic.
    • They exist to support function (clarity, masking real latency), not as an end in themselves.
    • Provide global “reduce/disable animations” options.

Broader UX and design themes

  • Complaints about flat UI and perpetual redesigns: harder to distinguish controls from content, lower contrast, users forced to relearn UIs.
  • Counterpoint: flat UIs can work well if basic affordances (clear buttons, feedback, contrast, consistency) are respected.
  • Older software and simple widget sets are praised for being snappier and more reliable under constraints.

Hardware and embedded analogies

  • Long subthread on physical button debouncing, race conditions, and how bad input handling has caused real-world failures.
  • Repeated theme: tight coupling between feedback and actual state is essential; otherwise users can’t trust the interface.