Special Topic · Interaction Engineering: Make the Product Usable

The UI Speaks: How Users Read Your Copy

"Delete these 3" is more honest than "OK." Button verbs must name the consequence; labels use the user's words; don't serve database field names to users. Rewrite three lines in a dialog by hand

THE QUESTION THIS PAGE ANSWERS

ANSWER FIRST

What is the key idea behind “The UI Speaks: How Users Read Your Copy”?

"Delete these 3" is more honest than "OK." Button verbs must name the consequence; labels use the user's words; don't serve database field names to users. Rewrite three lines in a dialog by hand

DECISION RULE

Turn taste into a behavior the product can repeat. The useful outcome is not a nice opinion. It is a visible rule, a small example, and a way to tell when the experience falls below the bar.

TRY NEXT

Capture one before-and-after example that shows the quality bar without extra explanation.

WATCH FOR

Polish that improves the surface while leaving the user's uncertainty untouched.

"OK" is the busiest button—and the most useless

Count how many times you tapped "OK" today. It shows up in dialogs for delete, submit, quit, overwrite, clear—one word vouching for a hundred different consequences. Here's the problem: the button carries no answer; the answer lives in the body text, so users must finish the whole paragraph before they know what this tap does. OK/Cancel pairs are lazy—they push the reading cost onto the user.

The fix is to put the consequence on the button: swap "OK" for "Delete these 3," swap "Cancel" for "Keep them." Even if nobody reads a word of the body, a glance at the buttons is enough to answer safely. Cooper sets the same rule for action dialogs in About Face 4, Chapter 21: put a verb in the title. The title says what you're confirming; the buttons say what happens when you tap—neither side leaves the user guessing.

"Use a verb in the title of an action dialog."
Alan Cooper, About Face 4, Chapter 21: verbs carry action and consequence; nouns and "Notice" carry nothing.

There's a test version of this rule: cover the dialog body and look only at the title and buttons—can you answer safely? If yes, the copy passes; if you have to peek back at the body, it's still a lazy OK/Cancel variant. Start with a few contrasts and feel what verb buttons do.

ScenarioLazy versionConsequence-carrying
Empty cartOK / CancelEmpty 12 items / Keep them
Leave editorYes / NoSave & exit / Discard changes
Unlink phoneContinue / BackUnlink 138****2046 / Don't unlink

Notice a side benefit of consequence-carrying buttons: quantity and object land on the button too (12 items, 138****2046)—a final check done for the user. Most mis-taps happen because "I thought I selected a different batch"; naming the object on the button dissolves that misunderstanding on the spot.

The user's words vs. the system's words

Beyond buttons, the second disaster zone is nouns. The UI says "Field user_mobile validation failed" or "Violates uniqueness constraint"—words no user knows, lifted straight from the database and the logs. Cooper digs out the root in Chapter 14: developers put the database's needs ahead of the user's, so the software ends up serving the CPU, and users feel like they're working for the software.

Chapter 14 also has a much-cited principle: the error may not be the program's fault, but it is the program's responsibility. A phone number short one digit, a duplicate username—those count as the user's "mistakes," but translating the error into words they understand and can fix is the program's job. Even menu names don't escape this: Cooper argues that "File" itself is an implementation-model word; an invoicing app's menu should be called "Invoices." Whatever users call their stuff, the UI should call it that too.

System wordWhat it really meansRoot cause
This action cannot be undoneWhich action is "this action"? Say itSystem-perspective deixis—users must recall the last step themselves
Error 422What was filled wrong, and how to fix itHTTP status codes are developer logs (the case file from Lesson 2)
Session expiredYour login expired—sign in againSession is an implementation-model word; the user's word is "login"

AI is especially prone to this when writing UIs: it generates copy from the data structure, and the label becomes whatever the field is named. If you don't stop it, the database walks on stage and gives a speech. Next, rewrite a dialog by hand—three lines into human talk—and watch the mock change on the spot.

Try it · Rewrite a dialog; the mock updates live

The delete-confirm dialog on the left is real AI output: title "Notice," vague body, buttons "OK / Cancel." On the right, tap "Plain talk" on each of the three lines; every rewrite updates the dialog live. When all three are done, run the cover-the-body test.

Button-copy rewriter Rewritten 0 / 3
Scenario: the user selected 3 emails and hit delete. Tap "Plain talk" on each row on the right; the dialog on the left updates live
mail.example.com/inbox
Notice
Are you sure you want to perform this action? This action cannot be undone.
Cancel OK
TitleNoticePlain talk →
Delete these 3 emails?
"Notice" carries zero information. Action-dialog titles use verbs (Chapter 21)—put the action and the count in the title so users know what they're confirming at a glance.
BodyAre you sure you want to perform this action? This action cannot be undone.Plain talk →
Deleted mail goes to "Trash," kept for 30 days, then gone for good.
"This action" is system-perspective deixis—users have to recall what they just tapped. The body should cover consequence details: where things go, how long they stay, and whether they can still be recovered.
ButtonsCancel / OKPlain talk →
Keep them / Delete these 3
"OK / Cancel" stakes every answer on the body text. Buttons each carry their consequence; make the dangerous one red—and even without reading a word of the body, you won't tap the wrong one.
Duel · Which dialog is more dangerous

Define danger first: a dialog users will still tap through without understanding—that's dangerous. The cry-wolf experiment in the last lesson showed users spend less time on dialogs than it takes to finish one line; a fuzzy dialog is a knife left in a blind spot. Both dialogs below delete customer data—tap the one you'd dare hand a user.

Fuzzy copy vs. clear copy A/B duel
Tap the one you'd dare hand a user; after you vote, see where the other one is dangerous
Plan A
crm.example.com/customers
Warning
This operation will affect the selected data. Are you sure you want to continue?
CancelOK
What data is affected, and how—left entirely to the user's imagination
Plan B
crm.example.com/customers
Delete these 3 customers?
This also deletes 24 follow-up records under their names. You can recover them from Trash within 30 days.
Keep themDelete these 3
Object, side effects, and an exit—all written in the open
Try it · Translate system-speak into human talk

Buttons done—now nouns. The five lines below are system-speak AI loves to dump on the UI. For each, pick the real human talk from two translations. Watch out: some options only dress up the system-speak; underneath they're still logs.

System-speak translation drill 0 / 5
Pick one translation per row; wrong answers explain why—you can pick again
DB_CONN_TIMEOUT
ADatabase connection timeout (error code 10060). Please try again later.
BCouldn't reach the server just now. What you wrote is saved on this device—we'll retry automatically when you're back online.
System-speak in a costume. "Database" and "error code" are still implementation-model words. Users don't care which hop timed out—they care whether their stuff is gone, and whether they need to do anything.
Right. Not a word about the database. Lead with what users fear most (nothing is lost), then whether they need to act (no—it'll retry). Swallow the technical failure yourself—Lesson 2's three elements, noun edition.
Field user_mobile validation failed
AYour phone number is missing a digit—it's 10 digits now. Add one more to submit.
BInvalid phone number format. Please check and re-enter.
Right. Translating user_mobile to "phone number" is only a passing grade. Saying "missing a digit" finishes translating the validation result—users know how to fix it without counting.
"Invalid" plus "please check" makes the user re-run the validator themselves. The program already knows what's wrong—saying it is its responsibility (Chapter 14).
Session expired, token invalid
ASession credentials have expired. Please reacquire an access token.
BYour login expired. Sign in again to keep editing—your draft is still here.
Translating Session to "session credentials" and Token to "access token" makes the words Chinese—but the model is still the implementation model. The user's dictionary only has "login."
Right. The user's word (login), a clear way out (sign in again), and the reassurance that matters most (draft still here)—three jobs in one sentence.
404 Not Found: /orders/8291
AThe requested resource does not exist. Please verify that the address is correct.
BThis order can't be found—it may have been canceled. Check "All orders," or contact support to look it up.
"Resource" and "address" are HTTP words. The user tapped an order—their world has no resources, only orders.
Right. Use the user's word (order) to state the situation, and give two ways out (go to the list, contact support). On a dead-end page like a 404, a way out is worth more than an explanation.
This operation violates a uniqueness constraint
AThat username is taken. Try another—maybe add a number.
BDuplicate data. Operation rejected. Please modify and try again.
Right. "Uniqueness constraint" is a rule the database made for itself. To the user, this is "someone already took that name." A tip (add a number) turns a dead end into a fork.
"Duplicate data" is a bit clearer than "uniqueness constraint," but which data, against whom, and what to do—none of that is said. Translate until the user can act.
Error-message three elements—covered in Lesson 2

By now you may recall Lesson 2's error-copy rewriter: what happened, why, and what to do. Those three elements frame the skeleton of an error message; this lesson covers word choice inside that skeleton. Together they make a complete copy craft. We won't re-teach the three elements—the jump card is here.

Chapter cross-ref · The three states: loading, empty state, error stateThe error-message three elements (what happened, why, what to do) and full rewrites of three weak messages are covered in Lesson 2—tap here to jump.

One last combined quiz: button craft from this lesson plus the three elements above.

Closing a doc with unsaved changes—how should the button set be paired? Single choice
Wrong answers explain too—keep going until you're right
A"OK / Cancel," with body text saying unsaved changes will be lost
B"Save & close / Don't save / Cancel"—three buttons, each carrying a consequence
C"Yes / No," with body asking "Do you want to save?"
D"Got it," announcing that changes will be lost
Key Takeaways

Buttons carry consequences: swap "OK" for "Delete these 3," swap "Cancel" for "Keep them." Acceptance test: cover the body, look only at title and buttons—you can still answer safely.

Use the user's words: Session, field names, and error codes are implementation-model words—don't serve them to users (Cooper, About Face 4, Chapter 14). Translate until the user can act.

Errors are the program's responsibility: user input can be wrong; turning that wrong into words they understand and can fix is the program's job. Don't blame the user in the wording—the three-element skeleton is in Lesson 2.

How to brief AI: "Button copy names the action and the count; ban OK/Cancel pairs. UI copy must not show field names, error codes, Session, or other system words." UI details end here—next lesson starts translating these requirements for AI.

Source: Original to Xiaoshan Academy's Interaction Engineering series; some interaction principles adapted from About Face 4: The Essentials of Interaction Design.

Turn the feeling in “"OK" is the busiest button—and the most useless” into a judgment

“Count how many times you tapped "OK" today.” points out that AI has lowered the bar for making something usable. The skill readers need is noticing what is wrong and turning that feeling into an actionable requirement.

Watch the user's next action, not just the surface

Turn “The fix is to put the consequence on the button: swap "OK" for "Delete these 3," swap "Cancel" for "Keep them." Even if nobody reads a word of the body, a glance at the buttons is…” into observable questions: does the user know what happened, what to do next, and how to recover from an empty or failed state? Does the hierarchy make the important information visible first?

Pretty is not the same as usable

Apply “How to brief AI: "Button copy names the action and the count;” to a second screen or flow. Record one moment of hesitation and the user action after the change; observable behavior is stronger evidence than polish alone.

From “"OK" is the busiest button—and the most useless” to “The user's words vs. the system's words”

“"OK" is the busiest button—and the most useless” grounds the problem in “Count how many times you tapped "OK" today. It shows up in dialogs for delete, submit, quit, overwrite, clear—one word vouching for a hundred different consequences. Here's the problem: the button carries no an…”. “The user's words vs. the system's words” then moves it toward “Beyond buttons, the second disaster zone is nouns. The UI says "Field user_mobile validation failed" or "Violates uniqueness constraint"—words no user knows, lifted straight from the database and the logs. Coop…”. Together, they show that the lesson is not just a conclusion to remember, but a claim with conditions.

Carry the judgment into the next situation

For experience work, turn abstract impressions into user actions: did the person understand the state, find the next step, recover from an error, and want to continue?

  • “"OK" is the busiest button—and the most useless”: Count how many times you tapped "OK" today. It shows up in dialogs for delete, submit, quit, overwrite, clear—one word vouching for a hundred different consequences. Here's the problem: the button carries no an…
  • “The user's words vs. the system's words”: Beyond buttons, the second disaster zone is nouns. The UI says "Field user_mobile validation failed" or "Violates uniqueness constraint"—words no user knows, lifted straight from the database and the logs. Coop…
  • “The closing point”: The delete-confirm dialog on the left is real AI output: title "Notice," vague body, buttons "OK / Cancel." On the right, tap "Plain talk" on each of the three lines ; every rewrite updates the dialog live. Whe…

The final “The closing point” brings the discussion to “The delete-confirm dialog on the left is real AI output: title "Notice," vague body, buttons "OK / Cancel." On the right, tap "Plain talk" on each of the three lines ; every rewrite updates the dialog live. Whe…”. The useful thing to carry forward is knowing which judgments must be revisited when input, scale, or risk changes.

Mark as learned Your reading progress updates automatically
← PreviousNext →

Keep reading

The next useful article in the thread.

ARTICLE DISCUSSION

Leave one useful thought here.

Keep the idea that clicked, the question that stayed open, or a small note for the next learner.

Discussing The UI Speaks: How Users Read Your Copy Interaction Engineering: Make the Product Usable
3discussionsArticle discussion · synced with the Circle
View in the learning circle
AM
Asha MorganContent editor
INSIGHTField note

I turned one judgment from this article into a small experiment I could run today. Knowing what to observe next is more useful than simply remembering the conclusion.

ARTICLE DISCUSSION7 helpful
LH
Lin HarperIndie developer
INSIGHTInsight

After reading this, I first looked for the conditions behind the idea instead of copying the method into a project. That order made the later trade-offs much clearer.

ARTICLE DISCUSSION5 helpful
KM
Kiki MooreProduct operations
QUESTIONQuestion

When this judgment reaches real work, which constraint should be added first? I am curious which step matters most between reading and the first practical attempt.

ARTICLE DISCUSSION4 helpful