The cursor is not a hand pointer because the button is not a link. The button is an element of the page that you can click on to perform an action. When you hover over the button, the cursor changes to a pointer to indicate that you can click on the button.
Some people may think that the cursor should be a hand pointer because they are used to seeing the hand pointer when they hover over links. However, the hand pointer is only used for links because it indicates that you can click on the link to go to another page. The button is not a link, so the cursor does not need to be a hand pointer.
Historical Context
The button control was derived from traditional desktop software UI, a context where the hand pointer has never been used before the advent of the internet. So there was no reason to use the hand pointer for buttons on web pages.
Some designers may choose to use a hand pointer for their buttons, but it is not necessary and can be confusing in some cases. If you are using a hand pointer for your buttons, make sure that it is clear that the button is not a link. Otherwise, users may think that they can click on the button to go to another page, which may not be what you want them to do.
Buttons have a high affordance which visually suggests how they can be used. A hand pointer would not add to that affordance and may in fact reduce it by conflicting with the user’s understanding of how buttons work.
Best Practices for Designing Buttons
Here are the best practices for designing buttons:
- Use the pointer cursor for buttons
- Use a button style that makes it clear that the button is not a link
- Make sure the action that the button performs is clear
Following these best practices will help ensure that your buttons are clear and easy to use.