Audio Needs Captions

No Comments
Audio needs captions

Element Code: AC-045

TL;DR: This check flags audio and video elements on the page that have no captions, no transcript, and no text alternative. Fix it by adding a real transcript for audio and a synced caption track for video. It is a WCAG requirement, it is legal exposure under ADA-style lawsuits, and it is free indexable text you are currently throwing away.
Check Type
Accessibility / Content
Impact Area
Accessibility, SEO, UX
WCAG Criterion
1.2.1, 1.2.2, 1.2.3
Fix Effort
Low to Medium
Priority
High

What This Check Actually Flags

This check looks at every <audio> and <video> element on a page and asks a simple question: is there any machine-readable text version of what's being said or shown. If a podcast player is embedded with no transcript block anywhere on the page, that fails. If a video has a <video> tag but no <track kind="captions"> child and no caption file referenced, that fails too. It doesn't matter if the audio or video is hosted on your own server or embedded from YouTube, Vimeo, Spotify, or a podcast host. If there's spoken or meaningful audio content and no text equivalent lives on or near that element, this check flags it.

A lot of sites get tripped up here because they assume "the platform handles it." YouTube auto-generates captions, sure, but auto-captions live inside YouTube's player, not in your page's HTML. Google's crawler indexing your page doesn't get credit for captions sitting in a third-party iframe. Same with Spotify embeds for podcasts: the audio player shows up, the transcript does not, unless you build it yourself.

Why It Matters for Accessibility (Not Optional)

Three WCAG 2.1 success criteria cover this directly, and knowing which one applies to which media type actually matters when you're prioritizing fixes:

  • 1.2.1 Audio-only and Video-only (Prerecorded), Level A: for audio-only content (like a podcast episode) a text transcript must be provided. For video-only content (no audio track, like a silent screen recording) either a transcript or an audio track describing the visuals is required.
  • 1.2.2 Captions (Prerecorded), Level A: synchronized captions are required for prerecorded video that has an audio track. This is the "closed captions on a video" requirement most people think of first.
  • 1.2.3 Audio Description or Media Alternative (Prerecorded), Level A: for prerecorded video, you need either audio description (a narrated track describing visual information that isn't conveyed in the dialogue) or a full text alternative that describes both the audio and the visuals.

These are Level A, the baseline. They are not "nice to have if you're chasing AAA." A page with an embedded podcast and zero transcript is failing Level A conformance, full stop. This is also the exact category of issue that shows up over and over in ADA web accessibility lawsuits and demand letters, because "video/audio with no text alternative" is trivially easy for a plaintiff's auditor to document with a screen reader test and a screenshot.

Why It Matters for SEO

Here's the part that gets missed even by people who genuinely care about accessibility: Google cannot listen to your audio. It cannot watch your video and understand the dialogue. Search engines parse text. A 40-minute podcast episode with brilliant, keyword-rich, expert commentary is functionally invisible to Google unless you put that content into text on the page. A transcript is not busywork, it's the only mechanism that turns spoken content into something that can rank, get pulled into a featured snippet, or get quoted in an AI Overview.

Concretely, transcripts and captions help SEO in a few specific ways:

  • Crawlability of spoken content. Every name, statistic, and phrase your host says out loud becomes indexable text, which means it can match long-tail queries you never would have targeted on purpose.
  • Featured snippet and answer-box eligibility. Google pulls snippet answers from text on the page. A well-formatted transcript with clear Q&A structure or headers is snippet bait in a way that an embedded audio player never will be.
  • Dwell time and engagement signals. Visitors who came for a specific detail can scan the transcript instead of scrubbing through 25 minutes of audio, which keeps them on the page instead of bouncing back to the SERP.
  • On-page keyword relevance and topical depth. A transcript adds substantial, genuinely relevant body text to what might otherwise be a thin page consisting of a title and an embed. That's real content depth, not filler.

None of this shows up as a specific line item in Google Search Console. Search Console won't tell you "hey, your podcast page has no transcript." This is a gap you have to go looking for.

How This Gets Detected

Since Search Console stays quiet on this one, you need dedicated tooling. In practice, a combination of these gets full coverage:

  • Screaming Frog custom extraction. Set up a custom extraction rule for //audio and //video XPath selectors, then a second rule checking for the presence (or absence) of a <track> child element or a nearby transcript container. Run it site-wide and you get a spreadsheet of every media element and whether it has a caption track.
  • axe DevTools. Deque's axe extension flags missing captions and audio alternatives as part of its automated accessibility scan, and it will point at the specific DOM node.
  • WAVE (WebAIM). WAVE visually overlays accessibility issues on the rendered page, including missing text alternatives for media, which is useful for a fast manual spot check.
  • Lighthouse accessibility audit. Chrome DevTools' Lighthouse panel includes checks under its accessibility category that catch some, though not all, missing-caption scenarios. Treat it as a supplement, not the whole audit.
  • Manual review. For anything embedded via third-party iframe (Spotify, YouTube, SoundCloud), automated tools often can't see inside the iframe. You have to manually confirm whether a transcript exists in your own page markup, separate from the player.

Search Console will not flag this directly. Don't wait for it to show up there.

How to Fix It, Step by Step

  1. Inventory every audio and video element on the site. Use the Screaming Frog extraction above to get a full list. Don't rely on memory, especially on sites where multiple authors have embedded media over the years.
  2. Generate a first-pass transcript with automated tools. Whisper-based tools, YouTube's auto-caption export, Otter.ai, Descript, or similar will get you 85-95% accuracy fast and cheap. This is a legitimate starting point, not a shortcut you should feel guilty about.
  3. Human-edit the auto-generated draft. Auto-transcription mangles names, brand terms, and technical jargon reliably. A person needs to pass over it, fix misheard words, add punctuation for readability, and label speakers if there's more than one voice.
  4. For video, build a proper caption file and wire it up with the <track> element. Export a WebVTT (.vtt) file with timestamps, then reference it inside your video tag: <video><track kind="captions" src="captions.vtt" srclang="en" label="English"></video>. This gives users a toggleable closed-caption option baked into the native player.
  5. For audio-only content (podcasts), place the full transcript directly on the page near the player. Not linked off to a PDF three clicks away, actually on the page as real text, ideally below or beside the embed. Use headers, paragraph breaks, and speaker labels so it's scannable, not one giant wall of text.
  6. Add audio description or a descriptive text alternative for video where visuals carry meaning the dialogue doesn't cover. If someone is pointing at a chart or demoing a UI silently, either narrate it or describe it in the accompanying text.
  7. Re-audit with axe or WAVE after publishing to confirm the fix actually registers and nothing broke in the process.

What Good Looks Like

A page that passes this check has a video with a working caption toggle sourced from a real <track> file, or a podcast episode with a complete, readable transcript sitting in the page body, formatted with headers and paragraphs rather than dumped as one unbroken block. The transcript reads like actual page content, not an afterthought bolted on to satisfy a checklist. That's the standard to build toward, and it's the same standard that happens to produce the best SEO outcome, so there's no tension between "accessible" and "optimized" here. They're the same fix.

Audio / Video source on page

Captions <track> on video

Transcript text block on page

Crawlable Text indexable by Google snippet-eligible

SEO + dwell time WCAG A compliance 1.2.1-1.2.3

Captions vs. Transcripts vs. Audio Description

These three terms get used interchangeably in casual conversation, which causes confusion when you're actually trying to fix a WCAG failure. They solve different problems and often need to coexist on the same piece of content.

TypeUse CaseFormatSEO Value
Closed captionsVideo with dialogue, synced to audio timingWebVTT or SRT via <track>Low direct value (not always crawled), high UX/accessibility value
Full text transcriptPodcasts, webinars, any audio-only or video contentPlain text/HTML block on the pageHigh: fully crawlable, snippet-eligible, adds real body content
Audio descriptionVideo where visuals convey meaning not covered in dialogueExtra narrated audio track, or described in the transcriptModerate: mainly adds descriptive text if written into the transcript

Do This, Not That

DO

  • Put the full transcript as real text on the page, not a linked-off PDF
  • Use a human editing pass on auto-generated captions before publishing
  • Wire captions into video with a proper <track> element, not a burned-in caption image
  • Label speakers in multi-person transcripts for readability and clarity
  • Re-check with axe or WAVE after the fix ships
DON'T

  • Assume YouTube's auto-captions inside an embed count as your page having captions
  • Publish raw auto-transcription without a human review pass
  • Bury the transcript behind a click-to-expand that search engines might not render
  • Skip audio description when a video's visuals carry information the dialogue doesn't
  • Treat this as "handled" just because Search Console never flagged it

FAQ

Does an embedded YouTube video with auto-captions turned on satisfy this check?
Not fully. YouTube's auto-captions live inside YouTube's own player and are toggled by the viewer inside that iframe. Your page's HTML doesn't contain that caption text, so it isn't crawlable as part of your page, and it isn't guaranteed to be on by default for users who need it. You still want either a transcript in your own page markup or a caption file you control.
Is a transcript really necessary if the video already has captions?
For WCAG 1.2.2 alone, captions satisfy the requirement for prerecorded video with audio. But a standalone transcript still adds independently crawlable, quotable text to the page, which captions embedded in a video file generally do not provide in the same way. If SEO value matters to you, add both where you can.
Can I just use auto-generated captions and call it done?
You can ship auto-generated captions as a starting point, but publishing them uncorrected is a mistake. Auto-transcription misses names, technical terms, and homophones constantly, and inaccurate captions can be worse than none for both comprehension and your credibility. Budget time for a human editing pass.
Where should the transcript physically go on the page?
Directly on the page, near the media player, as rendered text in the initial HTML (or at minimum in content that loads without requiring a click most crawlers won't trigger). A collapsible "Show transcript" section is fine for UX as long as the text is present in the DOM, not fetched only on click via JavaScript that a crawler might skip.
Will Search Console ever flag this for me?
No, not directly. Search Console doesn't run an accessibility audit of your media elements. You need axe DevTools, WAVE, Lighthouse's accessibility category, or a Screaming Frog custom extraction to catch this. Don't wait for GSC to tell you, it won't.

Want a full accessibility and technical SEO pass on your site, not just this one check?

Our advanced SEO audit covers accessibility gaps like this one alongside crawlability, indexation, and content depth issues across the whole domain.

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