Why Edge captions are not showing
TL;DR — Diagnose captions that fail in Microsoft Edge by checking WebVTT files, delivery headers, cross-origin access, and HTML5 track markup.
Related tool
WebVTT Validator Online
Microsoft Edge uses Chromium’s native text track handling, so caption failures often look similar to Chrome: the VTT file is invalid, the track URL is wrong, the server sends the wrong response headers, or the track loads but is not enabled.
Quick answer
Validate the caption file with the WebVTT Validator first. Edge expects a real WebVTT file with a WEBVTT header, dot-based timestamps, valid cue timing, and blank lines between cues.
Then open the deployed .vtt URL directly in Edge. If it returns a 404 page, login page, HTML error response, or a generic download instead of caption text, the video player will not show captions reliably.
If your source captions are SRT, convert them with the SRT to VTT Converter before adding them to an HTML5 video track.
Validate the WebVTT file
Edge does not read SRT syntax from a native HTML5 <track> element. A browser-ready VTT file should start like this:
WEBVTT
00:00:01.000 --> 00:00:03.500
First caption line.
00:00:04.000 --> 00:00:06.200
Second caption line.
Check for:
WEBVTTon the first line- dot-based timestamps instead of SRT commas
- blank lines between cues
- cue start times before cue end times
- UTF-8 text that renders correctly
If the file came from SRT, convert it instead of renaming it. For the full workflow, see how to convert SRT to VTT for HTML5 video.
Check the track request in Edge DevTools
Open Edge DevTools, reload the page, and check the Network tab for the .vtt request.
The track URL should return:
HTTP/2 200
Content-Type: text/vtt
Common failures include:
404because thesrcpath is wrong403because the caption URL needs authentication- an HTML error page served from the caption URL
text/plainorapplication/octet-streaminstead oftext/vtt- CORS errors when captions are hosted on another domain or CDN
For server-side fixes, use how to fix VTT MIME type for HTML5 video and how to fix CORS errors for VTT subtitles.
Check the HTML track markup
Use a normal HTML5 video track with explicit metadata:
<video controls crossorigin="anonymous">
<source src="/videos/demo.mp4" type="video/mp4" />
<track
kind="captions"
src="/captions/demo.en.vtt"
srclang="en"
label="English"
default
/>
</video>
The default attribute tells Edge which caption track should be active when the video loads. Without it, the viewer may need to enable captions from the player controls.
If captions are cross-origin, keep crossorigin="anonymous" on the video element and send a matching Access-Control-Allow-Origin header from the caption host.
Check Edge caption settings
If the VTT file loads and the track is selected but captions still look invisible, check Edge’s accessibility caption settings and any custom CSS on the page.
Open:
edge://settings/accessibility
Caption style settings are less common than broken VTT or blocked track URLs, but they can make text unreadable during testing.
Common Edge caption mistakes
Renaming SRT to VTT
Edge expects WebVTT structure, not just a .vtt extension.
Fix: Convert with the SRT to VTT Converter and validate the output.
Wrong MIME type
Some static hosts serve .vtt files as text/plain or application/octet-stream.
Fix: Configure .vtt files to use Content-Type: text/vtt.
Cross-origin captions without CORS
If the page and captions are on different origins, Edge needs permission to read the track file.
Fix: Add CORS headers to the caption response and use crossorigin="anonymous" on the video element.
Track loads but captions are off
The file can load successfully while no caption track is selected.
Fix: Add default for the primary track or manually enable captions from the browser video controls.
Troubleshooting checklist
- Validate the VTT file with the WebVTT Validator.
- Convert SRT or ASS captions to WebVTT if needed.
- Open the
.vttURL directly in Edge. - Confirm the request returns
200andContent-Type: text/vtt. - Check Edge DevTools for CORS, MIME, or 404 errors.
- Use explicit
kind,src,srclang,label, anddefaultattributes. - Add CORS headers if captions are cross-origin.
- Check Edge accessibility caption settings if the track loads but text is invisible.
Related guides
- Why subtitles do not show in HTML5 video
- Why VTT captions are not loading
- Why Chrome captions are not showing
- Why Firefox captions are not showing
Related tools
Use the WebVTT Validator Online
Validate WebVTT captions online and check missing WEBVTT headers, timestamp syntax, cue order, and HTML5 caption issues. No signup, no upload, and everything runs locally in the browser.
Open VTT validator