When the gas pedal becomes the brake pedal
In my company, we have a large in-house intranet application that drives me insane. Literally. In the interest of not having to train people how to use a web browser, they’ve used modal windows (real ones, for MSIE only, not the modern version using javascript and divs) and other components that completely break expected behavior of a web page to any experienced user.
I can’t copy and paste text, my right-click is broken, I can’t use the arrow keys to navigate, the tab key doesn’t tab form elements properly, and the enter key doesn’t submit forms. The modal windows render IE tabs useless. So we end up opening this particular application in its own MSIE window and open a different instance for everything else.
Every time I mention that something is “broken”, I am told it is by design to help our poor newbie users not break anything.
The design completely violates any semblance of usability, standards, and sanity. Experienced users are frustrated to the point of wanting to bash someone’s skull in. So, when I’m surfing the internet and see posts like this one, detailing how to break your application on purpose because you don’t feel like training users, it makes me want to scream.
If people are “accidentally submitting” the form, it’s a lot better, at least in my opinion, to force a confirmation than to break the form. Even better, try TRAINING people. I know, that’s just nonsense, isn’t it?
The tab key moves between fields, not the enter key. If you need to allow carriage returns in input, then use the correct form element to allow it, such as textarea.
As far as I’m concerned, as a user, the form is SUPPOSED TO SUBMIT WHEN I HIT THE ENTER KEY. A simple google search shows I am not alone — people consider the thing broken if that doesn’t happen.
Breaking expected GUI behavior to cater to your inexperienced users is like saying you have a subset of people who drive cars who prefer the gas pedal to be on the left side and the brake pedal on the right, so that’s how you’re going to design YOUR car. That’s just great. Now, I’m used to the gas pedal being on the right, but when I get in YOUR car, it’s on the left. Thanks for confusing the hell out of me and making me think your car is broken.
Standards exist for a reason. In a car, the steering wheel steers it, the pedals are in the same spots, and other controls work similarly enough that a person should be able to get in the car and drive it with little fuss, as long as they already know how to drive another car. For computer applications, Mac applications, Linux applications, and Windows applications all have conventions so that a person learns which keys tend to do which actions. An example of this is the control+c key combination on Windows. That should copy things to my clipboard. If it did something else, I’d be confused and peeved. You wouldn’t hijack that key combination for your winforms app (unless you enjoy frustrated users), so why would you hijack the enter key for a web form?
Am I alone in getting this annoyed? Do you think there is ever a good reason to choose to break a form for experienced users in the interests of inexperienced ones? Share your thoughts in the comments.
Edited to add: Due to the comments left, I want to be very clear here. It’s the CLIENTS I am pissed at, most of all the people who requested the abomination I have to use every day. I fail at English.


October 17th, 2008 at 9:20 am
With regard to my “Hijacking” post, you’re very presumptious and borderline irresponsible in saying “…detailing how to break your application on purpose because you don’t feel like training users…”
Keep in mind that making the enter key trigger tabbing instead of form submission was not my idea — it was a customer request, one for which I was paid and obligated to do, so I did it. In following up with my customer last week, 2 years later, they’re extremely happy with it and that functionality in particular. That’s the most important thing.
Before you call someone lazy, take the time to think about what’s best for the user. If they asked for it, they wanted it. What’s more important than your ideal of how things should work is how the user wants it to work. Citing my post should be more of an embarassment for you — not for me.
October 17th, 2008 at 9:30 am
I hate to admit it, but unfortunately David is correct. Sometimes you just HAVE to deliver what a client wants, even if it seems crazy. As developers and designers, we can only guide a client and hope they listen to sound advise. it just doesn’t always work out that way.
October 17th, 2008 at 9:45 am
I agree with David also, not only it was a client’s request, he states the following: “While I certainly wouldn’t recommend this for every form, it definitely suited this customer’s needs.” In other words, don’t break the form, but if your client needs it then here’s how you could do it.
October 17th, 2008 at 9:50 am
So just because you don’t like something no one should be able to ever use it? or even attempt to teach another to use it? Regardless if it was a customer request or a wind hair up David’s ass doesn’t’ mean that SOMEONE out there doesn’t want it. Many accounting systems for years have used enter to move from field to field, maybe a client wants to hide the fact that it’s a web application from their workers, or any other number of valid reasons for implementing code such as this. I’m sorry you work for a company that hires idiots and uses different keystrokes in their web application, but that isn’t the rest of the internet’s fault.
October 17th, 2008 at 10:24 am
It’s good design that trains people how to use your site, and the fact is, new users and clients don’t give a damn about standards. Push back at first, but then do what they pay you for.
Frankly, training a user on using a web browser has little to do with showing a user how to use your site. Just as your holy Google grail breaks page validation for usability, so shall some standards need “breaking” for your users.
October 17th, 2008 at 11:12 am
I agree with David 100%. Many of the websites that I have been awarded were due to stubborn and ignorant developers not listening to the client. Clients get tired of repeating themselves to developers that think they know everything or refuse to change something because they don’t agree with the decision. Remember, as designers and developers, our job is to offer solutions, suggestions, and options. While we might not agree with the final decision, they are paying us to provide a service. To bend your car example, should I be mad when I drive in England because the steering wheel is on the other side of the car or that I am on the other side of the road? Make it easy for the web visitor, track statistics to determine the best method, do what the customer asks, and everyone wins.
October 17th, 2008 at 11:31 am
I read David’s post a while back and cringed when I first saw what the post was about. However, I understood his need to do this. I also clearly noted his caveat at the end of the post about not being a good solution for all situations.
You should step back a bit from your rant against him. It was not David’s job to train the users. It was his job to listen to his customer’s request, provide feedback, and then ultimately execute what the customer decided to proceed with. Any training became the company’s responsibility, not David’s.
I’ve also been quite frustrated by many accidental form submissions due to the “correct”, standards based execution of the enter key. Damn frustrating sometimes. I guess your response would be that I should get more training and learn how to be a better typist…. Sometimes, an alternate solution is best.
October 17th, 2008 at 7:55 pm
I need to take an English class and learn to write better if so many coders got their panties twisted over the fact that I despise when CLIENTS ask for requirements that make my life more difficult. I think it’s a lack of a general “you”.
I should re-word this:
“So, when I’m surfing the internet and see posts like this one, detailing how to break your application on purpose because you don’t feel like training users, it makes me want to scream.”
Lets try that again and communicate it as
“So, when I’m surfing the internet and see posts like this one, detailing how to break an application on purpose because clients don’t feel like training users, it makes me want to scream.”
Does that work better and communicate that it’s the notion that clients ask for such things that pisses me off?
Thanks for reading!