Yes/No/Cancel causes Aspirin sales to soar (2007)

ankitg12 83 points 70 comments August 21, 2026
martin.kleppmann.com · View on Hacker News

Discussion Highlights (19 comments)

teeray

(A)bort? (R)etry? (F)ail?

ccvannorman

I thought this was going to be about a marketing success example for Aspirin! ... Although, I guess in a roundabout way it was.

thefourthchime

One of the most influential books I ever read was About Face by Alan Cooper. What he said about this bad modal dialogue is that you should simply not ask the user, and let them undo later. This was heresy at the time, but turned out to be the native user flow for iOS later on. And now it's common in web apps. https://www.amazon.com/dp/1118766571?lv=shuf&channelId=500&p...

chuckadams

My favorite is apps that offer a way to cancel a long-running operation, where clicking "cancel" on the confirm dialog cancels the cancellation.

sb057

An active "yes/no/cancel" prompt is a paragon of usability compared to the modern standard of constant yes, except for when it fails with a silent no.

Grombobulous

I’ve always loved how TextEdit’s “don’t save” button is actually a red button that says “delete” for unsaved text files. There’s no ambiguity there. The user is very well-informed that they’re about to quit and lose the document they were working on.

tdeck

A program I occasionally use has a "Don't close" button in that dialog. Of course I'm more used to "Don't save", so I often hit it and then am surprised when the program stays open.

tobadzistsini

Not understanding the aspirin reference.

superxpro12

We added a clause in our coding standard to make all booleans reference the positive frame of reference only. This happened after I got fed up with dealing with too many if !(!not_has_missing_field) operators. Just.... make everything positive: if (is_field_present)

SubiculumCode

1. LibreOffice's recover files dialogue series of steps is frustrating like this. 2. Still better than "Yes, Ask me Later" dialogues that are so insulting to users.

1970-01-01

Great title. Great topic. The tiny details are all here, including the 4th option (X), the Abort/Retry/Fail link, and they even have RSS! Subscribed.

f1shy

This is more or less the reason why bool is not recommended as a type, instead use a enums which add semantic value

frollogaston

It's actually more than yes/no/cancel. There's also a red X. I only know from experience that it's usually the same as cancel, but not always.

cosmotic

This is largely the consequence of the Windows API having a built in option to use these buttons, without having an option for custom text. It would be a lot more work to build a custom window with custom buttons than just callong this API. https://learn.microsoft.com/en-us/windows/win32/api/winuser/...

sebastianconcpt

My ambiguity stack overflows... _______________________ | Error. | |_____________________| | | | Unknown Error | | | | (Continue) | |_____________________|

card_zero

"the program is still trying to answer two questions at the same time, which you may consider to be an unnecessary complication" - fuck off. This is why we have the modern idiom of saving everything to temp files all the time without even asking the question, an idiom that silently says you may not write a throwaway document because you can't handle anything so dangerous and cannot be trusted. Let users have complicated things. You know, moderately complicated. They may not all have degrees in Complicator Science but they should at least grasp the concept of a three-way choice, and if some users find that an unnecessary complication then they can go away and stop trying to use devices.

Dwedit

I mean I don't bother reading the dialogs. If there's modifications, "Yes" means save, "No" means close the program without saving, and "Cancel" means go back. And almost every program agrees on that convention, so you don't need to read the dialogs.

grandpoobah

I love how the link to Raymond Chen's blog is broken because one of the largest technology companies in the world doesn't give two shits about permalinks.

kristianp

This is by the author of "Designing Data-Intensive Applications", one of HNs favourite books. https://dataintensive.net/

Semantic search powered by Rivestack pgvector
4,128 stories · 37,281 chunks indexed