On a windows based LOB application for data capturing. Is it better to hide a button completely when it is inactive, or simply show a disabled state for the button.
As with so many questions regarding UX, the answer starts with 'It depends'. This is because UX is inevitably based on context and action.
Some arguments for using a disabled state:
- Even if not in use, the user has a chance to learn that the action is possible. You may even have a tooltip explaining the criteria for use.
- The user can learn where controls and buttons live within the interface. This assumes that if a lot are hidden at one time the structure would be less clear. (Depending on your design).
Some arguments for hiding the button:
- Clarity. Only showing what is needed for the task at hand. Attention is focussed.
- It allows you to change the controls, using the same space for different means. Gmail does this. This is handy when there is a lot going on.
The questions you should ask yourself are
- "What does the user need to know at this point?"
- "What does the user need to do at this point?"
Remember that no screen is in isolation. Each frame helps tell the story. So if you can establish an idea or pattern previously the requirements for this screen may change.
While simplicity is a great goal (potentially supporting not showing the button) you should never simplify more than necessary. Therefore if the user needs to know about the existence of the button, or you need to build the context, you might need to consider it.
A good testing regime should tell you this.
I would suggest that hiding the button completely can add confusion for the user, as the other (unhidden) options might not make as much sense when you don't know the alternatives.
Allow me to give an example:
If the button which the user can see is "old" and there is an opposite button hidden - the hidden button could be "new" or "young" as they are both opposites of the same word.
OK, that's not an ideal example, but I do think users like to have a more complete holistic view of the situation they're in and hiding data may remove from that.
Some might say that if the other button is disabled it doesn't matter as the available option is still the same, but I would still argue that a user should be given as much information about their position in the UX as possible.