Skip to main content
Guide5 min read

Your Design System's Dirty Little Secret: How Light Gray Text Became Disability's Greatest Hit

By The bee2.io Engineering Team at bee2.io LLC

You know that moment when you realize your entire design system has been quietly failing 15% of your users? Yeah, that's happening right now, and it's all because someone's favorite Pantone swatch got baked into a design token like it was gospel truth.

Light gray text on white backgrounds is the web's equivalent of that one friend who shows up to every party insisting they're a "minimalist" while everyone else just squints and complains about their eyes hurting. Except this friend is legally required to not exclude people from your website. Whoops.

Here's the problem distilled: published research suggests that roughly 253 million people globally have some form of low vision, and light gray text on white- the stuff that makes your designer feel like they're creating a sophisticated, zen experience- fails WCAG AA contrast standards in about 60% of modern website implementations. That's not a design choice. That's an accessibility catastrophe wearing a turtleneck.

The Design Token Time Bomb Nobody Wants to Defuse

Let's talk about why this keeps happening. Someone at your org- let's call them "The Gray Enthusiast"- decides that #999999 or #A8A8A8 is the perfect secondary text color. It looks clean. It looks modern. It definitely looks like they understand whitespace and visual hierarchy. So they drop it into the design system, slap it on a token called something like color-text-secondary, and boom- now every single product, feature, and component across your entire digital ecosystem is quietly failing accessibility standards.

The beautiful disaster here is that it's one change that breaks everything. You don't need multiple problems to create a massive problem. You just need one shared component library where someone defined contrast ratios like they were personal preferences instead of legal minimums.

Here's the fix that nobody wants to admit takes actual work: audit your entire design token system right now. Go find every color token being used for text, labels, helper text, captions, and anything else that humans are supposed to read. Run them through a contrast checker- WebAIM's got a good one- against your actual background colors. If you're seeing results below 4.5:1 for normal text, congratulations, you've found your problem child. If you're seeing results below 3:1 for large text, you've found your problem toddler.

The Cascade of Mediocrity (Or: How One Token Ruins Everything)

Here's what makes this particularly diabolical: design systems are supposed to make consistency easier, but they're also incredible at making failures consistent. One bad color token decision propagates through modals, forms, data tables, tooltips, error messages, and that weird sidebar menu nobody remembers implementing. It's like putting the same defective part into a million cars and then acting shocked when they all break simultaneously.

The real kicker? This isn't even hard to fix if you're integrating it into your design system properly. You need to:

  • Create separate contrast-compliant tokens for each text hierarchy level (primary, secondary, tertiary, disabled, etc.)
  • Document the specific contrast ratios each token meets (WCAG AA, AAA, whatever you're targeting)
  • Test those tokens against both your light and dark modes- yes, all of them
  • Make designers and developers actually aware these tokens exist and what they're supposed to be used for
  • Implement tooling that yells at people when they try to use them wrong (design token validation is your friend)

A popular SaaS platform audited their design system last year and found that 34 instances of secondary text tokens were being used across 7 different products- all with different contrast ratios, most failing accessibility standards. They weren't trying to exclude users. They just never connected the dots that design tokens are accessibility infrastructure, not just a way to make the Figma file look organized.

The Moment Someone Actually Fixes It (And Why It Matters)

When you correct your design tokens at the system level, something magical happens: every surface improves automatically. That modal nobody's touched in two years? Fixed. That new feature launching next sprint? Born accessible. That abandoned prototype from 2024? Would be fixed if anyone ever looked at it again.

This is the actual superpower of design systems. Not consistency for its own sake. Not the illusion of control. The ability to solve a problem once and have it ripple across your entire digital presence like you're some kind of accessibility superhero.

So here's your assignment (and I promise it won't take forever): grab your design system documentation, find your color token definitions, and run a contrast audit. Use WCAG's color contrast checker or similar tooling. Screenshot the results. Share them with your design and engineering leads. Then have a conversation about whether your secondary text color is actually just your primary accessibility problem wearing a disguise.

Your users- all of them, including the ones with vision challenges or just using your site in bright sunlight at a coffee shop- will thank you.

Disclaimer: This article is for informational purposes only and does not constitute legal, professional, or compliance advice. SCOUTb2 is an automated scanning tool that helps identify common issues but does not guarantee full compliance with any standard or regulation.

accessibilitycolor contrastWCAGvisual design

Stop finding issues manually

SCOUTb2 scans your entire site for accessibility, performance, and SEO problems automatically.