Object Needs Alt

No Comments
Object needs alt
TL;DR: An "Object Needs Alt" flag means an HTML <object> element has no text alternative, so screen readers and crawlers see nothing. Fix it by adding fallback content inside the element or an aria-label, or by swapping to a proper <img> or <svg> where that fits.
Element
<object>

Missing
Text alternative

Hurts
A11y and crawling

WCAG
1.1.1 Non text Content

Fix effort
Low

What the check is flagging

The HTML <object> element embeds an external resource: a PDF, an SVG, a legacy Flash movie, an image, or another nested browsing context. Unlike <img>, an <object> has no alt attribute. Its text alternative comes from a different place, and when that place is empty, assistive technology and crawlers get handed a black box with no idea what it contains.

So "Object Needs Alt" is not literally asking for an alt= attribute. It is telling you the element exposes no accessible name and no fallback text. A screen reader lands on it and announces something useless like "object" or nothing at all. That is a real barrier for the person using it, and it trips accessibility scanners because it fails WCAG 2.1 success criterion 1.1.1, Non text Content, which requires a text alternative for anything that is not text.

Why it matters beyond ticking a box

Two reasons, and I care about both. First, accessibility is the point, not a side effect. If your embedded chart, diagram, or document carries information and there is no text alternative, a blind or low vision user simply does not get that information. Second, there is an SEO overlap. Search engines lean on the same text signals assistive tech does. Content locked inside an opaque embedded object with no surrounding description is content a crawler struggles to understand or index. An empty object is a dead spot on the page for both audiences.

Honestly, a lot of these flags show up on old PDFs and diagrams that someone dropped in years ago and forgot. The fix is usually quick. The annoying part is that there are several right answers depending on what the object is, so let me lay those out.

How an object gets its accessible name

<object> has no alt attribute where does the name come from?

Fallback content text or img inside the object tag

aria-label or aria-labelledby on the object

Swap the element use img or inline svg instead

Decorative? hide with aria-hidden

The fixes, in order of preference

1. Provide fallback content inside the object. Anything between the opening and closing tags is shown when the object cannot render and is used as the accessible description. This is the native, best supported route.

<object data="q3-revenue.pdf" type="application/pdf">
  <p>Q3 revenue report. <a href="q3-revenue.pdf">Download the PDF</a>.</p>
</object>

2. Add an aria-label or aria-labelledby. When you cannot restructure the markup, name the object directly. Use aria-labelledby to point at a visible caption so the sighted and unsighted descriptions stay in sync.

<object data="org-chart.svg" type="image/svg+xml"
        aria-label="Company org chart, 2026"></object>

3. Swap to a better element. If the object is really just an image or an SVG, do not embed it as an object at all. Use <img> with a proper alt, or inline <svg> with a <title> and role="img". Simpler markup, fewer edge cases.

4. If it is purely decorative, mark it aria-hidden="true" so assistive tech skips it cleanly instead of announcing an unnamed object. Only do this when the object carries zero information.

Which fix for which case

Object containsBest fixWhy
Embedded PDFFallback text plus download linkGives everyone a way to reach the file
Informative SVG or chartaria-label, or inline the svg with a titleConveys the data the graphic shows
A plain imageReplace with an img and altNative alt support, simpler markup
Decorative flourisharia-hidden trueRemoves noise for screen readers

How to detect it at scale

You will not find these by eyeballing pages. Use tools that parse the DOM:

  • Screaming Frog crawls the site and its accessibility and custom extraction features can surface object elements missing a name.
  • axe DevTools and WAVE in the browser flag objects with no text alternative directly against WCAG 1.1.1.
  • Lighthouse in Chrome DevTools includes accessibility audits that catch unnamed embedded content.
  • Sitebulb runs accessibility checks across a full crawl, handy for finding every offending object at once.
  • A real screen reader pass with NVDA or VoiceOver is the ground truth. If it announces "object" and moves on, you have a problem no scanner report replaces.

DO and DON'T

Do
  • Put meaningful fallback content inside the object tag.
  • Use aria-labelledby to reuse a visible caption.
  • Swap to img or inline svg when that is what it really is.
  • Give a PDF object a plain download link.
  • Confirm the fix with an actual screen reader.
Don't
  • Leave the object empty and hope crawlers cope.
  • Add aria-hidden to something that carries information.
  • Stuff the filename in as the description.
  • Assume an object supports a plain alt attribute.
  • Ship the fix on scanner green alone, with no manual test.

FAQ

Can I just add alt to the object tag?
No. The object element does not support an alt attribute the way img does. Use fallback content inside the tag, or an aria-label or aria-labelledby, instead.
Does this affect SEO or only accessibility?
Both. It is primarily an accessibility issue under WCAG 1.1.1, but content trapped in an unnamed object is hard for crawlers to understand too, so fixing it helps how search engines read the page.
Should I still be using object at all?
Sometimes. It is legitimate for embedding PDFs and some SVGs. For plain images or icons, img and inline svg are simpler and better supported, so prefer those where they fit.
What if the object is decorative?
Mark it aria-hidden true so screen readers skip it. Only do this when the object adds no information, otherwise you are hiding real content from disabled users.
How do I test the fix worked?
Rerun axe, WAVE, or Lighthouse to clear the flag, then tab to the element with NVDA or VoiceOver and confirm it announces a clear, meaningful name.
Found this flag and worried what else is hiding?

We run a full technical and accessibility crawl, catch every unnamed object, missing alt, and crawl trap, and hand you a prioritized fix list.

Get an Advanced SEO Audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog