Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My favorite anti-pattern to this is the following:

"Would you like to cancel this transaction?"

"OK" – "Cancel"



It's like that joke about a Belarusian referendum ballot:

  Do you not object for the president to remain in power indefinitely?

  [ ] No,  I don't object
  [ ] Yes, I don't object


These kinds of things can be life or death in airplanes.

It used to be in the Air Force that full throttle was called "takeoff power". Then one day a jet was making a landing, and the copilot decided they needed to abort. The first thing you do on abort is go to full power, so he yelled "takeoff power". The pilot chopped the throttle, thinking he meant "take off power", causing an accident.

The offical phrase for full throttle was then changed to "full power" (or "maximum power", I forgot).


In general aviation the term "takeoff/go-around" or "TOGA" is used, with the go-around phase used for aborting landings.


Talk about an unambiguous sign that whoever is writing this software is truly and deeply giving zero (0) shits about their job.


I don't think that's the case. It's very possible to be a good programmer and care deeply about your work, but at the same time be a terrible UX designer. Unfortunately a lot of software companies don't realize this and give UX the priority it deserves; instead they make their coders guess about it, which leads to things like this dialog.


The basics of UX design can be learned, so if you really care you'll learn.


Oh sure, I'm a living disaster area at UX. I meant more that whoever is the "designated responsible individual" (if one even exists -- doubtful) has given the fuck up.


For some reason I didn’t read “the fuck” as emphasis, but as a direct object—the person had had a fuck previously, but have since given up that fuck.

I’m going to use that as an example of why UX is hard: not only are people generally not paying attention, but sometimes they misfire even when they are.


It's much more elegant in your reading.


Or, the error message was written by someone whose first language is not English... and the company in question did not enforce review.


or even that the message makes perfet sense to the person writing it, because they are not reading the message, but reading what they thought the message was in their head!


Or maybe the backend code is analogous to

    bool exit_handler(obj) {
        return confirm_exit(obj->description)
    }
and he simply missed the unfortunate dialog box that resulted in one of those cases. An oversight, but when the subtitles of the user presentation is so decoupled from the code it can be easy to miss.


I actually prefer the idea of using "Don't" instead of "Cancel." When combined with always using a verb instead of "Yes" or "OK", I think it makes for completely unambiguous dialog.

"Would you like to format this disk?"

"Format" - "Don't"

"Would you like to cancel this transaction?"

"Cancel" - "Don't"


Not completely unambiguous, though. I've seen plenty of software with negations in their dialog messages ("Don't delete x?") Particularly egregious with driver installations. Everything considered, buttons with actual verbs seem the most foolproof.


When would someone ever need to confirm not doing something?


Considering Windows used to have an "Error: no error" dialog somewhere, I'd leave nothing off the table...


I've seen set top boxes that offer three answers to yes/no questions.

"Switching the channel will switch to live mode and lose your rewind buffer. Do you want to switch to channels?"

[YES] [NO] [Cancel]


I've had to implement an industry-standard medical protocol which had 6 values for "sex".


The more the merrier!

State of California used to allow 5 in healthcare reporting: male, female, indeterminate, unknown, and other.

The first two are largely self-explanatory, self-identification issues largely not considered. "Indeterminate" means that evidence is present but it's not possible to distinguish. "Unknown" means evidence isn't present (and hence it's not possible to make a determination. Example: unidentified human remains found and either grossly mutilated or partial to the point of not being able to determine sex. "Other" means that evidence is present, and it's possible to make a determination, but it doesn't fit any of the previous categories.


It reminds me of that bash.org quote.

"0 is false and 1 is true, correct?"

"1" - "0"


1, morganj


I've seen the even simpler dialog:

"Cancel?"

"OK" - "Cancel"


I've seen a better one, with 2 cancel buttons, following "action"/cancel model.


Somehow that one actually sounds less ambiguous, assuming familiarity with dialog boxes.


My absolute favorite on this one is a dialog that pops up if an assertion fails in a .NET program. It has three buttons whose names have a distinguished provenance: Abort, Retry, Ignore.

Those names don't exactly describe what the buttons do. Fortunately, though, someone at Microsoft noticed the problem and fixed it. So now the title bar reads, "Assertion Failed: Abort=Quit, Retry=Debug, Ignore=Continue"


I much prefer:

"Application has detected and error!"

"OK" – "Cancel"


"Would you like to cancel this transaction?"

"OK" – "Cancel"

Easy, just replace would with wouldn't :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: