3 minute read

Implement ARIA roles and properties

When HTML alone doesn’t cut it, ARIA steps in to give added context.

While using semantic HTML is the foundation of accessible web development, there are times when additional support is needed to make interactive elements fully accessible. This is where ARIA (Accessible Rich Internet Applications) roles and properties come into play.

What are ARIA roles and properties?

ARIA is a set of attributes that improve accessibility for complex web elements like sliders, tab panels, and custom widgets. ARIA helps screen readers and other assistive tech interpret and interact with non-standard elements.

ARIA components:

  • Roles – Define an element’s purpose, e.g., role="button" indicates a clickable element acts like a button.
  • States – Indicate an element’s current condition, like aria-checked="true" for a checked checkbox.
  • Properties – Add extra context, such as aria-labelledby, which links elements to their labels.

Why ARIA roles and properties matter

ARIA roles and properties help bridge accessibility gaps for custom elements, improving compatibility with assistive technologies and enhancing interaction.

  • Assistive tech compatibility – ARIA allows screen readers to interpret custom elements more accurately.
  • Provides context and functionality – ARIA roles clarify an element’s function, even if it lacks a native HTML equivalent.
  • Enhanced experience – ARIA helps ensure that people relying on assistive tech can interact with your website’s features.

How to implement ARIA roles and properties

1. Use native HTML elements first

Native HTML elements are inherently accessible, so they should be your first choice.

  • Default accessibility – Elements like <button>, <input>, and <select> come with built-in accessibility. Only use ARIA if native HTML falls short.

2. Assign appropriate ARIA roles

For custom elements, assign the right ARIA role to define its purpose. Examples include:

  • role="button" – For clickable elements that act like buttons but aren’t <button> elements.
  • role="dialog" – For custom modal dialogs, informing screen readers it’s a dialog with specific navigation needs.
  • role="navigation" – For site navigation, helping people quickly find and navigate site sections.

3. Use ARIA states to convey status

ARIA states inform people of an element’s current condition, vital for assistive tech users.

  • aria-checked – Apply to checkboxes or toggles, e.g., aria-checked="true" for a selected checkbox.
  • aria-expanded – Use for toggleable elements like dropdowns, e.g., aria-expanded="true" when content is visible.
  • aria-disabled – Indicates a non-interactive element, e.g., aria-disabled="true" for an inactive button.

4. Use ARIA properties to for extra context

ARIA properties provide additional information and link elements for assistive tech.

  • aria-labelledby – Associates an element with its label, like linking a form field to a label with id="label1".
  • aria-describedby – Links to a description providing more detail, e.g., aria-describedby="desc1" for a field with extra instructions.
  • aria-controls – Shows that one element controls another, like a button toggling a panel.

5. Test your ARIA implementation

Testing is key to making sure ARIA roles and properties work as intended.

  • Screen reader testing – Use tools like NVDA, VoiceOver or the Silktide Screen Reader Simulator to ensure ARIA roles, states, and properties are properly announced and function correctly.
  • Keyboard navigation – Check that custom elements with ARIA roles work with standard keyboard controls.
  • Automated tools – Use platforms like Silktide to catch common accessibility issues and confirm ARIA attributes are correctly applied.

Best practices for using ARIA roles and properties

  • Use ARIA sparingly – Only add ARIA roles and properties when needed; overuse can create confusion. Native HTML should always be the first choice.
  • Keep ARIA attributes up-to-date – Update states dynamically as elements change, e.g., set aria-expanded to “true” when a dropdown is opened.
  • Ensure consistency – Use ARIA roles and properties consistently across your site for a predictable experience.
  • Stay informed – Accessibility best practices evolve, so keep up with the latest ARIA techniques and guidelines from resources like the Web Accessibility Initiative (WAI).

Further reading

Previous articleNext article
Back to top