You're In The Right Place If…
- Lighthouse's Accessibility section lists "Image elements do not have [alt] attributes" with one or more failing elements
- Your accessibility score is stuck below 90 and this audit is at the top of the list
- A screen-reader test reads out file names like "logo2-g2--testimonials.webp" instead of describing the image
- The same image is flagged multiple times because it sits inside a carousel or slider
What Alt Text Does — For People First, Then For Rankings
Around the world, hundreds of millions of people rely on screen readers or have low vision. For them, alt text IS the image: a screen reader announces it in place of the picture, in reading order, as part of the page's content. Good alt text means the page makes sense with images off; missing alt text means holes in the narrative — or worse, a robot voice spelling out hyphenated file names.
The SEO benefit rides along for free. Google cannot fully "see" images; it ranks them in Google Images largely on alt text, file names, and surrounding content. Descriptive alt text on product shots, badges, team photos, and diagrams gives every image a chance to rank and reinforces the page's topic. It also matters legally: alt text is a WCAG Level A requirement (the lowest bar), and it is one of the first things checked in ADA/AODA website complaints.
How To Write Alt Text That Actually Helps
- Describe the content or FUNCTION, not the existence: "G2 Grid Leader badge for SAP consulting, summer 2026" — not "badge" or "image123"
- Skip "image of" / "picture of" — screen readers already announce it as an image
- Keep it under ~125 characters; front-load the important words
- For linked images, describe the destination ("AscendQ home") — the alt is the link text for screen readers
- For images containing text (badges, banners, screenshots of quotes), include that text — it is invisible to everyone otherwise
- Do not keyword-stuff. "SAP ERP SAP consulting SAP partner SAP" reads as spam to Google and as gibberish to a human listening to it
When An EMPTY Alt Is The Right Answer (and A Missing One Never Is)
There is a crucial difference between alt="" and no alt attribute at all. An empty alt tells screen readers "this image is decorative — skip it silently." A MISSING alt forces the screen reader to guess, which usually means reading the file name. So decorative flourishes, background swooshes, spacer graphics, and tracking pixels should carry alt="" deliberately — that PASSES the Lighthouse audit and is correct accessibility practice.
The test: if the image disappeared, would the page lose information? No → alt="". Yes → describe it. A LinkedIn tracking pixel loses nothing → alt="". A G2 award badge communicates "independent reviewers rate us highly" → it needs words.
<!-- informative image: describe it --> <img src="/hubfs/g2-grid-leader.webp" alt="G2 Grid Leader badge for SAP consulting services, summer 2026"> <!-- decorative or tracking image: empty alt, on purpose --> <img src="https://px.ads.example.com/collect" alt="" role="presentation">
Where The Alt Field Lives, Per Platform
- HubSpot: in the page editor, click the image → the options panel has an "Alt text" field. Images inside custom modules have an alt field per image in the module editor — if a developer built the module without one, the alt must be added in the module's HTML (this is the usual culprit when only SOME images on a page lack alts)
- WordPress: Media Library → select image → "Alternative Text" field (sets the default), or per-placement in the image block's settings sidebar
- Wix: click image → Settings → "What's in the image? (Alt text)"
- Squarespace: click image → Edit → "Image Alt Text" (in some blocks the caption doubles as alt)
- Shopify: product images → click image → "Edit alt text"; theme images via the theme editor's image picker
- Hand-coded sites: it is just the alt attribute — add it in the template, and add a lint rule (eslint-plugin-jsx-a11y, htmlhint) so it can never be forgotten again
The Slider Gotcha: One Missing Alt, Four Failures
Carousels and sliders (Slick, Swiper, most theme sliders) CLONE their slides in the DOM to create the infinite-loop effect. Lighthouse audits the rendered DOM — so a single image missing its alt inside a slider shows up as two, three, or four failing elements. Do not go hunting for four separate broken images: fix the one source image and every clone inherits the fix.
Audit Your Whole Site In Two Minutes
Lighthouse only checks the page you ran it on. Before declaring victory, sweep the rest: most crawlers (Screaming Frog's free tier, Sitebulb) report images missing alt site-wide. For a quick single-page check from a terminal:
# count img tags with no alt attribute at all on a page curl -s https://yoursite.com/ | python3 -c " import sys, re imgs = re.findall(r'<img\b[^>]*>', sys.stdin.read()) missing = [t for t in imgs if 'alt=' not in t] print(len(imgs), 'images,', len(missing), 'missing alt') for t in missing: print(re.search(r'src=.([^\" ]*)', t).group(1))"
The Fix, Step By Step
- 1
Get the exact failing elements from Lighthouse
Expand the audit in the report — it lists each failing img with a snippet and selector. Note the src of each; duplicates with the same src are slider clones of one image.
- 2
Sort each image: informative or decorative?
Would the page lose meaning without it? Informative images (products, badges, people, screenshots, diagrams) get descriptive alt text. Purely decorative images and tracking pixels get alt="" — empty on purpose, which passes the audit.
- 3
Write the alt text before touching the CMS
One line per image, under ~125 characters, content or function first, any visible text included, no "image of", no keyword stuffing. Writing them all at once keeps the voice consistent.
- 4
Add them where your platform keeps the field
Page-editor images: click the image → alt/alt text field. Module or theme images with no field visible: the fix is in the module/template code — add the alt attribute (or an editable alt field) there.
- 5
Re-run Lighthouse and sweep the rest of the site
Confirm the audit passes on the page you fixed, then run a site-wide crawl for missing alts — Lighthouse only ever saw one page.
From the trenches
How we hit this on a real production site
This week we audited a B2B site whose Lighthouse report flagged "Image elements do not have [alt] attributes" — the kind of finding that sounds like the site is riddled with problems. The actual count: 62 image tags on the homepage, 60 with proper alt text, ONE missing. A custom testimonial module displayed two G2 award badges side by side; the first had a thorough alt ("G2 SAP consulting services grid leader badge for summer 2026"), the second — same module, same purpose — had none at all. Classic module-field miss: whoever built or filled the module wired the alt for slot one and not slot two.
The audit also listed an image with an EMPTY alt — a LinkedIn ad-tracking pixel. That one is correct exactly as it is: a tracking pixel is invisible non-content, and alt="" is the proper way to tell screen readers to skip it. Knowing the difference kept us from "fixing" something that was already right.
Total remediation: one sentence of alt text in one module field, describing what the badge actually says. That is the shape of most alt-text findings — not a rebuild, just words nobody wrote. The discipline that prevents it: audit new pages before publish, and build modules so the alt field is required. If your report is longer than one image, the site-wide sweep in this guide finds them all in minutes.
Frequently Asked Questions
Does alt text really affect SEO, or is that a myth?
It is real but scoped: alt text is a primary ranking input for Google Images and a supporting relevance signal for the page. It will not rescue thin content, but on product, service, and location pages, image search is a genuine traffic source you are forfeiting without it.
Should every single image have alt text written out?
Every image needs an alt ATTRIBUTE — but decorative images should have an empty one (alt=""), which tells screen readers to skip them. Writing "decorative swoosh graphic" on decoration is worse than silence.
Lighthouse shows the same image failing four times. Four bugs?
Almost certainly a carousel: sliders clone slides in the DOM, and each clone inherits the missing alt. Fix the one source image in your CMS and all the clones pass.
Can I use AI to generate alt text in bulk?
For large backlogs it is a solid starting point — modern vision models describe images well. But review each one: AI cannot know the image's FUNCTION on your page (that a badge signifies an award, or that a linked logo goes home), and function is what good alt text describes.
Is missing alt text a legal risk?
It can be. Alt text is required at WCAG Level A, and images without alternatives are among the most-cited failures in ADA (US) and AODA (Ontario) web-accessibility complaints. It is also one of the cheapest findings to fix before it appears in one.
Still stuck? Send us the exact error.
Paste the exact error message you're seeing and where it happens. We'll take a look — if it's quick we'll point you at the fix, and if it's deeper we'll tell you honestly what it takes.