Jeff Atwood comments in his blog ‘Unnecessary Dialogs: Stopping the Proceedings with Idiocy‘ that dialog boxes are evil:
Here’s how strongly I feel about this: every time you send your users to an alert dialog, you have failed them. In a perfect world, we should never see a single alert dialog. Ever.
I am not disputing his thought process here, and the dialogs he has selected from Windows Vista and Notepad 2 seem to show a worrying (or actually, just a continued) trend towards the use of dialogs in Windows applications, for unnecessary purposes. But I do wonder if we should in fact look at some bigger issues here. Buit before we do that, let’s look at some of the other points raised.
Jeff refers to Mike Pope’s blog talking about watching someone open an Excel spreadsheet and get flummoxed by the ‘macros’ security dialog:
Over the weekend I was at a meeting of parents where many laptops were open and we were all looking at a spreadsheet. One parent opened the spreadsheet in Excel and was confronted by that big dialog boxes that warns you about macros.
It was classic. She just stopped and said “What am I supposed to do!? What does this mean!?” She did not read one single word of the dialog box text. Being me and all, I said “What does it say?” and more-or-less made her read the text, mostly on principle. Not that it probably helped much, because even when she’d read that “macros can be harmful” or whatever it says, she asked me “But it’s ok to open this spreadsheet”? Yes, it was. Who knows what she would have done if she’d been on her own. I’m not sure she knows what a macro actually is.
I once had a very similar experience at a cash machine (ATM), having to talk someone through the process of using the machine (mostly made up of “See how it says ‘x’, well, now do ‘x’” and “OK, so type in your PIN now but don’t tell me!”
Dialogs therefore are not the only problem, and the issue the ladies were experiencing were not other UI issues like struggling to read the screen due to glare or eyesight, or pressing the buttons hard enough or whatever.
The issue, it seemed to me was one of:
- They did not want to read anything the machine said (perhaps they would have preferred to talk to it);
- They did not want to use the machine at all! But the branch was closed and they had this new card thing (“If they weren’t closed, I’d be able to see a cashier, it’s their fault!”)
At this point I am going to acknowledge that cash machine interfaces are essentially modal, so some might choose to associate them with dialogs, but I choose to link them more closely with Wizards, which Jeff certainly seems to approve of more.
But on the other hand, if a user refuses to read the information you present to them (and cash machines are hardly wordy) then what are we to do?
Getting Back on Track
Let’s speculate why the author(s) of Notepad 2 seem to consider a search wrapping round from the bottom of the document to the top warrants an alert:
- When Notepad (v0.8) was introduced, when a search failed to find anything, it would ‘beep’. User testing showed that some machines did not have sound, and in addition, relying on sound to convey a message was not very ‘accessible’ now was it? Therefore, the programmer was instructed to provide a more visual alert as well. It would have been beyond the programmer’s remit to add a status bar, or whatever (the original spec happened to provide a basic window layout), so the programmer chose to use an alert box;
- UI Testing of Notepad (v1) showed that users did not understand why words were not found in a document when they were plainly there. Ah – the answer was those silly ‘Search Direction’ radio buttons. So, someone cleverly said they should make the search wrap. Now, the programmer who was told to make the search wrap probably observed this could cause some confusion for some users (“Weird, I thought I just found the last one, but now I am back at the top of the document”).
Well, being an astute programmer, they realised that it would be crazy to replace one option in the dialog (direction) with another (wrap search) so they concluded that some sort of message to the user to indicate a wrap had happened would be helpful. How does Notepad v1 convey information to the user? By alerts! Therefore, they used an alert to retain consistency. Doing anything else (like adding a status / message bar) would have been beyond their remit – and would have created a whole load of work to get all messages to be consistent, more code being changed, etc.
- I doubt Microsoft seriously want Notepad to be any good for anything other than quick-and-dirty text edits. And I doubt they want you to fall in love with Wordpad either.
Perhaps I am being generous to think that the early programmers of Notepad had a specification that they were tied to; but even if they were not constrained in this way, I can’t imagine that UI ideals were the priority back then. Whichever way, the road to Notepad Alert Hell was probably paved with good intentions.
Who’s an Idiot?
Well, Jeff isn’t. I’m not. The programmers who wrote Notepad and Windows Explorer aren’t. And I’m sure that those people who do UI Testing probably at least use really long words and do statistical analysis and stuff. Who does that leave?
Jeff understands what the Recycle bin is, and knows that pressing Delete when a file is selected in Explorer ‘recycles’ that file. I’m sure he also knows that Shift+Delete really deletes that file (and I assume he would agree a dialog at that time might be appropriate). I suggest that the ‘who’ who doesn’t know what the Recycle bin is, is the person opening the Excel document, the person at the cash machine… and in fact, yes sometimes it is us because we accidentally pressed Delete instead of Insert, Ctrl+D instead of Ctrl+C, or whatever. And yes, I have been caught out and frustrated by the Notepad search direction options!
But Who’s The Problem?
I reckon that a lot of our issues with software actually originate from Usability Testing itself. Usability Testers are the problem because they will insist on using ‘average’ users, and ‘average’ users will insist on believing that computers should do what they want them to do with no additional learning effort on their own part. And that’s the fault of marketers and management for letting them think that. I would think that programmers can blame time and history and changes requested resulting from usability tests for a lot of the stuff they produce.
OK. What I really mean here is that the problems originate from Lowest Common Denominator Users!
I would be interested to know if Windows (any version) has a ‘User Requirements List’. By that I mean, is there a list anywhere of what Microsoft actually expects users to know? Clearly, Microsoft thinks that the Recycle bin is not something they expect users to know, but I suggest, it is fundamental. It is this difference in opinion that leads to things that we consider stupidities like the ‘Move File to Recycle’ dialog?
A Possible Solution?
I wonder if this leads us to a possible solution to the problem.
Imagine we have that list of ‘Things you Have to Know to use Windows (or whatever application)’. Here’s a minimal mock-up suggestion for Windows (click image for full size):
Now, if you imagine this as a help-file type list with simple shortcuts to more help, then you will probably be disappointed by this idea. However, if you see it as a core service / database within Windows, a registry of user-knowledge, if you will – then you can start to consider that settings made here could inform other applications (especially windows-native programs) on what and when certain dialogs will be shown.
For example, although the imaginary ‘winks’ service shown above has a simple tree to organise topic areas, what if each item also had a check box to indicate “I’ve understood this bit” (as I have hinted at in the right hand side with the checkbox on the green background). Furthermore, as a service this database of ‘things you need to know’ could be used by other applications, and it could represent the next-generation help system (as I have implied here).
There are undoubtedly complications with a proposal like this. How much should it be used as a basic introduction, a help system, and how much should it be used to control settings in disparate parts of Windows or other applications? A couple of features of the service that I can imagine being useful to application programmers would be a ‘List all the possible settings from my Knowledge-service in a dialog’ – that is to say, each application could have an ‘Options’ dialog tag that simply listed all the alert / knowledge controls in it’s ‘help’ file. Each application would also need a way to access settings in the file to make sensible choices over whether an alert should be shown to the user, and possibly also be able to call a generic (and perhaps even non-modal, depending on the context) Knowledge System dialog with the appropriate topic shown. Maybe even an integrated Tip-of-the-day functionality.
Of course, some applications do this sort of thing already with “Don’t show this message again” type controls in the alerts. However, this system is distinct from their help system. I am proposing a service to be built into Windows that could also become a new help and integrate limited application controls, to be used by Windows and applications running on it.
In summary, and whether or not my ‘Winks’ suggestion above actually makes sense, I think Microsoft and others should put a lot more effort into finding a solution to providing interfaces that are easy enough for beginners to use, but do not constrain or force additional steps for the more knowledgeable users (as a matter-of-course). I believe that peronsalised menus were a bad idea (for everyone), and I have commented several times before on Word becoming simplified at the cost of experienced users.