Strange ideas gone wrong

Screenshot of three buttons: OK - Cancel - Apply

The apply button Windows brought to us with its windows 95 release is a strange beast.

Nearly all people I know (myself included) misuse the button.

Ask yourself: When you see the three buttons as shown on the screenshot and you want the changes you made in the dialog to take effect, what button(s) do you hit?

Chances are that you press “Apply” and then “OK”.

Which obviously is wrong.

The meaning of the buttons is as follows: “Apply” applies the changes you made, but leaves the dialog open. “Cancel” throws the changes away and closes the dialog. “OK” applies the changes and closes the dialog.

So in a situation like the above, hitting OK would suffice.

I see no real reason why the apply button is there and personally, I don’t understand why people insist on hitting it. Mind you, this also affects “educated” people: I perfectly well know how the buttons work and I’m still pressing Apply when it’s not needed.

Actually, Apply is a dangerous option set out to defeat the purpose of the Cancel-Button: Many times, I catch myself making changes and hitting “Apply” after every modification I made in the dialog, thus rendering the cancel button useless because I’m constantly applying the changes so Cancel usually will do nothing.

Why is the Apply button there then?

It’s to provide the user with feedback of her changes without forcing her to reopen the dialog.

Say you want to reconfigure the looks of your desktop. At first you change the font. Then you hit apply and you watch if you like the changes. If yes, you can now change the background and hit apply again. If not, you can manually change the font back.

Problem is that nobody uses the buttons that way and I personally have no idea why. Is it an emotional thing? Do you feel that you have to hit Apply and OK to really make it stick? I have no idea.

Personally, I prefer the Mac way of doing things: Changes you make are immediately applied, but there’s (often) a way to reset all the changes you made when you initially opened the dialog. This combines the feature of immediate response with a clean, safe way to go back to square one.

My question to you is: Do you catch yourself too doing that pointless Apply-OK-sequence? Or is it just me, many people in screencasts, my parents and many customers doing it wrongly?

Button placement

Besides the fact that this message is lying to me (the device in question certainly is a Windows Mobile device and there can’t be any cradle problem because it’s an emulated image ActiveSync is trying to connect to), I have one question: What exactly do the OK and the Cancel button do?

And this newly created dialog is in ActiveSync 4.2 – way after the MS guys are said to have seen the light and are trying to optimize usability.

Oh and I could list some other “fishy” things about this dialog:

  • It has no indication of what the real problem is (a soft reset of the emulator image helped, by the way).
  • It has way too much text on it
  • Trying to format a list using * and improper indentation looks very unprofessional. Judging from the bottom part of the dialog where the buttons are, this is no plain MessageBox anyways, so it would have been doable to fix that.
  • The spacing between the buttons is not exactly consistend with the Windows-Standard

Dialogs like these is precisely why I doubt that Windows Mobile really is the right OS to run on a barcode scanner – at least if it’s a scanner that will be distributed among end-users with no clue of PCs. It’s such a good thing that the scanners finally have GPRS included.

IE7 – Where is the menu?

Today, I finally went ahead and installed the current Beta 3 of Internet Explorer, so I too will have the opportunity to comment on it.

What I ask myself is: Where is the menu?

Well. I know it’s to the right of the screen behind these buttons. But it’s no real menu. It’s something menu-alike.

Why radically change the GUI? Even in Vista itself, there won’t be a menu any more. Or at least not a permanently visible one.

The problem is: It took me years to teach my parents, that all functionality of a program is accessible via the menu and that the menu is always at the top of the application (whereas it’s at the top of the screen on the mac).

Now with this new mood of removing the menus and putting them behind arbitrary buttons, how will I explain my parents how to use the application? I can’t say “Go to File / Save” any more. Besides the names of the menu items, in the future I will also have to remember where the menu is.

And as each application will do it differently, I’ll have to remember it countless of times for different applications.

And even if I know: How to explain it to them? “Click that Icon with the cogwheel”? I doubt they’d associate that icon with the same thing as I do. Thankfully in IE7, there’s still text so I could say “Click on Tools”. But what if some “intelligent” UI designer decides that not even the text is needed any more?

In my opinion, removing the menu has nothing to do with making the application easier to use. It’s all about looking different. And looking different is counter-productive to usability. Why move away from something everyone knows? Why change for changes sake?

It’s not that people were overwhelmed by that one line of text at the top of the application. People that didn’t use the menu didn’t bother. But in the case where they needed it, or needed assistance in using it, it was clear where it was and how to use it.

This has changed now.

And even worse: It has changed in a non-consistant way: Each application will display its own menu replacement where each one will work in a different way.

So I repeat my question: How can I teach my parents how to use one of these new applications? How can I remotely support them if I can’t make them “read the menu” when I’m not sure of the layout of the application in question?

Thankfully, for my parents browsing needs, all this doesn’t apply: They are happy users of Firefox.

But I’m still afraid of the day when the new layouts will come in effect in Office, Acrobat and even the file system explorer (in vista). How to help them? How to support them?

My task: RemoveTempHxDs

Le’ts say, you want to inform your user about what’s going on (which is a nice thing to do).

This is an example of how not to do it:

What exactly is that “RemoveTempHxDs”, the installer is doing right there? And why is the progress bar at 100% for more than three minutes when I made the screenshot?

If you are unable to provide meaningful progress information, don’t provide it at all. Make your program display a “neutral” progress bar (some spinning wheel or something like that) and make it tell the user it’s “Doing stuff…”. Why expose useless internals?

While I see some value in displaying information like that if it’s to have more information when you are trying to support the application. But in that case, a log file of some kind is much more valuable as it both gives YOU as developer the information you need and does not confuse your user.

Strangest JavaScript error ever

Let’s say you create some very nice AJAX-stuff for a web project of yours. With nice I mean: Not breaking the back-button where its functionality is needed, not doing something that works better without AJAX, and doing it while providing lots of useful visual feedback.

Let’s further assume that the thing works like a charm in every browser out there (not counting Netscape 4.x and IE in all versions – those are no browsers).

And then, IE throws this at you:

Unknown Runtime Error

Needless to say that the HTML output in question had a line count not even close to 370, so finding this thing easily was out of the question.

The solution: IE is unable to write to innerHTML of a TBODY element. But instead of providing an useful error message or even a link to the source with the line in question already highlighted (that’s what Firefox would do), it just bails out with completely useless error information.

*sigh*

(btw: That mix of fonts in the details section of the error message is just another indication of IEs great code quality)

Usability with the Browse for folder dialog

browsefolder.png

This dialog is the worst usability nightmare ever. It’s so bad that I’m really afraid of using any function in any program making me to chose a directory. Why? Don’t get me started:

  • It’s too small. Newer versions of Windows allow you to resize it, but it’s dependent on the program. The one I took this screenshot off does not.
  • It’s uncommon. You don’t see that dialog often. Many programs use a standard file selection dialog when they ask for a directory (I guess because of the problems outlined here)
  • It does not allow multiple selection. Meaning that if your program provides the user to work with multiple directories at once, it can’t be done with this dialog. You have to build your own solution, thus losing even more usability by forcing the user to learn something new
  • The tree-view is an uncommon view on the filesystem. Over time, Microsoft eliminated the tree view for directory navigation more and more. You have to willingly turn it on in Windows XP. There’s no explorer view with that tree per default
  • It’s context-less. Tell me: What’s the reason to select a folder in the dialog you see in the screenshot above? I don’t select a folder for the selections sake. I want do do something with that folder. What? The dialog does not tell me. I know this can be set in the API-Call to bring up the dialog. But many people do not.
  • It has not way to enter a path manually. Copy & Paste exists for a reason. If you have deeply nested paths, it can be a real timesaver. Navigate in Explorer (maybe already open anyways), Copy the path to the clipboard and… nope… no pasting
  • It has no autocomplete. I’m very fast in typing paths with the help of autocomplete: c:Pro[arrow down]Po[arrow down] and I’m in c:Program FilesPopScan. Not in this dialog. In this dialog, I have to click through the whole path
  • Around Windows 2000, microsoft extended the file selection dialogs with a shortcut bar allowing easy access to some commonly used folders. This bar is missing in this dialog.
  • It’s readonly. What if I want to make a new folder? Some “editions” of the dialog do provide a ‘New Folder’ button. Even so, it works by adding a ‘New Folder’-Folder and you have to manually click it to rename it (at least on this system here. Behaviour is erratic
  • There’s no context menu. Usuall when you see filesystem icons, you can right-click it to get a systemwide context-menu. Not with this dialog. Well. You can right-click. A context menu does appear. But the single entry is “What’s this” providing an utterly pointless context sensitive help entry that – I’m afraid has no context at all: “Click the plus sign (+) to display more choices” choices? What choices? Why do I want to see new choices? This is no answer for the question “what’s this”. It’s no answer at all. What the heck.
  • It’s context less (yeah. we had that before): Tell me: What’s the path I currently have selected in the screenshot? How can I know I have selected the correct folder? I may – after all – have multiple Richard Wagner folders on my harddrive
  • I wanted to write that it violates fitts law because you had to click those small ‘+’-signs (as the context sensitive help tells you). And now – after years of using this dialog I finally learned that you can double-click folders to expland them. I did not know that until now
  • When you have mounted network drives, it’s a living performance-problem as the top layer of the dialog displays all drives which can take some time. In which the dialog (and the unerlying app freezes).
  • The deeper you get in the hierarchy, the more you have to horizontally scroll.

I’m sure I can list even more, but enough is enough. I’m sure you get the point

Microsoft, I beg of you: Redesign this dialog!

Force the programs to use the new design. Don’t provide a fallback!

This way only the programs that are actually re-building this dialog (instead of calling the API) remain broken – and after all, they were broken to begin with: Why rebuild something crappy? Why rebuild it and risk it only being similar but not identical in usage? Why rebuild and risk it remaining broken even if the dialog gets fixed?

And believe me: There are people rebuilding existing OS-features. For no reason at all (see another posting about Adobes new file selection dialogs)

Sorry. Connection’s down

We all know it: Network connections are unreliable. This is ok and I have no problem whatsoever with that. Connections can go down. Nothing serious, nothing special.

There are multiple ways how software can let you know that a connection dropped:

  • Crash. This is the second worst way to handle it. At least the user knows what to do: Restart the application and it will (hopefully) work again.
  • Connection failed: Software caused the connection to abort. Somewhat incorrect, too much information, a bit scary for the enduser, but common for many Winsock-Applications as this is the default error-message you can ask windows to provide you with given a specific error-code
  • Sorry. The connection somehow went down. Should I try to connect again?. Correct, not technical, not scary. This is how I try to explain it to my users.

Well… and then there’s the IBM DB2 client:

SQL30081N A communication error has been detected. Communication protocol being used: “TCP/IP”. Communication API being used: “SOCKETS”. Location where the error was detected: “3.134.144.87”. Communication function detecting the error: “send”. Protocol specific error code(s): “104”, “*”, “0”. SQLSTATE=08001

What the hell?