can you spot the UX issue here?

@isabel no keyboard option to select cancel unlike the Yes or No options?

Also, what does clicking the X do? Unknown behaviour... I do NOT want there to be a "YOLO" option on a system talking about kV.

@http_error_418 @isabel the keyboard option for Cancel is the Esc key.

But the absence of a keyboard option for Cancel would be a UX feature rather than an UI bug — if this dialog were in some parallel universe somehow required to have a Cancel option. Because it should absolutely not have a Cancel option, especially not the one here.

(This is IMHO the difference between UI and UX. Compare a large one-step "Launch atomic missiles" button. Great UI, works perfectly, horrible UX apocalypse!)

@http_error_418 @isabel (also even ignoring the fact this shouldn't be a 3-way dialog — the "No" and "Cancel" actions are the wrong way around. But this is only a problem because the "30KV" action is there to begin with. _It shouldn't_.)
@equinox @http_error_418 So many cursed things about this, I hadn’t even considered that the Escape key would also trigger the Cancel option

@isabel @http_error_418 the thing that really bothers me is that I can't tell if it's from a real system or from some UX teaching material made specifically to be bad…

Is this real? 😨

@isabel The button to close the dialog in the top right?
@isabel Is it all of it? The whole thing?
@isabel I don't have enough fingers to count.
@isabel this has a hard to explain Therac-25 vibe to it
@isabel Tell me you were a lazy UI programmer and used MB_YESNOCANCEL instead of programming descriptive buttons without telling me you're a lazy UI programmer who used.....

@isabel This is because the Windows MessageBox() API only gives you a handful of different options for buttons [1] and they picked MB_YESNOCANCEL. It's the obvious lazy dev path forward.

The *correct* solution is to actually put the effort into designing a dedicated dialog with clearly labeled choices, but that's hundreds of lines of code not 1-2.

[1] https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox

MessageBox function (winuser.h) - Win32 apps

The MessageBox function displays a modal dialog box that contains a system icon, a set of buttons, and a brief application-specific message.

@azonenberg @isabel Yes/No/Cancel shouldn’t even exist, since button labels should be *verbs*, so you have a chance to know what they do without reading the text, and so the text can be an explainer, not a bloody puzzle game.

Also button order and positions are wrong, since the default action should be in the right, Cancel directly to its left, and the dangerous action (“Don’t Save” or in this case “Fry Stuff With 30 kV”) on the left with plenty of space in between.

@azonenberg @isabel At least that’s what the Windows UI guidelines, which were written by Apple, say.
@isabel
It's obviously that 30KV is a voltage setting, not a current setting.
@isabel that's such a Windows 3.1 message box too
@isabel yeah, high voltage utilities running windows