Skip to content

ARIA Basics — Accessible Rich Internet Applications Guide

In this tutorial, you will learn about ARIA Basics. We cover key concepts, practical examples, and best practices to help you master this topic.

ARIA (Accessible Rich Internet Applications) basics teach you roles, states, properties, and live regions to make dynamic web content accessible to screen readers and assistive technologies when native HTML is not enough.

In this tutorial series, you'll learn about ARIA from the ground up. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.

Lessons in This Series

1. Introduction to ARIA
What ARIA is and why it matters
2. What Is ARIA?
Understanding the WAI-ARIA specification
3. The First Rule of ARIA
No ARIA is better than bad ARIA
4. ARIA Roles
Widget, composite, document, and landmark roles
5. ARIA Properties
Attributes that describe element characteristics
6. ARIA States
Dynamic attributes that change with user interaction
7. Role Attribute Usage
How to apply role attributes correctly
8. aria-label
Providing invisible labels
9. aria-labelledby
Referencing visible labels
10. aria-describedby
Adding descriptions to elements
11. aria-hidden
Hiding content from assistive technology
12. aria-live
Live regions for dynamic content
13. aria-atomic
Defining live region update scope
14. aria-relevant
Controlling which live region changes are announced
15. aria-busy
Indicating loading or updating elements
16. aria-current
Indicating the current item in a set
17. aria-expanded
Indicating expandable/collapsible state
18. aria-selected
Indicating selected options in lists
19. aria-required
Marking required form fields
20. aria-invalid
Indicating input validation errors

ARIA Basics Learning Path

flowchart LR
  A[Accessibility Overview] --> B[WCAG Compliance]
  B --> C[ARIA Basics]
  C --> D[Keyboard Navigation]
  C --> E[Screen Readers]
  C:::current

  classDef current fill:#f90,color:#fff,stroke:#333,stroke-width:2px

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro.

Published Topics

Introduction to ARIA — What Is Accessible Rich Internet Applications

ARIA is a W3C specification that supplements HTML with roles, states, and properties making dynamic content accessible to assistive technologies when native HTML is not enough.

✓ Live

What Is ARIA — Understanding the WAI-ARIA Specification

The WAI-ARIA specification defines a set of HTML attributes that bridge the gap between dynamic web applications and assistive technologies when native HTML semantics fall short.

✓ Live

The First Rule of ARIA — No ARIA Is Better Than Bad ARIA

The first rule of ARIA states that no ARIA is better than bad ARIA, meaning you should always prefer native HTML elements before reaching for ARIA attributes.

✓ Live

ARIA Roles — Widget, Composite, Document and Landmark Roles

ARIA roles define what an element represents to assistive technologies, with categories including widget, composite, document structure, landmark, and live region roles.

✓ Live

ARIA Properties — Attributes That Describe Element Characteristics

ARIA properties are attributes that describe the nature and characteristics of elements, including aria-label, aria-describedby, aria-controls, aria-owns, aria-flowto, and many others.

✓ Live

ARIA States — Dynamic Attributes That Change With User Interaction

ARIA states are dynamic attributes that change based on user interaction or application state, including aria-expanded, aria-selected, aria-pressed, aria-checked, aria-current, and aria-hidden.

✓ Live

Role Attribute Usage — How to Apply Role Attributes Correctly

The role attribute defines an element's semantic meaning for assistive technologies and must be applied correctly, matching the role to the element's behavior and managing required states.

✓ Live

aria-label — Providing Invisible Labels for Assistive Technology

aria-label provides an invisible accessible name for an element, used when no visible label exists, such as icon-only buttons, form controls without labels, or elements needing a more descriptive name.

✓ Live

aria-labelledby — Referencing Visible Labels for Accessible Names

aria-labelledby references one or more element IDs to compose an accessible name from existing visible text, enabling dynamic labeling without duplicating content.

✓ Live

aria-describedby — Adding Descriptions to Elements for Screen Readers

aria-describedby provides additional descriptive text for an element, supplementing the accessible name with instructions, hints, or error details from referenced elements.

✓ Live

aria-hidden — Hiding Content From Assistive Technology

aria-hidden removes elements from the accessibility tree, hiding them from screen readers while keeping them visually visible, useful for decorative content, offscreen panels, and redundant elements.

✓ Live

aria-live — Live Regions for Dynamic Content Announcements

aria-live defines regions of the page where dynamic content changes should be announced by screen readers automatically, with modes polite, assertive, and off controlling announcement timing.

✓ Live

aria-atomic — Defining Live Region Update Scope

aria-atomic specifies whether a live region should announce all content or only the changed parts when updates occur, with true meaning the entire region is announced as a whole.

✓ Live

aria-relevant — Controlling Which Live Region Changes Are Announced

aria-relevant controls which types of content changes in a live region trigger announcements, with values additions, removals, text, and all determining what screen readers announce.

✓ Live

aria-busy — Indicating Loading or Updating Elements

aria-busy indicates that an element is currently loading or updating, telling screen readers to wait before announcing changes until the element is no longer busy.

✓ Live

aria-current — Indicating the Current Item in a Set

aria-current indicates the currently active item within a set of related elements, such as the current page in navigation, the current step in a wizard, or the current tab in a tablist.

✓ Live

aria-expanded — Indicating Expandable and Collapsible State

aria-expanded indicates whether an expandable element like an accordion, dropdown menu, or disclosure widget is currently open or closed, helping screen reader users understand the toggle state.

✓ Live

aria-selected — Indicating Selected Options in Lists and Tab Panels

aria-selected indicates which item in a set of selectable items is currently selected, commonly used in tabs, listboxes, tree views, and grid cells to communicate active selection.

✓ Live

aria-required — Marking Required Form Fields for Screen Readers

aria-required indicates that a form field must be filled out before submission, supplementing the HTML required attribute when native attributes cannot be used or need reinforcement.

✓ Live

aria-invalid — Indicating Input Validation Errors

aria-invalid indicates that a form field has failed validation, helping screen reader users identify which fields have errors and the type of validation error detected.

✓ Live

All 20 topics in ARIA Basics — Accessible Rich Internet Applications Guide are published.