Ensure ARIA roles have required states and properties

ARIA roles and attributes help screen readers provide missing information about an element. For these roles and attributes to make sense, each ARIA role supports a specific subset of aria-* attributes (see ARIA roles definitions). Some ARIA roles have required attributes that describe the state of the element to screen readers. Lighthouse reports a role's missing required states and properties:

Lighthouse audit showing ARIA role missing required states and properties
Fig. 1 — ARIA role missing required states and properties

Key Term: ARIA attributes let you modify the way HTML elements are represented to assitive technologies like screen readers. Learn more in this Introduction to ARIA.

How Lighthouse identifies missing required states and properties

Lighthouse uses the WAI ARIA specification - Definition of roles to check for a role's required attributes. Any role that contains "required states and properties", must have the required state and property defined. Lighthouse fails this audit, when it finds a role is missing it's required state and property.

How this audit impacts overall Lighthouse score

Lighthouse flags this as a low severity issue. It is important to fix, and probably indicates a mistaken assumption in your code, but a missing required attribute won't break the element's role. In the example above, the element is still announced as a heading and assigned a default level of 2.

How to check for required child roles

To check for required states and properties, refer to the WAI ARIA Definition of roles. Link to the role from the specification, and check the required states and properties.

Add the missing ARIA state or property to the given element.

For more information on this audit, see Required ARIA attributes must be provided.

More information

Last updated: Improve article