Color and accessibility: the contrast requirements that actually matter
Accessible color contrast sometimes gets framed purely as a legal compliance concern, which undersells why it matters. Low contrast text is genuinely harder to read for a meaningful share of any real audience, not just users with diagnosed visual impairments, and it's one of the easiest usability problems to fix once you understand the actual thresholds involved.
The two numbers that matter
WCAG AA requires a contrast ratio of at least 4.5 to 1 for normal body text against its background, and 3 to 1 for large text (roughly 18pt or larger, or 14pt bold). These aren't arbitrary; they're based on research into what's actually legible across a realistic range of vision and display conditions, including a phone screen in direct sunlight, which is a real, common scenario.
Where brands most often fail this
Light gray text on a white background, a design trend that reads as clean and minimal, frequently fails contrast requirements outright, especially at smaller sizes. Brand colors used as text on a similarly-toned background is the second most common failure we find in audits, since a brand's primary color often wasn't chosen with text contrast in mind at all during the original brand development.
How we design within the constraint instead of around it
We check contrast ratios during the actual palette selection phase, not as a compliance pass after design is finished, since retrofitting contrast into an already-approved palette usually means compromising the design the client already signed off on. Treating it as a design input from the start avoids that conflict entirely and produces a palette that's genuinely usable from day one.
Testing beyond the automated tools
Automated contrast checkers catch the arithmetic but miss context, text over a busy background image can technically pass a flat contrast check and still be genuinely hard to read in practice. We review key screens visually, not just against the calculator, specifically to catch this kind of gap between a passing number and real-world legibility.
A specific brand palette fix and what it took
For one client whose primary brand color failed contrast requirements as body text, we didn't change the brand color itself, we introduced a slightly darker "text" variant reserved specifically for typography, while keeping the original brighter shade for backgrounds and accents where contrast rules don't apply the same way.
How contrast requirements differ for UI elements versus text
Interactive elements, buttons, form borders, icons, have their own contrast requirement, generally 3 to 1 against adjacent colors, which is a separate check from text contrast and gets missed even by teams who've already addressed their body copy contrast correctly.
What happens when a client pushes back on a contrast-driven color change
We show the actual failing contrast ratio alongside a simulation of how the current combination looks to someone with reduced vision or in bright outdoor light, since the abstract requirement is easy to dismiss but the concrete visual demonstration is usually persuasive on its own.
We show the actual failing contrast ratio alongside a simulation of how the current combination looks to someone with reduced vision or in bright outdoor light, since the abstract requirement is easy to dismiss but the concrete visual demonstration is usually persuasive on its own.
A tool we use that goes beyond simple pass or fail checking
Beyond a binary pass or fail contrast checker, we use simulation tools that show an entire page as it would appear under different types of color vision deficiency, which sometimes surfaces a real usability problem, two similarly colored elements becoming indistinguishable, that a simple text contrast check alone wouldn't catch.
How we handle contrast requirements for a brand with a deliberately bold, high-saturation palette
A brand built around vivid, saturated colors doesn't need to abandon that identity to meet contrast requirements, it needs those saturated colors used correctly, as accents and backgrounds rather than as body text, with a separate, carefully chosen text color reserved for actual reading content.
What we found testing our own site's palette against these same standards
We hold our own site to the same contrast bar we recommend to clients, and it shaped some of our own color decisions, keeping certain accent colors reserved for large decorative elements rather than small text, exactly the discipline we ask clients to apply to their own palettes.
What we do for print materials that need to share a palette with a digital-first brand
Contrast requirements are specifically a digital accessibility standard, but brands increasingly need one palette that works believably across both digital and print. We check whether digital-optimized colors, chosen partly for contrast compliance, still look intentional and cohesive in print applications, adjusting where the two mediums' different requirements genuinely conflict rather than assuming a single palette automatically serves both contexts equally well.
This cross-medium check catches a specific failure mode we've seen: a palette perfectly tuned for web accessibility that reads as slightly washed out or unintentional once printed on physical materials like business cards or signage, where the contrast math that matters on a screen doesn't map directly onto how ink and paper render the same colors.
We also revisit an existing client's palette periodically as accessibility standards themselves continue to evolve, rather than treating a single compliance pass at launch as permanently sufficient. Standards and best practices in this area have genuinely tightened over the past several years, and a palette that comfortably passed muster when it was first designed can fall short of current, more rigorous expectations without anyone having changed a single color value, simply because the bar itself has moved upward in the meantime.
What we do when a client's existing logo itself has a contrast problem
A logo is generally exempt from strict text contrast requirements since it's treated as a graphic rather than reading text, but we still flag genuinely poor logo contrast to clients when we find it, since a barely legible logo on certain backgrounds is a real usability problem regardless of what the formal accessibility standard technically requires of it.
What we check for dark mode specifically, beyond a standard light-background contrast pass
Dark mode isn't simply an inverted color scheme, and contrast ratios that pass comfortably on a white background don't automatically translate once the same colors sit on a dark one. Pure white text on pure black, for instance, can actually cause a halation effect that makes reading uncomfortable for some users despite technically passing contrast math. We test dark mode as its own distinct palette with its own contrast validation, not as an automatic inversion of the light mode palette.
This has meant maintaining two genuinely separate, independently validated color systems for clients who want both modes, more design and testing effort upfront, but it avoids shipping a dark mode that technically passes an automated checker while still being genuinely uncomfortable to read in practice.