Links as buttons in web applications - say no!

I have been working as an official business analyst for just over 10 months now and one large piece in my current position is to be the user advocate. This typically manifests itself as lead tester of software. I have been watching a trend, here in Whitehorse, that sees an increase in the use of links as buttons, or link buttons. These link buttons are used on forms and are usually used to indicate a secondary action - the primary action is usually a button.

First off, I am not an official interaction designer (IxD) nor am I a guru in this space but I have implemented a lot of interfaces on lots of different platforms, soaked in the design guidelines of many platforms, worked closely with IxD people and have what I consider a decent eye for a usable interface. That out of the way...

My primary concern with the use of a link button is that it is running against 15 years of ingrained mental models - a link navigates; a button signifies an action. Using a link to signify an action breaks that mental model. It requires users to think if they are triggering an action, such as submiting a form, or navigating to another page or application screen.

A secondary concern is the web browser can store that action in it's history allowing the user to use the Back button to return to the previous state. The user probably does not wish to return to this location, but navigation actions are stored, button actions are not store in the same manner.

Link buttons get more twisted when working with the web as application. In a regular desktop application I have not seen links to signify actions - they are navigation links to help files, web sites, other external locations. Pure navigation. However, in the web as application the purpose of the link can be used for dual purpose - because of design decisions. I state that you can use other techniques to indicate primary and secondary actions without causing user confusion or design issues.

I propose an end to the use of the link as button on website. It has the potential to confuse the user, it breaks the mental model of what purpose a link serves and the usability aspects can be accommodated using standard input tools.

This forum thread comes from this argument from the other direction (buttons as navigation) but the arguments are the same in reverse.

Comments

Replied

Simple rules of mine

I meant to reply to this post a long time ago, but forgot. You need to write on your blog more often so I remember to come back :) My personal rule regarding buttons and links is as follow: Buttons change the state of some data set. They are meant to issue commands. Conversely, links should only be used to move around (navigate) the application's screens. They should not be used to issue commands.

Replied

User's mental model that consistent?

Have you found that users already have a well-developed mental model of buttons and links? While I agree with you about the differences between buttons and links, I find that many experienced users have confused notions of how these things work. For example, I've given up correcting people that insist on double-clicking links. Their, quite popular, mental model is that you have to double-click anything to get it to "do something", whatever that something is, even though a single click is all that is necessary: links, buttons, menu items, taskbar program icons, etc.

I suspect previous UI design inconsistencies have brought this on, so being consistent from now on can't hurt, but it'll likely take quite a while before the desired mental model takes hold in the majority of users' noggins.