Add close buttons to modals
Since dialogs are going to be re thought out then an option to consider would be to add a close button for mouse users
I've attached an image of the old DOS Borland Turbo C IDE as an example, it has the green box in the dialog and editor frames as a "Close" button.
Placement and symbol could of course be different but it would be a way to make mouse interaction more complete, but I also get that this is a TUI and the command line keyboard user is a major target
Ideally, I'd want something that looks a little bit more modern than what's in the screenshot. I'm not 100% certain how that would look like though...
(I renamed your issue because "modal" is the term I use in the source code to express these windows.)
I suggest that having close boxes on modal dialogs is poor UI design. It is both redundant and ambiguous. Why have two UI elements that do exactly the same thing? Or do they not do the same thing, how can you tell?
If you have a YES NO dialog, you need the question answered, what does close mean? Traditionally we have dialogs with multiple, YES NO CANCEL, so it is clear what the options are.
For comparison, look at the original Alerts on MacOS from Inside Macintosh, they don't have close boxes.
Also, brought up to date with Displaying Dialogs and Alerts, still no close boxes.
add a close button for mouse users
A mouse user can still push the same buttons
If you have a
YES NOdialog, you need the question answered, what does close mean? Traditionally we have dialogs with multiple,YES NO CANCEL, so it is clear what the options are.
I believe this answers the question. Close is the cancel button moved to a universally understood place. No matter what the modal says or the options within it, the close button is for doing nothing--such as cancelling an operation or dismissing a popup. In cases where there are no options that do nothing, there should be no close button. However, in the case of modals I think it's inferior to dismissing via the background.
A little context. Last century two major human interface guidelines were produced, one is the Macintosh Human Interface Guidelines, the second was IBM's Common User Access (CUA).
The goal of these were to make programs consistent, so if you could use one program, all the other programs would work exactly the same way. This was not about preventing innovation, this was about letting end users get on with using the different programs, and made far easier by them all working the same way.
Unfortunately 30 years of the web has given us 30 years of terrible user interfaces where nothing works like anything else and every website has to be learned anew, because every website is trying to be different, to standout, and some how be better. The result is it is all horribly inconsistent and made the end user's life more difficult and frustrating. Yes you can point to a single site and say look how good this is, but it will still be working differently to a million other sites.
In comparison every Macintosh program works like every other Macintosh program, not because they came from the same developer but because they put the end user first and follow the same user interface guidelines.
The dismissing by the background is a case in point, you have gone from saying the best thing for a mouse user is to have one-character cell with an X to press, to saying no, give them the rest of the screen to click. In the meantime you have ignored the keyboard warrior who now does not know how to cancel the operation because there isn't a cancel button saying the operation can be cancelled. If there is a cancel button then let everyone click it.
The original edit was already pretty aligned with IBM's CUA. I was hoping for it to continue.
https://www.wikihow.com/Develop-Common-Sense
I apologize. I referenced this discussion in a chat and didn't realize others seeing it would have less of a filter.
For others in the future please don't leave rude comments that don't contribute to the discussion.
Hi, Mr Stupid McStupidface here with my first use case.
This comes from the Default CLI Editor - Feature Exploration!
My scenario is that my system is hosed. I can only get it into recovery mode, no drivers are loading so I have no trackpad, mouse or GUI.
I am a Windows user who only ever uses Office or Edge. I have heard people mention Chrome but I don't understand the fuss.
However today my system is down, I have contacted somebody who has emailed me a link to a page on reddit via my phone so I can try and recover my system.
I have never used a command line or command line editor in my life, or perhaps I did many years ago.
I have no interest in the editor itself or subliminal non-verbal UI patterns, I want the tool to tell me what to do and what the options are with words, after all, it is a text user interface.
So that is why I want dead simple buttons [Yes] [No] [Cancel], [Save] [Don't Save] [Cancel] or [Walk] [Don't Walk] [Boogie] to tell me what the options are, and to switch between the buttons with left and right arrows because that is what I do on a GUI.
I don't want "oh, perhaps you can cancel, but we aren't going to tell you how, Mr Stupid".
So leading on from that, if you are going to provide a big obvious button marked [Cancel] for me, Mr Stupid, then why provide all the other additional methods to cancel that you just have to know about?
Now Apple Computer Inc, in their wisdom, don't see the need for close boxes in model alerts. Perhaps you have not heard of them, I think they are still around.
So that's me, trying to do a little editing by following instructions from a website on a phone.
That's my first use case.
My second use case is I have a basic Windows Server Core server and need to do some simple administration with a text editor using SSH.
Actually that is it.
Those are my only two scenarios for using this editor.
I believe the discussion has run its course.
I do understand both perspectives now and thank everyone here for providing it. Currently I'm undecided on what to do but won't need further convincing in either direction. I'll make up my mind once I get to work in this area. 🙂
For now, I'll collapse the above discussion, as the most crucial bits are in the first two comments: The suggestion itself and me stating my initial opinion on it. The comments will still be there for me to consider them in the future though. Thanks!
Ideally, I'd want something that looks a little bit more modern than what's in the screenshot. I'm not 100% certain how that would look like though...
(I renamed your issue because "modal" is the term I use in the source code to express these windows.)
Maybe something like this:
┌───────────┤ _ □ X ├─┐
The X could be red too. There might be better characters for the buttons, but as a rough draft I think those convey both their function, and look a lot like a windows titlebar.