This is a “what not to do” type of lesson… I signed up for a twitter account a while back. I don’t use it much but I wanted to see how well it worked from my iPhone. As I was clicking pointing around, I was apparently looking at my list of entries and I clicked on the “follow” link. I received this message: “You can’t follow yourself!”, outlined in red. Not being able to follow yourself makes sense, so why did I have the option?
The red box and the exclamation point made it seem like the app was yelling at me for doing something wrong. Being a developer, I get it. I know what I did made no sense and I don’t take offense, but take another user and do that and they will feel as if they did something wrong. This is like putting a piece of steak on the floor and yelling at your dog when they try to eat it. Links are meant to be clicked, that’s what you do on the web.
On a similar note, a co-worker sent an email out the other day pointing out a button on one of our internal apps followed by a very verbose message explaining that the button should only be clicked once or the form would be submitted twice. There are a few problems with this. The first issue is that users on the web don’t read, they skim over content and if they are filling out a form, the button is the end. Why read after that? The second issue is that it would have taken nearly the same number of key strokes to write the javascript to disable the button on the first click as it did to write the warning that never gets read. I’ve worked with some people in the past that insisted on double-clicking hyperlinks, so issue number three is the number of duplicate submissions that have/will undoubtedly result from this design.
Why set your users up for failure? If a link performs a function that is not valid in a given situation, remove the temptation. Disable the link or remove it completely unless it is a valid option. If you want a user to click once, don’t let them click twice.
If a desired end-user behavior can be enforced in an application, it should be. This will provide a better user experience since your application won’t have to tell the user that they have done something wrong and you may avoid some unintended application behavior in the process.
Usability
UI, Usability, user experience