Buttons shouldn’t have a hand cursor
Adam Silver

The spec simply says that the pointer cursor is for links.

W3C on the pointer cursor, 1997–2018

This language is important because it does not say anchor. What is a link in terms of software? A link is a node that connects one resource in your document to another piece of referenced data. Traditionally, the only way to link an idea to further reference was via an anchor, because pages were, by nature, a single layered document. You could take the user to another part of the page, or to another page entirely, but you could not offer the user the option to find linked reference data in place without opening a new window with a new document.

This is no longer the case. A designer can hide a menu, an aside, a large image, anything they desire with a seemingly infinite z-plane. The semantic element to use for these behaviors is a button, not an anchor, as an anchor must either provide or be the destination of a link, or in other words, it must be a hyperlink, which, instead of simply connecting data, it must connect documents (either to each other, or to itself). A button simply must be able to be activated to perform an action for the user. If the button links the user in place to data in reference to the button they have clicked, we now meet the criteria of the W3C guidelines, and may utilize CSS to indicate to our user that our button is interactive, and will provide them with some sort of contextually relevant data.

Currently, the default cursor does not differentiate between an enabled button, a disabled button, white space, and decorative elements lacking text nodes. This is a key indicator that the default behavior is not enough, which is why we have to style the elements for additional user guidance.

The W3C spec for cursor was drafted in 1997. Many things on the web (and in general) have changed since then. The W3C is not a static document, and with all things, must adapt to conventions and user behavior. The web obviously looks nothing like it did in the late 90’s, and buttons are often used for ‘doing’ things now, and are styled in unique ways per contextual UI/UX.

The problem is not that W3C guideline isn’t inclusive of a button, it’s actually that language and UX/UI has evolved in a such a way that the statement seems less ambiguous and more element stringent than it really is. Perhaps the spec needs to be updated in a much more concise manner than I’ve described to you here, and everyone can be happy, and users can have clear direction with their mouse’s cursor.