We're having a discussion in the UX department here at work as to whether or not hover states are necessary to a UI. We're kind of divided. Here are the two arguments:
Against (started the discussion):
I have personally had a predisposition to not have hover states…to me, it adds visual noise without really any benefit except in very limited circumstances. Coming from the mobile world, there is no such thing as a rollover state, and I have never missed this or wished that is available for basic items. PC software did not used to use rollovers, but I was just testing it out and I see that they are now used heavily. But I looked up some Mac YouTube Lion videos and they do not appear to use hover states.
For (first response):
The short answer is, yes, we need to have hover states on every button in our interface. And I typically extend that to anything clickable (list-box items, links (although that comes for free), and any other custom elements like whiteboard nodes or table cells). I would bristle at the idea as well, and will typically be forcing hover states to be added if they aren't already.
It’s funny because this is just something that is so standard now that it’s never questioned. Most research I can dig up have to do with what the right hover treatment rather than testing whether hover should be used. You’re right that it wasn't used in the past but that was more a UI technology deficiency. It is certainly possible users just expect it and so the technique has become a de facto requirement. Moreover, not having hover tends to come across as antiquated. For those reasons, coupled with the fact that I don’t think hover states have any negative effect on usability, is why I’d say we should always use hover.
I’m not sure I quite see the visual noise component. I always push designers to make hovers very subtle (like 60-80% of whatever the selected state is). When they are done correctly they provide visual feedback to the user that the control does something. It also helps the interface communicate with the user—it’s as if it tells the user that the application is listening.
Here's my addition to the conversation (I am pro hover states):
I think there is an inherent necessity for hover states on particularly non-traditional UI elements. With Submit buttons, links, and list items, I think there’s an expectation and assumption that they’re clickable. Other items like canvas/draggable elements aren't “natural” UI elements, so users wouldn't necessarily know that there are underlying actions associated with those objects.
Cursor changes (changing from normal to pointer) are enough of an identifier for me to know that something is clickable, but most people don’t understand this distinction. It’s not visual enough because it is a subtle change in shape. Unless you’re zeroed in on the arrowhead, you’ll hardly notice it.
Hover states, on the other hand, offer higher visual stimulation because [I would argue that] the brain naturally responds to changes in color more rapidly than it does to changes in shape.
I'd like to hear everyone's opinions with regards to hover states. Do you use them? When do you find them necessary? Or are they just visual-noise?