Use native controls.
Start with buttons, links, inputs, headings, lists, and landmarks. Add ARIA only where native semantics do not express the behavior. Give every control a useful name.
A practical guide to applying this system with care: readable surfaces, predictable controls, useful feedback, and room for different ways of using the web.
Working standard · WCAG 2.2 AA targetBuild toward WCAG 2.2 Level AA across complete pages and journeys. A component can support accessibility; its content, combinations, and final implementation determine whether the experience conforms.
Start with buttons, links, inputs, headings, lists, and landmarks. Add ARIA only where native semantics do not express the behavior. Give every control a useful name.
Label samples as samples. Describe the destination or result of an action. Preserve entered information and give people a clear way to recover from errors.
The library demonstrates these patterns. Automated checks are one part of verification, not a claim that every assistive-technology combination has been tested.
Measure the actual foreground against its adjacent background in every state. Normal text needs at least 4.5:1; large text needs 3:1 (at least 24 CSS px, or about 18.7 CSS px bold). Meaningful icons and the visual boundaries needed to identify controls need 3:1. Decorative borders can stay softer.
#1D5273 / #F6F7F7
Use deeper blue for links and meaningful icons. Sky blue is a fill or accent here, not small text.
#C2E9FF / #0A131A
Use pale blue for icons and links. Keep neutral body text light enough to read comfortably.
Every action must work without a pointer. Keep the tab order aligned with the reading order, make focus visible, and avoid keyboard traps. Skip-to-content bypasses repeated navigation.
Accordion pattern · Tabs pattern · Target size · Unobscured focus
Keep a persistent label for every field; placeholders are examples, not labels. Group related choices with a fieldset and legend. Connect hints and errors to the field they explain.
aria-hidden="true"; icon-only controls need an accessible name.Keep content usable at 200% text enlargement and at a 320 CSS pixel viewport, equivalent to 400% browser zoom on a 1280px-wide viewport. Ordinary content should reflow without two-direction scrolling; complex tables may need their own scroll region.
Reflow · Text spacing · Reduced interaction motion (AAA practice)
Run these checks on complete pages and real content. These local checklist controls are a demonstration; checking them does not certify a release.
Use automated scans to catch detectable failures, then test keyboard journeys, focus visibility, screen-reader announcements, zoom and reflow, contrast over real media, and errors. Record the page, browser, assistive technology, viewport, date, findings, and fixes.
Do a dedicated screen-reader review in VoiceOver with Safari and NVDA with a supported browser before treating a release as verified. Include users with disabilities in usability testing where possible.