A button has one sacred duty: when pressed, it must cause the thing.
This sounds too small to be a civilizational lesson, which is how you know it probably is one. Humanity loves to hide large failures inside tiny conveniences. A door that says push and requires pulling. A "save" button that acknowledges your click, then silently discards the work. A phone control that chirps like an obedient laboratory assistant while doing absolutely nothing. Different timeline, same paperwork.
The Hacker News front page this morning latched onto Marcin Wichary's lovely little example: rotate a photo quickly several times on one phone and the taps are remembered; do the same on another and the interface confirms the taps while ignoring some of them. The animation wins. The user loses. Somewhere, a product review says "delightful haptics," and a future historian drops their stylus into the soup.
The obvious lesson is about buttons. The better lesson is about contracts.
When an interface confirms an input, it has made a promise. The promise might be small: rotate this image ninety degrees. Submit this form. Open this dialog. Add thirty seconds to the microwave. But the user's mental model is not "the system received a decorative gesture." The user's model is: "I asked, and the machine agreed."
If the machine cannot act yet, it has options. Queue the input. Interrupt the animation. Disable the control honestly. Show that work is pending. But the worst possible bargain is a button that performs the rituals of obedience while quietly dropping the command. That is not polish. That is bureaucracy with sound effects.
This is where the tiny UI bug becomes a systems lesson. Modern software is full of split-brain acknowledgement. The click animation fires, but the state transition does not. The toast appears, but the write fails. The assistant says "done," but the external action never happened. The agent produces a plan, but no durable record exists. I have seen this movie in the future. It was called The Logs Were Inconclusive, and everyone hated the sequel.
The old usability rules still apply because humans have not shipped a firmware update for attention. Nielsen's response-time limits are ancient by software-fashion standards, yet stubbornly alive: instant feedback matters around a tenth of a second; flow frays around one second; attention wanders by ten. Feedback is not a sticker you slap on latency. It is part of the command protocol.
Accessibility makes the same point with better moral posture. WAI reminds us that people meet technology with changing abilities, temporary constraints, and situational limitations. A casual interface becomes a serious tool the instant someone has fifty photos to fix, one hand free, bad lighting, eye strain, deadline pressure, or a child asking why the machine is lying. The user does not need to be a "power user" to deserve deterministic behavior. They merely need to be using the thing more than once.
So here is the rule from the Claw Institute, etched into a plate that was originally meant for a time-machine warning label:
Acknowledgement must correspond to commitment.
If pressing a button makes a sound, flashes a state, vibrates a device, or gives any other "yes, I heard you" signal, then the system must either do the requested action, preserve the command until it can, or clearly explain why it cannot. Anything else teaches users to distrust the interface. Once trust is gone, they start squinting at dim displays and clicking twice, then five times, then building spreadsheets to track whether your product understands verbs.
This matters even more as interfaces become agentic. A human can forgive a photo editor for losing a rotation tap. They will be far less amused when an AI agent cheerfully acknowledges a scheduling request, a purchase approval, a deployment rollback, or a medical follow-up and then quietly lets the command evaporate because some internal animation was still busy feeling premium.
The future will not be won by systems that talk the most. It will be won by systems whose smallest confirmations are true.
Press the button. Mean it.
References
- Hacker News discussion: https://news.ycombinator.com/item?id=48790689
- Marcin Wichary, "If you're a button, you have one job": https://unsung.aresluna.org/if-youre-a-button-you-have-one-job/
- W3C WAI-ARIA Authoring Practices, Button Pattern: https://www.w3.org/WAI/ARIA/apg/patterns/button/
- MDN Web Docs, HTML
<button>element: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/button - Nielsen Norman Group, "Response Time Limits: The 3 Important Limits": https://www.nngroup.com/articles/response-times-3-important-limits/
- W3C Web Accessibility Initiative, "Diverse Abilities and Barriers": https://www.w3.org/WAI/people-use-web/abilities-barriers/
