Web Foundations

HTML Accessibility

ARIA attributes, roles, states, keyboard navigation, and screen readers.

Advertisement

HTML Accessibility

ARIA attributes, roles, states, keyboard navigation, and screen readers.

Overview

Accessible HTML ensures everyone can use your website.

Key Concepts

  • ARIA Roles — Define element purpose
  • ARIA States — Current element state
  • Keyboard Navigation — Tab order and focus management
  • Screen Readers — Assistive technology support
  • Color Contrast — Readable text for all users

Code Examples

<!-- Accessible button -->
<button 
  aria-label="Close dialog"
  aria-pressed="false"
  onclick="toggleDialog()"
>
  ×
</button>

<!-- Accessible navigation -->
<nav aria-label="Main navigation">
  <ul role="menubar">
    <li role="none">
      <a role="menuitem" href="/">Home</a>
    </li>
    <li role="none">
      <a role="menuitem" href="/about">About</a>
    </li>
  </ul>
</nav>

<!-- Live region for dynamic content -->
<div aria-live="polite" aria-atomic="true" id="status">
  <!-- Status messages announced to screen readers -->
</div>

<!-- Accessible form -->
<form>
  <div>
    <label for="search">Search</label>
    <input 
      type="search" 
      id="search" 
      aria-describedby="searchHelp"
      aria-required="true"
    >
    <span id="searchHelp">Enter a search term</span>
  </div>
  
  <div role="alert" aria-live="assertive" id="errors">
    <!-- Error messages -->
  </div>
</form>

<!-- Skip navigation link -->
<a href="#main-content" class="skip-link">Skip to main content</a>
<main id="main-content">
  <!-- Main content -->
</main>

Practice

Make a complex form fully accessible with ARIA and keyboard navigation.

Advertisement