HTML / Accessibility
ARIA roles are for more than screen readers
ARIA describes roles, names and states to assistive technology. Native HTML and explicit keyboard behaviour remain essential.
ARIA exposes semantics to assistive technology, including screen readers. It does not create interaction behaviour.
Start with a native control
A native button already supports keyboard activation. Adding role="button" to a div only changes its reported role: the author must still implement focus and keyboard handling.
<button type="button" aria-pressed="false">Mute</button>
Update aria-pressed when the control changes state. Keep visible labels and accessible names consistent.
Handle focus separately
aria-hidden="true" removes content from the accessibility tree; it does not prevent keyboard focus. Never use it on a focusable control or an ancestor of the active control. A modal needs intentional focus placement, containment and restoration as well as an accessible name.