The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Should the left or the right button be the submit action?

Most web forms have "submit" and "cancel" buttons. Post a message on this forum and you can see how Fog Creek has it:

[ OK ]  [ Cancel ]

Now, we know that putting the submit button on the left was a conscious decision. And that's how the vast majority of sites do it. But my natural inclination is to look for Submit on the right. I guess it's because that's where you're going when you submit - the next page. It's like a "next" button, which you would always put on the right side. (Just look at the next/previous buttons in your browser).

I think it's most natural for anyone whose language is read from left to right to expect "next" to be to the right, and "back" to be to the left. So, shouldn't our "Submit" and "Cancel" buttons follow the same paradigm?

Anyone who uses both Macintosh and Windows might notice that the two OSes use different standards for this. The Macintosh has the submit button on the right in dialogues. Windows puts them on the left. The Macintosh Human Interface Guidelines told developers to put the submit button on the right. But they don't tell you why. I suspect it's because of the next/previous equals right/left inclination.

For whatever reason, Windows apps do it differently. And so, the vast majority of computer users are familiar with this use. Experienced computer users are conditioned to expect submit to be on the left, which is probably why you see it emulated on the web, like in the form I'm submitting now.

So, the question is, is this really for the best? Should you do what likely makes sense to an experienced Windows user, or should you do what seems to make more natural sense? It's an important issue, because someone clicking the wrong button could be a big problem when they have opposite results. I've seen some sites try to get around it by doing something like this:

[<< Cancel ]  [ Submit and continue >> ]

...presumably to try to make it more obvious what's going to happen when you click the submit button. I'm thinking about not putting these buttons on the same baseline to avoid the problem altogether. I'd love to hear what other people think about this.
Patrick Laj Send private email
Friday, February 25, 2005
?Should you do what likely makes sense to an experienced Windows user, or should you do what seems to make more natural sense?"

You should do what is standard for your OS.  In Windows, that means:

[OK]  [Cancel]

In Mac, that means:

[Cancel]  [OK]

If you don't, people will hate your program without even knowing why.

Whether YOU like or not, MS did come up with a standard way of doing things when it introduced Windows, and almost everyone follows that standard, and it would behoove (yeah, I like that word too) you to follow the standard.

As a programmer it's hard to fight the impulse to "do things the RIGHT way rather than the way the world does things," but you're not talking about programming here - you are talking about standards in human-machine interaction.
Karl Perry Send private email
Saturday, February 26, 2005
Hes talking about the Web.  There's no OS standard to follow. I always put the action on the left on webpages because when you're reading left to right and go down a line, your attention is focused on the far left. It's also what most people are used to.
Martin M
Saturday, February 26, 2005
In Windows, if you're using a wizard, and your buttons have arrows, then it should be

<<Go back    Continue>>

But if you're using a dialog box, it should be

[OK]  [Cancel]
[Yes]  [No]
[Yes]  [No]  [Cancel]

The easy way to remember is to do a quick MessageBox.Show in .NET, or MsgBox in VB6, with OK and Cancel buttons and look at what order they show up in.
Kyralessa Send private email
Saturday, February 26, 2005
Put it on the left. It goes with the tab sequence.
Pythonic Send private email
Saturday, February 26, 2005
"Hes talking about the Web."

I just jumped on someone in a thread in Biz for not reading the OP carefully enough.  Now I find I'm guilty of the same sin.


"I promise to read posts more carefully."
"I promise to read posts more carefully."
"I promise to read posts more carefully."
"I promise to read posts more carefully."


So this touches off another subject.

What percentage of the computing world is surfing the Web from a Windows box (and is used to [OK] on the left then) vs. something else OTHER THAN a Mac?  Isn't this just a variation on a theme?  If 80% of the world is used to seeing the world through Windows-colored glasses, doesn't that make a de-facto standard and it would make sense to write web content to it?
Karl Perry Send private email
Saturday, February 26, 2005
"If 80% of the world is used to seeing the world through Windows-colored glasses, doesn't that make a de-facto standard and it would make sense to write web content to it? "


But many people balk at this defacto standard merely to be iconoclastic or because they fear Microsoft's dominance.  (I've felt that fear on occassion :-).

For example, I've had 3 different, smart, folks who, when I told them my company makes speech therapy software, ALL said "why don't you do it in java on the web". One of them even said "why didn't you write it for Unix" ???

Thier point is "oh, if you put it on the web then ANYBODY can use it".  But that ain't true. There are (I think) more people with Windows 95-xp than there are people on the web because many of those people (in my experience) do not have internet access, or if they do, it's via long distance so it costs them $6/hr. 

It's, I think, a knee-jerk reaction: " if you go to a lot of extra effort, you'll be free of Microsoft's chains". Well, for a tiny flea like myself, I don't have to worry about direct MS competition, so those are golden handcuffs to me.
Mr. Analogy {ISV owner} Send private email
Saturday, February 26, 2005
"One of them even said "why didn't you write it for Unix" ???"

Oh, and to this fellow I was tempted to say:
 "hmmm.... do you find that many grandmothers are running unix?"
Mr. Analogy {ISV owner} Send private email
Saturday, February 26, 2005
The problem with the "Windows" way of doing things shows when you have a third button saying "Advanced..." or "More stuff to play with..."

Then OK goes in the middle and all the rules break for no good reason.

I had the same dilemma when I started porting my app from Mac to Windows and I created some code to switch their places, but then I turned it off. I do compare this to Back/Go metaphor and this way OK & Cancel are always at the same place, even if I'm adding new buttons over time. Mac rules then become real rules and interface is more "stable" as I see it.

So, I'll just wait till Windows people start complaining and then I'll put it as option somewhere in Prefs. So far, no one asked.

The point is - Office:Mac has them as it's done on Windows. If they think this ain't important, who am I to judge?
Saturday, February 26, 2005
I don't think I helped you much with my previous post.

What I said is related to one of the rules of good design that you should be guided by your own experience and what you think is right to do. It is your creation.

But, there's another rule. If you ever see someone having a hard time with your ideas ask him why. If it turns out he expected OK on the left side, reconsider your design and adjust your own beliefs.

You should be ready to change almost anything if it bothers your users. For that, you need to find some time and watch them use your design and here and there you need to listen to what they say.

But it's your design. There's no innovation if no one is bending the rules and going against what others think he should do.
Saturday, February 26, 2005
As a Mac user I often look for the default / most likely action to be in the bottom right.  Looking at these boards I see [ok][cancel] on the post, where OK is the common option.  But on the prior screen I see [other recent topics][reply to this post] where REPLY is probably the most likely action.  So the positions are swapped within the space of the board itself.

Of course I could also talk about web forms tendency to follow Windows and say "OK / Cancel" when they really mean "Submit / Cancel".

For my web interfaces I use verbs for the button text and I put the default to the right and I use custom buttons which shade the default differently.
Lou Send private email
Saturday, February 26, 2005
I also spotted that the [Other recent topics] button and the [Reply to this topic] button are arguably in the wrong order. They are out of step with the order of all of the other buttons used in the JOS discussion forum pages. I only spotted this when building my own discussion forum, based on the JOS design principles. Of course, my variant has the buttons switched.

The JOS button inconsistency is only apparent if you deeply review the page layouts. If you are just posting then you intuitively find the [Reply to this topic] button, even though it is on the 'wrong' side.
Mike Green Send private email
Sunday, February 27, 2005
Usually I would see:

[<< Back] [Next >>] [Cancel]

If you're trying to think of Submit as next, then Cancel is still Cancel and would go on the right, with submit on the left.
Sunday, February 27, 2005
Make your scripts smart: Have them look to User-Agent HTTP header, decide whether the user is running a Mac or Windows, and display the buttons accordingly.
Developer next door
Monday, February 28, 2005
I just hate "cancel" at all and I don't really think it useful for anybody...
Carfield Yim Send private email
Tuesday, March 01, 2005
The idea is not to bury the Submit button in a row of multiple buttons. [Submit] is not directional. It's more like "jump", and may actually skip steps depending on what options have been chosen. Reading left to right, your first button may complete a task. [Next] is for pagination. [Save and Next] or [Submit and Next] would be more appropriate in a workflow.
Saturday, March 05, 2005

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz