· 3 min read

Learn Web Accessibility and ARIA: Roles, States, Properties and 3 Cards to Fix

Study ARIA with 58 real flashcards: roles, aria-live, aria-expanded, tabindex, focus traps, WCAG POUR, and the WCAG 2.2 target-size rule the deck gets wrong.

Accessibility symbol, keyboard key and sound-wave icon on floating flashcards

Studying. But it's also a video game. 🎮

Flashcards, quizzes and games that make you actually remember.

Start playing — it's free

Posted by

ARIA is easy to memorize and easy to misuse. The attributes themselves are short (aria-expanded, aria-live, role="dialog"), but the hard part is knowing when you shouldn't use them, and what each one does not do for you. This guide shows how to learn the 58 cards of the Flip It deck Web Accessibility: ARIA (code SN8451) and where to correct a few backs along the way.

Study this deck: Web Accessibility: ARIA

1 / 10
Question

Web Accessibility

Knew itLearning

Tap the card for the answer · swipe right if you knew it, left if not

Sample cards

FrontBack
First rule of ARIAIf you can use a native HTML element or attribute with built-in semantics, do that instead of re-purposing an element with ARIA.
ARIA statesDynamic properties that change during interaction: aria-expanded, aria-checked, aria-selected, aria-pressed.
Aria-liveValues: off, polite (wait for pause), assertive (interrupt). For notifications, status updates.
Aria-disabledVisible but disabled. Unlike HTML disabled, doesn't prevent focus.
Tabindex0: natural tab order, -1: focusable via JS only, >0: explicit order (avoid).
Why use semantic HTML instead of ARIA?ARIA only adds semantics — you must implement behavior.
4 WCAG principlesPOUR: Perceivable, Operable, Understandable, Robust.
role="alert" vs aria-live="assertive"role="alert" has implicit aria-live="assertive" plus semantic meaning.

Everything the deck covers

Roles: button, navigation, main, banner, contentinfo, alert, dialog, presentation / none. States: aria-expanded, aria-pressed (mixed), aria-checked, aria-selected, aria-current (page, step, date), aria-disabled, aria-invalid, aria-modal. Properties: aria-label, aria-labelledby, aria-describedby, aria-hidden, aria-required, aria-owns, aria-controls. Keyboard: tabindex, focus management, focus trap, skip navigation, :focus vs :focus-visible. Plus alt text, color contrast (4.5:1 / 3:1), WCAG levels A / AA / AAA, screen readers (JAWS, NVDA, VoiceOver, TalkBack), landmarks, heading structure, the lang attribute, accessible name calculation, prefers-reduced-motion, and testing with axe, WAVE and Lighthouse.

Three cards to rewrite before you drill

  • Cards 49 and 56 contradict each other. Card 49 lists the accessible name sources as "aria-label, aria-labelledby, content, alt, title"; card 56 gives "aria-labelledby → aria-label → native label → title → placeholder". Card 56 is right: aria-labelledby wins over aria-label. Delete card 49's order or fix it to match.
  • Card 13 says role="dialog" "traps focus". It doesn't — card 33 of the same deck is the correct principle: ARIA adds semantics, never behavior. The trap comes from your JavaScript, or for free from a native <dialog> opened with showModal(). Rewrite the back as "you must trap focus…".
  • Cards 46-47 say WCAG requires 44×44 px touch targets. 44×44 is criterion 2.5.5, level AAA. WCAG 2.2 (October 2023) added 2.5.8 Target Size (Minimum) at level AA: 24×24 CSS px (or enough spacing). Since AA is what laws such as the European Accessibility Act (applied from June 2025) point to, put both numbers on the card.

Tip: sort every attribute into three bins

Make a quick test when you review: is this attribute a role (what it is), a state (changes on interaction, so your script must update it) or a property (set once)? Cards 19-26 are the trap: aria-expanded, aria-pressed, aria-checked and aria-selected are states you have to toggle in code; aria-required and aria-describedby are set and forgotten. If you can't say who updates the attribute, you haven't learned the card.

Then pair the landmark roles with their native elements (main ↔ <main>, banner ↔ top-level <header>, contentinfo ↔ top-level <footer>, navigation ↔ <nav>) — every one of those pairs is the first rule of ARIA in action.

The native elements themselves are drilled in our HTML Tags and Attributes study guide.

Open SN8451 — Web Accessibility: ARIA in the library on Flip It.

Ready to learn faster? 🚀

Join FLIP IT for free and turn studying into a game.

Create my free account