views:

81

answers:

6

Searching for input about UI design patterns regarding the use of hyperlinks vs buttons.

A screen in a web application should/could have a mix of buttons and hyperlinks on it. It seems that the 'look' is the major governing factor as to which is used, but I want something more logical than that.

Does anyone know of any hard and fast rules about when to use each one?

Do you have guidelines of your own that you'd like to share?

Thanks.

+3  A: 

Links go places. Buttons send data places.

In a nutshell, if you have form data, have a button. Otherwise, don't.

David Dorward
+1  A: 

Generally, buttons are used to submit forms, I.E. login, purchase order, etc.

Links, on the other hand are most often used to move between pages.

zipcodeman
A: 

In addition to the send/vs navigate difference that others have said, it is also important to consider that links can be bookmarked.

Daniel Auger
So can buttons. Forms **can** have `method="get"`, in fact, it is the default. Take Google search results, for instance, they can be bookmarked.
David Dorward
Very true. I was thinking more in the right click and save bookmark sense.
Daniel Auger
A: 

One set of rules that I follow (not necessarily scientific ones) is:

Buttons:

  • When I am on a form (the submit button)
  • When I need to make an action stand out in a certain page (like "Add a new person" or "Buy now")

Links:

  • All other cases
Petros
A: 

Hey,

Take a look at existing applications out on the web and see what they use. Links are generally used in social apps like facebook, but that's not a hard and fast rule. Check out what others have done in the same genre of the application you are working on.

Additionally, some frameworks change some of the rules. For instance, ASP.NET links can post to the server, so links have some more weight (though the MVC framework does not have this capability).

HTH

Brian
A link can never post data to the server (and the backend technology is irrelevant since links are handled by the client). A link could have some JS attached which posts data to the server, but that would fallback to a GET when the JS didn't work, so is almost always a terrible idea.
David Dorward
It does use a client-side method to do the post, but it is a post operation. There is also support in JQuery for posting data ($.post) so JQuery can do a post from a link as well... And .NET still seems to work even without JS enabled, so I think they covered that base as well, though I admit I'm not sure why....
Brian
A: 

As others have said, but possibly a bit more general:

  • Links go places.
  • Buttons do things.

(ie more 'do things' is more general than 'send data'. Of course 'going' somewhere is 'doing' something, so I guess buttons do things besides go places.)

Usually. :-)

tony