Skip to main content
Opinion4 min read

The Alt Text Disaster That's Hiding in Your Design System

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

Alt text mistakes ripple across your entire product. Learn how to fix shared components so every surface improves together.
Alt text mistakes ripple across your entire product. Learn how to fix shared components so every surface improves together.

You know that feeling when you realize your entire website has been saying "image" as alt text for the past three years? Not because you're bad at your job, but because someone copy-pasted a component in 2019 and now it's infected your entire design system like digital mold?

Yeah. We're talking about that.

Here's the uncomfortable truth: when alt text goes wrong, it doesn't go wrong in one place. It goes wrong everywhere. One broken shared component touching 47 product surfaces means you've got an accessibility problem at scale. And unlike that typo on your homepage that only three people noticed, this one affects real humans trying to use your product.

How "Image" Became Everyone's Problem

Let's paint a picture. A designer creates a nice card component for your design system. It has an image. They slap "image" in the alt text field because, honestly, they're on their fourth coffee and haven't thought about it. This component gets shipped. Marketing uses it. Product uses it. The onboarding team uses it. Suddenly, you've got 200+ instances of "image" floating around your product like digital tumbleweeds.

Now imagine you're using a screen reader. You hear "image, image, image" over and over. You learn nothing. You're frustrated. You leave. And hey, guess what? Your bounce rate just went up and you have no idea why.

Industry data shows that roughly 72% of accessibility issues are shared across multiple pages of a website - which means one broken pattern in your design system can take out entire product lines. That's not a bug. That's an architectural decision making your site worse for everyone.

The real kicker? This is preventable. Completely. But it requires treating alt text like what it actually is: a design system problem, not a "remember to fill this out" problem.

The Design System Approach: Fix It Once, Fix It Everywhere

Here's where most teams go wrong. They treat alt text like a copy-editing task. They hire someone to audit the site, find all the broken alt text, fix it, declare victory, and move on. Congratulations! You just solved yesterday's problem!

The right move is different. You fix it in the component. You document it. You integrate it into your design tokens. You make it impossible to ship lazy alt text by accident.

Step one: audit your shared components. Which images appear in your design system? Product cards? Hero sections? Hero images with overlaid text? Decorative icons that are actually semantic? Pull up your component library and look specifically at image elements. For each one, ask:

  • Does this image convey information, or is it decorative?
  • If information-driven, what is that information?
  • Does the alt text work when it appears 47 times in different contexts?

Step two: establish your alt text standards. This goes in your design system documentation - right next to your color tokens and typography scale. Some images need meaningful descriptions. Some need empty alt attributes (alt="") because the image is purely visual and the surrounding text already explains everything. Some need the filename to vanish forever (RIP IMG_2847.JPG).

The magic happens when you bake this into your component defaults. Your card component should ship with a labeled prop for alt text. Your image component should have guidelines. Your design tokens should include guidance. When a designer or developer uses the component, they're nudged toward doing the right thing.

Step three: scale the fix. That one shared button component? Now it works properly for everyone using it. That reusable card? Fixed across the entire product. You don't fix 47 instances - you fix one, and 47 instances improve overnight. This is how you make accessibility scale.

When Empty Alt Text Is Actually the Hero

Quick sidebar: empty alt text isn't laziness. It's a feature.

If you have a decorative image - something that's purely there because the designer wanted it to look nice and the surrounding text already explains everything - give it empty alt text: alt="". This tells screen readers "hey, skip this." It's useful. It's correct. Stop feeling guilty about it.

Where people mess up is using empty alt text for informative images. That product photo? Not empty. That chart? Not empty. That icon showing status? Absolutely not empty. But that spacer image or purely decorative background flourish? Empty is correct.

Your Move

Pull up SCOUTb2 and scan your site. Look for the alt text patterns. Notice where "image" appears. Notice where filenames are living their best life. Then ask yourself: how many of your components create this problem automatically?

Fix it at the source. Your whole product 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.

accessibilityalt textimagesscreen readers

Stop finding issues manually

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