Apr 9, 2009

HCI: bad error message example

I have several PHP IDEs installed and switch between them sometimes. I prefer Komodo IDE for most cases but sometimes I need Zend Studio (Eclipse–based). Today is exactly that day.

The problem

There are six TYPO3 projects in my Zend Studio workspace. I tried to close one and open another. Here is what I got from Eclipse:

How many usability issues are here? I count these:
  • "An internal error occurred while showing an internal error". Whaaaaaat did you want to say by this?
  • "You are recommended..." is an action prompt. It should not be in the middle of the text but moved to the bottom, where the question is.
  • What is "workbench"? I though I work in the Zend Studio.
  • I am recommended to exit the workbench. Okay. But... Why the default button is "No"? So do you recommend to exit the workbench or not?
These issues are certainly small. But they make the reader feel uncomfortable. They are not clearly written and the default action contradicts the prompt.

A better alternative

How would I change the text? I would write something like this:
A series of internal errors has happened. Further errors may result in data loss.
To prevent data loss we strongly recommend you to exit the Zend Stutio. Would you like to exit now?
And put the focus on the "Yes" button.
I am not a native English speaker but to me this sounds better. It is not very technical. I do not mention the .log file, which most users will not find anyway (and some will not find it useful at all). I also do not use such strong words as "terminate without warning". I show that error is critical enough ("may result in data loss") but I avoid scaring users to much.
What does it mean globally? It means that usability is important and details are even more important. I found that the best way to see how usable is something is to give it to a non–technical person to read or try. Then fix it. This way ot works.


  1. I agree and I hate the passive mode with a passion!

    "You are recommended ..." - what does this mean? Who recommends? As in all interactions - human or not - there is agency here. So yes, I prefer your solution. Passive mode is often used to hide responsibility or to shy away from conflict. Sadly, in the TYPO3 guidelines for translations passive mode is encouraged.

  2. Just found yet another example: http://is.gd/ry7k

    This is news about one company that tries to sue Apple. There is a comment field there. I wrote a comment. When I pressed 'Submit' a JavaScript popup told me I must login first. Why did they show the comment field at all? I spent 5 minutes typing a comment and the time was lost! :)

    There is so many things for improvement in the usability area!

  3. Yah.. I think the problem at all is: when you write such an error message, you usually do this during your coding work. An at the time you are programming you think technical and don't care about usability.

    Afterwards you know better.. but hey, who care's about it any more? That's the problem I think.. As I figured it out some time ago, I started writing errormessages and translations after I finished my work.. Think it's better 'cause you aren't in a hurry then and start to think more rational and usability-based..

    Btw. sorry for my cocksucking English, I don't know why it's that bad at the moment, but I'm tired and maybe drunk.. don't know -> sorry! :)

  4. Bernhard, if string are not hard coded but put into language files, it should be easy to change them later. May be this is a way to consider for developers...

  5. Yah, but that IS the point I was trying to make. Coders DO not change the translations later. They got other "Problems" when they're finished with the work and don't even think about that. Maybe if they don't care, maybe if they don't want or they are too lazy..

    nobody knows.. :/

  6. I definitely agree with Dmitry. As programmer you are designing the user interface therefore you need to take in consideration the end user by offering informative feedback that could be of real help to solve a particular problem or “error”. It is very disappointing when instructions are not clearly written and the default action contradicts the prompt.