A comprehensive developer checklist covering contrast ratios, keyboard accessibility, semantic landmarks, and ARIA attributes to achieve WCAG 2.1 Level AA conformance.
The Web Content Accessibility Guidelines (WCAG) 2.1 Level AA is the global benchmark we all work to. It’s the standard. The U.S. Department of Justice (DOJ) demands it, federal courts enforce it under Title III of the Americans with Disabilities Act (ADA), federal procurement requires it via Section 508, and the European Accessibility Act (EAA) keeps it on the books...
Getting your web app to meet WCAG 2.1 AA means you have to pay attention to HTML semantics, design tokens, responsive layouts, and how interactive keyboard states behave!
Below is an engineering checklist organized across the four core principles of accessible design: Perceivable, Operable, Understandable, and Robust (POUR).
You’ve got to present stuff in a way that all of your visitors can actually notice it; if it’s invisible to a sense, it’s basically missing.
alt attribute that tells its main point. <img src="chart.png" alt="Quarterly revenue growth showing a 22% increase in Q4" /> alt="" or add aria-hidden="true" so screen readers just skip them. <h1>-<h6>) in the right order; don’t jump levels just because you like the look. <ul>, <ol>, <dl>) for any grouped items. <header>, <nav>, <main>, <aside>, <footer>).flexbox, grid, clamp()) and steer clear of fixed-pixel widths on containers.That’s it. Pretty simple, right?
You know what really bugs me? Here’s the core idea. Users have to actually use the interface. If navigation or interactions depend on actions a person can't perform, you’ve got a problem. The interface needs to work for everyone, including those who can’t click.
Tab, Shift+Tab, Enter, and Space.<button> or <a> tags with generic <div onClick="..."> without adding keyboard listeners and ARIA roles.Escape dismisses the overlay and immediately restores focus to the triggering element.<body> element.Rule: Any keyboard-operable interface must display an unambiguous, high-contrast visual focus indicator.
Implementation: Never declare outline: none without providing a high-visibility replacement using :focus-visible:
:focus-visible {
outline: 2px solid var(--primary-color, #2563eb);
outline-offset: 2px;
}
In plain English, people need to get the content and figure out how to use the interface without guessing.
<html lang="en">.<label for="user-email"> and <input id="user-email">.aria-describedby="error-msg-id" and flag aria-invalid="true".Honestly, your pages need to be solid enough that every assistive gadget out there – screen readers, voice browsers, braille displays – can get the right info without guessing, and that’s what “robust” really means.
role="dialog" or role="combobox". aria-expanded="true" or aria-checked="false".aria-live="polite" so screen readers announce them after they finish what they’re reading.That's it. Pretty simple, right?
Manual testing alone won't scale if your product team is moving fast. You need to catch problems before they ship. That means adding automated scanning to your build process.
Tools like axe-core are the standard way to do this. Funny enough, they flag a bunch of common issues right there in the pipeline. But here's the thing: automation isn't magic. Deque estimates these tests find about 57% of issues by volume.
So keep a short manual check in the mix.
The truth is, you can't just rely on the bot. Pair it with regular keyboard reviews. That's how you get durable, defensible compliance. It's a two-part job. Accessibility Shield handles the continuous WCAG 2.1 AA audits for you, running them on your domain for just $1/month ($12/year)!
Want to see where your site stands? Run a free accessibility scan, then publish a hosted accessibility statement so visitors know how to reach you.
How to meet WCAG focus requirements: 2.4.7 Focus Visible, the new 2.4.11 Focus Not Obscured, and 1.4.11 contrast. CSS you can copy and a Playwright test to keep it fixed.
Understand the capabilities and boundaries of automated Axe-Core scanners vs manual assistive audits, and learn how to implement an efficient hybrid compliance strategy.
A free accessibility statement template is just a short block of text. You copy it, tweak it, and drop it on your site so visitors know you’re actually...