WCAG success criteria beyond color contrast: a holistic approach to accessibility
2026-03-16 · Jamie Chen
WCAG success criteria beyond color contrast: a holistic approach to accessibility
When most people think about accessibility, they think about color. And understandably so the color contrast conversation has dominated design conversations for years. But here's what I've learned after auditing hundreds of SaaS interfaces: designers who fixate on contrast ratios while ignoring everything else are building digital experiences that feel accessible on a spreadsheet but fail real users in the field.
The Web Content Accessibility Guidelines (WCAG) include 93 distinct success criteria across three levels: A, AA, and AAA. Exactly five of those directly concern color. The other 88? They're the scaffolding that holds inclusive design together.
This post is about what most accessibility conversations leave out. It's about perception, motor control, cognitive load, and the interconnected web of design decisions that either include or exclude people. I'm going to walk through the WCAG framework beyond color contrast, show you why each piece matters, and give you a practical system for building designs that work for everyone—not just the people with typical vision.
Why color contrast misses half the picture
Let me start with an honest statement: color contrast is necessary but nowhere near sufficient.
A design can pass WCAG AA contrast standards and still be completely inaccessible to people with motor disabilities, cognitive differences, hearing loss, or vestibular disorders. I've seen designs with perfect 7:1 contrast ratios fail users because the interactive elements were 12×12 pixels, required simultaneous multi-key presses, or triggered seizure-inducing motion.
The problem is that accessibility is not a single slider you adjust once and ship. It's a system. Text contrast is one thread in a larger tapestry that includes:
- Motor accessibility: Can users interact with your interface using only a keyboard? A single switch? Eye-tracking?
- Cognitive accessibility: Is the language clear? Are instructions scannable? Is the mental model predictable?
- Vestibular accessibility: Does your design trigger motion sickness or vertigo in people with balance disorders?
- Temporal accessibility: Can users navigate at their own pace, or are they rushed by auto-playing carousels and countdown timers?
- Auditory accessibility: Are video and audio content captioned and transcribed?
When you design for one dimension only, you optimize for no one. When you design holistically, you build for everyone.
The WCAG framework: what it actually says
WCAG 2.2 (the current standard adopted by most government accessibility regulations, including Section 508 in the US and the European Accessibility Act) is structured around four principles: Perceivable, Operable, Understandable, and Robust (POUR).
Let me break down what each principle demands and why color contrast is just one small piece of the puzzle.
Perceivable: information must be accessible to at least one sensory channel
Perceivable success criteria require that all information be available through at least one sense—not just vision, not just hearing.
Color contrast (WCAG 1.4.3, 1.4.11) is here: text and UI components must have a contrast ratio of at least 4.5:1 for normal text, 3:1 for large text (18pt+), and 3:1 for graphics and UI components (AA level).
But Perceivable goes much further:
- Text alternatives (1.1.1): All non-text content must have text alternatives. This includes images, icons, charts, and infographics. A pie chart colored red and green might look clear to people with typical color vision, but the data is inaccessible to someone with deuteranopia unless the chart is also labeled with values or accompanied by a table.
- Captions and transcripts (1.2.1, 1.2.2, 1.2.4): All video content must be captioned. All audio-only content must be transcribed. This isn't just for people who are Deaf—it's for people in loud environments, people who didn't catch the accent, people using public transit.
- Distinguishability (1.4.2): Audio must have volume control. Foreground audio must be at least 4:1 louder than background noise. Users must be able to pause animations.
- Color independence (1.4.1): Color must never be the only way to convey information. If red means "error," that status must also be communicated through text, an icon, or a shape. This is the non-color accessibility principle that complements contrast.
Notice the pattern? Perceivable doesn't mean "visible to everyone." It means "accessible through at least one channel."
Operable: users must be able to interact with your interface
This is where the conversation shifts from sensory access to motor control and cognitive tempo.
Keyboard accessibility (2.1.1, 2.1.2) requires that all functionality be operable via keyboard. Not just focusable—actually operable. That means your custom dropdown menu, your image carousel, your drag-and-drop interface must work with Tab, Arrow keys, Enter, and Escape. This is WCAG Level A (the bare minimum).
But there's more:
- Keyboard traps (2.1.2): Users must be able to navigate away from any interactive element using only the keyboard. If your modal requires mouse escape, your users with motor disabilities are stuck.
- Focus visible (2.4.7): The keyboard focus indicator must have a contrast ratio of at least 3:1 against adjacent colors. This seems obvious, but I've audited designs where the default browser focus ring was removed and never replaced—users literally can't see where they are.
- Target size (2.5.5): Interactive elements must be at least 44×44 CSS pixels (WCAG AAA) or 24×24 pixels minimum (Level AA). This accommodates people with tremors, reduced dexterity, or touch screen limitations.
- No keyboard shortcuts (2.1.4, AAA only): Don't require precise single-key presses for critical functions. Or if you must, provide an alternative method and allow users to remap them.
- No time limits (2.2.1): Users must not be rushed. If you have a session timeout, notify users before their session expires and give them a way to extend it. Countdown timers on limited-time offers must be pausable.
- No seizure triggers (2.3.1): Avoid flashing content or patterns that flash more than 3 times per second. Vestibular triggers (spinning, rapid zoom, parallax motion) must be avoidable.
Operable accessibility is about respect for user agency. It says: I don't know how you interact with the web, so I'm building something that works with your tools, your pace, and your needs.
Understandable: the interface must make cognitive sense
Understandable criteria focus on language clarity, predictability, and error recovery.
- Readable text (3.1.4, 3.1.5): Text must be readable and understandable. WCAG recommends that text use simple language, be written at a 9th-grade reading level (or lower for AAA), and provide definitions of uncommon terms. This benefits people with cognitive disabilities, non-native speakers, people with aphasia, and literally everyone else.
- Focus purpose (2.4.3): Users must know where they are in the interface. Visible focus indicators, consistent navigation patterns, and page titles all contribute. When users tab through your form and don't know what field they're in, they make mistakes.
- Consistent navigation (3.2.3, 3.2.4): Repeated components must appear in the same relative order each time. If your navigation menu moves, changes structure, or varies between pages, users (especially those with cognitive disabilities or low vision who zoom in and lose context) get disoriented.
- Error identification and recovery (3.3.1, 3.3.4, 3.3.6): When users make mistakes—submitting a form with missing required fields, entering an invalid email—they must:
- Know what went wrong (plain language, specific field identification)
- Know how to fix it (clear suggestions)
- Be able to undo critical actions (especially deletion or purchase)
Robust: your code must work with assistive technology
Robust is about structure, semantics, and compatibility.
- Valid HTML and ARIA (4.1.2, 4.1.3): Use semantic HTML (
<button>instead of<div role="button">), proper heading hierarchy, form labels, and ARIA only when semantic HTML isn't available. Screen readers parse your DOM tree—if your markup is invalid or your ARIA is wrong, assistive technology can't interpret your interface. - Name, role, state (4.1.2): Every interactive element must have:
- A name: how screen reader users know what the button does ("Submit", "Close menu", not "Click here")
- A role: what type of component it is (button, link, checkbox)
- A state: whether it's pressed, expanded, disabled, etc.
How these criteria interconnect: a real example
Let me show you how WCAG criteria work together by walking through a real interface pattern: a form with validation.
The design: A sign-up form with email, password, and confirmation fields. Required fields are marked with a red asterisk (*).
What goes wrong if you only think about color contrast:
- The red asterisk has perfect contrast (4.5:1)
- A user with deuteranopia sees the asterisk as brownish-gray
- They don't realize the field is required
- They submit an empty email field
- The form resets without explanation
- Now we're violating 1.4.1 (color independence), 3.3.1 (error identification), 3.3.4 (error prevention), and 2.4.3 (focus purpose)
The holistic fix:
- Mark required fields with red and an icon (star, circle, "(required)") — this satisfies 1.4.1 (color independence)
- Use a semantic
<label>andaria-required="true"— this satisfies 4.1.2 (name, role, state) - When validation fails, place focus on the first invalid field and announce the error in plain language — this satisfies 3.3.1 (error identification) and 2.4.3 (focus purpose)
- Allow users to review their input before resubmitting — this satisfies 3.3.4 (error prevention)
- Use a consistent, predictable error message pattern across all forms — this satisfies 3.2.3 (consistent navigation)
One design pattern. Seven WCAG criteria. None of them about color contrast alone.
Building a WCAG-first design system
So how do you operationalize this? How do you move from understanding these principles to actually building accessible interfaces?
Step 1: Establish semantic foundations
Start with HTML. Not design tokens, not spacing systems—HTML semantics.
Semantic HTML is the lowest-cost, highest-impact accessibility investment you can make. It means:
- Use
<button>for buttons (not<div onclick>) - Use
<a>for links (not buttons styled as links) - Use
<nav>,<main>,<article>,<section>to structure page regions - Use
<label>to associate form labels with inputs - Use
<h1>through<h6>for heading hierarchy (not for visual styling)
When your HTML is semantic, you get keyboard support, screen reader support, and focus management for free. You're not layering accessibility on top of bad structure—you're building accessibility into the foundation.
Step 2: Establish contrast requirements (but do it right)
Yes, measure contrast. But do it as part of a larger color palette audit, not in isolation.
Create a contrast matrix that shows:
- All text color + background combinations
- Minimum contrast required (AA: 4.5:1 normal, 3:1 large; AAA: 7:1 normal, 4.5:1 large)
- Whether each combination passes 1.4.1 (color independence) — is the meaning clear even if color is removed?
Use a tool like the WCAG contrast checker to verify ratios, then test those same palettes for color blindness accessibility. A 5:1 contrast ratio is useless if the colors look identical in deuteranopia.
Step 3: Define focus management and keyboard patterns
Document exactly how keyboard users will interact with each component type:
- Buttons: Enter and Space activate them
- Links: Enter navigates
- Dropdowns: Arrow keys move between options, Enter selects, Escape closes
- Modal dialogs: Focus traps inside the modal, Escape closes (if appropriate)
- Carousels: Arrow keys move between slides, Escape closes auto-play
Write these patterns down. Test them. Build them consistently. When keyboard behavior is predictable, cognitive load drops and confidence rises.
Step 4: Build in motion restraint
Auto-playing videos, parallax scrolling, infinite scrolls, spinning loaders—these are beautiful and engaging. They're also inaccessible to people with vestibular disorders, certain types of epilepsy, and ADHD.
Implement prefers-reduced-motion media queries:
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
And respect it. A lot of designers see reduced motion as an exception to their design vision. It's not. It's a core audience segment.
Step 5: Plan for content clarity
Before you write microcopy, button labels, form instructions, or error messages, establish a content standard:
- Reading level: Aim for 8th–9th grade (average US reading level is 7th–8th grade)
- Sentence structure: Keep sentences under 20 words where possible
- Instructions: Put the action first ("To reset your password, click the link in your email" not "Your password reset link has been sent to your email—click it")
- Error messages: Be specific ("Email address is invalid" not "Error")
- Jargon: Define it or avoid it
This isn't just accessible—it's better design. Clearer language benefits everyone.
Step 6: Test with real assistive technology
Contrast ratio checkers, color blindness simulators, and automated audits are starting points. Real accessibility testing requires:
- Screen reader testing (JAWS, NVDA, VoiceOver)
- Keyboard-only testing (arrow keys, Tab, Enter only—no mouse)
- Zoom testing (browser zoom to 200%)
- User testing with people who have disabilities (this is non-negotiable)
Tools are cheap. Real user feedback is priceless.
Common WCAG misconceptions that cost you
After 8+ years of audits, I've seen these beliefs derail accessibility work repeatedly.
"If we pass automated testing, we're compliant."
Automated tools catch about 30% of WCAG violations. The remaining 70% require human judgment: Is the heading hierarchy logical? Is the error message clear? Does the keyboard experience make cognitive sense? Automation is a foundation, not a finish line.
"We only need to meet Level AA."
WCAG AA is the industry baseline and is legally required in many contexts (Section 508, ADA). But AA isn't "accessible." It's the minimum accessible. AAA criteria (7:1 contrast, enhanced focus, captions for all audio, plain language) dramatically improve real user experience. If your product serves millions, you can afford AAA.
"Accessibility is a feature we can add later."
Retrofitting accessibility is 5–10x more expensive than building it from the start. If your entire component library uses <div role="button"> instead of <button>, you'll rewrite every component. Build accessibility into the foundation.
"Accessibility is the developer's job."
Accessibility is a product decision, not a developer feature. Designers choose colors, define component sizes, decide whether animations are required or decorative. Developers implement those decisions. If the decision is inaccessible, implementation won't fix it.
Frequently asked questions
Does WCAG 2.2 replace WCAG 2.1?
Yes. WCAG 2.2 is the current standard (released in October 2023). It includes all of WCAG 2.1 plus nine new criteria focused on hidden content, accessible authentication, and accessible names for form fields. If you're currently audited against WCAG 2.1, plan to migrate to 2.2 by end of 2025.
What's the difference between WCAG and Section 508?
Section 508 is a US federal accessibility law. It requires government agencies and federal contractors to comply with WCAG 2.0 (or 2.1 in some cases). WCAG is the standard that Section 508 references. If you work for or with government, you need Section 508 compliance. Most other organizations default to WCAG AA.
Do I need to support all four principles equally?
Not always. Your product's specific users determine priority. If your product is audio-heavy (podcasts, music), invest in Understandable and Operable criteria. If it's visual (data visualization, design software), emphasize Perceivable and Robust. But ignore any principle and you'll exclude entire user groups.
Can I use color as one of the ways to convey information?
Yes. That's the entire point of criterion 1.4.1 (color independence). Use red for error and include text, an icon, or a shape. Use green for success and include a checkmark. Color should reinforce meaning, never be the only way to express it.
What's the difference between ARIA and semantic HTML?
Semantic HTML is preferred. <button> is always better than <div role="button">. ARIA (Accessible Rich Internet Applications) is for situations where semantic HTML can't express your interaction pattern—like a custom menu, a tree view, or a complex drag-and-drop interface. Use semantic HTML first. Use ARIA to fill the gaps.
How do I know if my accessibility effort is working?
Measure it:
- Automated audit results (% of criteria passed)
- User testing feedback (qualitative: what's hard? what works?)
- Analytics (are keyboard users completing tasks at the same rate as mouse users?)
- Assistive technology testing (screen reader, voice control, switch control)
- Employee resource group feedback (if your company has employees with disabilities, ask them)
The holistic accessibility mindset
Here's what I want to leave you with: accessibility isn't a series of boxes to check. It's a design philosophy that says: I'm building this for humans who interact with the world in different ways—and I'm respecting that.
When you shift from "compliance" to "inclusion," your decision-making changes. You stop asking, "Does this pass WCAG?" and start asking, "Who can't use this, and what can I change?" You stop thinking of accessibility as a tax on development and start seeing it as a feature that makes your product better for everyone.
A form with clear error messages is better for everyone. A video with captions is better for everyone (captions help non-native speakers, people in loud environments, and people who want to mute audio). Keyboard navigation is better for everyone (trackpad users, people with mouse allergies, people on laptops without mice). Readable typography is better for everyone.
That's holistic accessibility. It's not a ramp bolted onto the side of a building. It's a building designed so the front door works for everyone.
Start with semantic HTML. Add keyboard support. Test with real tools and real users. Build motion restraint and readable content. Then measure it. Iterate. That's the system.
And before your next design sprint or accessibility audit, spend 15 minutes reviewing your current interface through multiple WCAG lenses—not just color contrast. You'll see what I've learned: the real accessibility work happens in the places people rarely look.
To test how your designs perform across different color vision types and accessibility standards, try our free WCAG contrast checker and CVD simulator — no account needed, works on any website or image.
Related Articles
- Color accessibility best practices for web designers
- Testing your website for color blindness accessibility
- How to use a color blindness simulator for accessible design
- Designing for deuteranopia: testing and accessible design principles
Test your designs against all four CVD types right now with DeficiencyView's color blindness simulator — upload any image or enter a URL and see results in seconds.