Accessible names for buttons (button-accessible-name)

Buttons must have non-empty accessible names, using visible text, aria-label, or aria-labelledby attributes.

Note: Adding role="none" to a native <button> does not remove its semantics if the element is still focusable or interactive. Due to Presentational Roles Conflict Resolution, the button still has a semantic role and requires an accessible name.

Button with role none:

This <button> element has role="none" but remains focusable and interactive. The role is ignored and the button retains its semantic role. It does not have an accessible name, resulting in a failure.


Note: Possible to implement because it can be programmatically detected when a <button> has no accessible name, and an invalid role="none" is ignored due to the element's native behavior.

axe detected: 4.1.2  |  QualWeb detected: 4.1.2