Frequently litigated
Missing captions are the standard allegation brought by deaf and hard-of-hearing plaintiffs.
Which WCAG criterion this fails
- Does not meet 1.2.2 Captions (Prerecorded) (Level A)
How to fix it on WooCommerce
Everything below is done from Appearance > Theme File Editor, or your child theme over SFTP. Take a copy of the theme before editing.
- Add a <track kind="captions"> to each self-hosted <video>, pointing at a .vtt file, with srclang and a label.
- For Shopify-hosted video, upload the caption file in Content > Files and reference its URL in the section.
- For YouTube/Vimeo embeds, upload captions in that platform — auto-generated captions are a starting point but must be corrected, since product and brand names are usually transcribed wrongly.
- Silent decorative background video needs no captions, but it must not autoplay with sound and needs a pause control (see WCAG 2.2.2).
- Add a transcript below the video as well; it helps SEO and serves shoppers who cannot use video at all.
Where this usually lives
Video blocks in the block editor and any custom <video> markup in the child theme
Paths given for Storefront, Astra, Flatsome and other WooCommerce themes. A heavily customised theme may differ; the CSS selector in your scan report points at the exact element.
Code
<video controls preload="metadata" poster="{{ 'poster.jpg' | asset_url }}">
<source src="{{ video_url }}" type="video/mp4">
<track kind="captions" src="{{ 'demo-en.vtt' | asset_url }}" srclang="en" label="English" default>
</video>How to confirm it is fixed
Re-run the scan. This rule should drop out of the findings entirely. If the instance count falls but does not reach zero, the same defect exists in another template — product cards and quick-view modals are the usual second home for it.
Effort: high. Rule id: video-caption (axe-core).