8

This site itself seems to be using a "no-access" prompt rather than just hiding the controls that the user can't use.

UX.SE

In my opinion, hiding the controls would be better since the user can't really use them. But why is a "no-access" prompt applicable in some cases? Is there any UX studies regarding this subject?

1
  • Note that when you are not logged in, these buttons will do the additional action of trying to log you in
    – PlasmaHH
    Commented Jun 10, 2014 at 9:47

2 Answers 2

9

Unavailable options shouldn't be hidden if they give context to other elements. If they are not needed for that purpose, they should be hidden.

For example, here at SE, the large up and down arrows are always displayed because they inform the user that the numbers on the side are the result of voting. Without those arrows, the numbers on the side would be orphaned, and new users would have no information as to how that number was derived. Many, and I'd actually say most, other options are hidden when they are unavailable (e.g. links such as "add comment" and "edit") because they're unnecessary to explain what is going on around them.

7

There's a pretty good discussion about the subject at IxDA: Hiding and Disabling Menu Items. This links directly a post by Joel Spolsky titled "Don't hide or disable menu items", stating:

A long time ago, it became fashionable, even recommended, to disable menu items when they could not be used.

Don't do this. Users see the disabled menu item that they want to click on, and are left entirely without a clue of what they are supposed to do to get the menu item to work.

Instead, leave the menu item enabled. If there's some reason you can't complete the action, the menu item can display a message telling the user why.

I guess that explains the behavior on the Stack Exchange sites.


In the end, I believe it all boils down to error prevention vs. error recovery, i.e., should we allow the user to make the "error" (click an inactive control) and recover with an explanatory message—or should the control be deactivated (or even hidden) in the first place?

Not the answer you're looking for? Browse other questions tagged or ask your own question.