Learn web accessibility
Lessons grouped by topic. Each one shows the problem, who it affects, the standards it maps to, and the fix — so you can go from spotting an issue to shipping a correct, conformant solution.
Browse by topic
-
Images & media
Text alternatives for informative, decorative and complex images.
-
Forms & inputs
Labels, associated errors, grouped controls and autocomplete — the things users act with.
-
Keyboard & focus
Operable controls, visible focus, no traps, and ways to bypass blocks.
-
Color & contrast
Readable contrast, and never relying on colour alone to convey meaning.
-
Structure & semantics
Headings, landmarks, lists and a reading order screen readers can follow.
-
Navigation & links
Descriptive links, a clear current location, and consistent navigation.
-
Tables & data
Header cells, scope and captions so data tables make sense.
-
Interactive widgets & ARIA
Native-first widgets, correct roles and states, and valid ARIA.
-
Dynamic content & motion
Announce updates, respect reduced motion, and tame timers and flashing.
-
Documents & PDF
Tagged, structured PDFs with real text, headings and alt text.
Browse lessons
Accessible names for interactive controls
Give buttons, links and inputs a correct accessible name so screen-reader and voice users can operate them.
Accessible forms
Labels, associated error messages, grouped controls and autocomplete so everyone can complete the form.
Text alternatives for images
Meaningful alt for informative images, empty alt for decorative ones, and long descriptions for complex visuals.
Keyboard access & visible focus
Make every control keyboard-operable, keep focus visible and ordered, and never trap it.
Colour & contrast
Meet text and UI contrast ratios, and never let colour be the only way meaning is conveyed.
Headings, landmarks & structure
Real headings in order, landmark regions, proper lists, and a logical reading order.
Links & navigation
Descriptive link text, a clear current page, multiple ways to find content, and consistency.
Accessible data tables
Header cells, scope and captions so a screen reader can read each value in context.
ARIA & custom widgets
Use native HTML first; give custom widgets correct roles, states and valid ARIA references.
Dynamic content & motion
Announce updates with live regions, respect reduced motion, and control timers and flashing.
Accessible documents & PDF
Tagged, structured PDFs with real text, headings, reading order and alt text.
Captions, transcripts & audio description
Captions for video, transcripts for audio, and audio description for key visuals.
Accessible SVG & icons
Hide decorative SVG, name informative icons, and label icon-only controls.
Form validation & error recovery
Identify errors in text, suggest fixes, and let people review important submissions.
Required fields, instructions & input purpose
Mark required fields programmatically, keep instructions visible, and set autocomplete.
Managing focus in dynamic UIs
Move focus deliberately when content changes, views switch, or overlays close.
Visible focus & focus appearance
Keep a clear, high-contrast focus indicator that is never removed or hidden.
Building an accessible colour palette
Choose text, state and placeholder colours that meet contrast and never rely on hue.
Non-text contrast: UI, icons & charts
Give control borders, icons, chart colours and focus rings at least 3:1 contrast.
Landmarks & page regions
Use header, nav, main, aside and footer — and label repeated landmarks.
Reading order & meaningful sequence
Keep DOM order matching the visual reading order; avoid positive tabindex.
Multiple ways & consistent navigation
Offer search or a sitemap, and keep navigation consistent across pages.
Link text, context & new windows
Write links that make sense out of context, and warn before opening new windows.
Complex tables with multi-level headers
Tie every cell to its row and column headers with scope or headers/id.
Responsive & sortable tables
Keep header associations and a keyboard-scrollable region when tables adapt.
Accordions & disclosure widgets
Use real buttons with aria-expanded kept in sync with the panel.
Toggle buttons & switches
Expose pressed or checked state and announce the change to assistive tech.
Live regions & status messages
Announce async results and alerts with the right live-region politeness.
Time limits & auto-updating content
Warn before timeouts and let people pause auto-advancing or refreshing content.
Accessible Word & Office documents
Use real heading styles, alt text and header rows in source documents.
Accessible PDF forms & reading order
Label PDF fields, fix the tag reading order, and tag lists and tables.
No lessons match those filters.
More lessons on the way
This catalog is being filled out across all ten categories — images and media, forms, keyboard and focus, color and contrast, structure, navigation, tables, interactive widgets, dynamic content, and documents. New lessons land here as they are written, so check back regularly.