If you program for a nontechnical audience, you find yourself at a high risk that users will not read your carefully worded and enlightening error messages, but just click on the first button available with a shrug of frustration.
So, I'm wondering what good practices you can recommend to help users actually read your error message, instead of simply waiving it aside. Ideas I can think of would fall along the lines of:
- Formatting of course help; maybe a simple, short message, with a "learn more" button that leads to the longer, more detailed error message
- Have all error messages link to some section of the user guide (somewhat difficult to achieve)
- Just don't issue error messages, simply refuse to perform the task (a somewhat "Apple" way of handling user input)
Edit: the audience I have in mind is a rather broad user base that doesn't use the software too often and is not captive (i.e., not an in-house software or narrow community). A more generic form of this question was asked on slashdot, so you may want to check there for some of the answers.