I take what happens on Stack Exchange as example.

When you used all your votes to close questions, the dialog box is still shown, and (if you select the question that is duplicated) the "Vote To Close" button is enabled.


What would be better?

  • Enable it as it happens now, and show an error message if the user click on that button
  • Keep the button disabled, and show an error message directly on the dialog box
  • Highlight the part of the dialog box showing the number of votes the user has
  • Avoid showing the dialog box to close the question, and show the message error directly.

2 Answers 2


Typically I disable buttons that the user cannot select because of their current context. The only instance where this can be confusing is if the user does not understand why the button has been disabled or (if its possible to re-enable the button when a certain criteria is met) what they need to do to re-enable it.

In this particular instance, since "0 votes remaining" is sitting right next to the button the explanation for why the vote to close button is disabled is presented in the immediate context of the button. So I don't think it would be confusing at all to simply disable it. Of course usability testing is a good idea if you are uncertain if your users will understand what is happening with the application.

The option for removing the button entirely I tend to avoid because the user may be confused by the change in the application and may not understand why a button is missing. (Did a bug occur? Did I do something wrong? Did my permissions get revoked?) Leaving the button present but disabled gives the user much more information then hiding the button would accomplish.


I agree with Matt about disabling elements. One thing I have used successfully in the past is to change the tool tip to indicate why it is disabled. However, that implies the user knows to hover over the element.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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