If you're a button, you have one job

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.