aria-pressed
The aria-pressed
attribute indicates the current "pressed" state of a toggle button.
Description
Adding aria-pressed
to an element with a role of button
turns the button into a toggle button. The aria-pressed
attribute is only relevant for toggle buttons. It represents the button's current "pressed" state.
The value is "tri-state", meaning the value can be set to true
, false
, mixed
, or undefined
values. In the case of aria-pressed
, like most tri-state value types, the default value is undefined
.
Toggle buttons require a full press-and-release cycle to change their value. Pressing and releasing it once changes the value to true
. If it's pressed and released again, the value changes back to false
.
A value of mixed
means that the values of more than one item controlled by the button do not all share the same value.
Do not change the contents of the label on a toggle when the state changes. If a button label says "pause", do not change it to "play" when pressed. In this example, when the pressed state is true, the label remains "Pause" so a screen reader would say something like "Pause toggle button pressed".
<button aria-pressed="false">Pause</button>
If you want the label to toggle between "Paused" and "Play", don't use aria-pressed
.
The first rule of ARIA use is "if you can use a native feature with the semantics and behavior you require already built in, instead of repurposing an element and adding an ARIA role, state or property to make it accessible, then do so." If we employ native HTML semantics with <button>
, we can toggle the label instead of toggling the pressed state, removing the need for the aria-pressed
attribute.
Values
false
-
The button supports being pressed but is not currently pressed.
mixed
-
Indicates a mixed mode value for a tri-state toggle button.
true
-
The button is pressed.
undefined
(default)-
The element does not support being pressed.
Associated interfaces
Element.ariaPressed
-
The
ariaPressed
property, part of theElement
interface, reflects the value of thearia-pressed
attribute. ElementInternals.ariaPressed
-
The
ariaPressed
property, part of theElementInternals
interface, reflects the value of thearia-pressed
attribute.
Associated roles
Used in roles:
Specifications
Specification |
---|
Accessible Rich Internet Applications (WAI-ARIA) # aria-pressed |