Matterhorn 03-002 · PDF/UA-1 UA1:7.1-5
Flashing video or animation embedded in a PDF
Embedded video or animation flashes more than three times per second.
The condition, as the protocol states it. “One or more multimedia objects contain flickering content.”
Matterhorn Protocol 1.1, checkpoint 03, index 03-002, section UA1:7.1-5. The protocol marks this as requiring human judgement.
What a screen reader actually does
Not a screen-reader issue — a seizure-risk issue for sighted readers.
Where video lives in a PDF
An image in a PDF cannot move. Video and animation arrive through a media annotation, which reserves a rectangle on the page — the play area — and points at the media to play in it. The current form is a Screen annotation driven by a rendition action:
40 0 obj
<< /Type /Annot /Subtype /Screen
/Rect [ 72 420 372 600 ] % the play area
/Contents (Induction video)
/A << /S /Rendition /OP 0 /AN 40 0 R % play into this annotation
/R << /S /MR % media rendition
/C << /Type /MediaClip /S /MCD
/CT (video/mp4)
/D 41 0 R >> >> >> % the file, embedded or by URL
>>
There are two others. Movie annotations are the older mechanism and are deprecated in PDF 2.0. RichMedia annotations began as an Adobe extension and were standardised in PDF 2.0. All three end in the same place: moving pictures in a box on the page, played by the viewer.
The media does not have to be inside the file. Adobe’s own instructions for adding video in Acrobat offer either choosing a file or typing a URL to a video file or stream (Adobe: Adding multimedia to PDFs). A linked clip is reviewed as it was on the day you watched it; the PDF will play whatever the server holds next week.
What happens to the reader
Nothing, for a screen-reader user who cannot see the play area. For a sighted reader with photosensitive epilepsy, a clip with rapid flashing can trigger a seizure, and it does so at whatever size the viewer is showing it: a reader who has zoomed in gets a larger flashing area than the author tested at.
The threshold is WCAG 2.3.1’s: no more than three flashes in any one second, where a flash is a pair of opposing changes in brightness, unless the flashing area is small enough to stay under the general and red flash thresholds. Saturated red has a threshold of its own.
Where it comes from
- Recorded screen demos with cursor highlights, rapid scene cuts or a strobing transition.
- Marketing and event video: concert footage, camera flashes at a launch, a logo animation with a white strobe.
- Safety and training material that deliberately shows warning lights or alarms. The subject matter is often the flashing itself.
- Animations exported as video from presentation or motion tools, where a high-contrast build effect repeats.
Nothing in the PDF producer causes this; it inherits whatever the clip contains.
How to check it free
Find the media. Acrobat’s Accessibility Checker touches media in two rules (All tools → Prepare for accessibility → Check for accessibility): Tagged multimedia, which checks that every multimedia object is in the tags tree, and Screen flicker, which is the one this condition belongs to. Adobe’s guidance for the second is to remove or modify the content that causes the flicker, so treat it as a prompt rather than a measurement (Adobe: Create and verify PDF accessibility).
For a plain list of where the media is, this prints every media annotation with its page and its description, using Python and the free pikepdf library:
import sys, pikepdf
MEDIA = {"/Sound", "/Screen", "/Movie", "/RichMedia"}
pdf = pikepdf.open(sys.argv[1])
for n, page in enumerate(pdf.pages, 1):
for a in page.get("/Annots", []):
if str(a.get("/Subtype")) in MEDIA:
print(f"page {n}: {a.Subtype} Contents={a.get('/Contents')}")
Watch every clip to the end. Flashing is usually brief: a transition, a cut, three seconds of a strobe in a twelve-minute video. Skimming misses it.
Measure anything doubtful. PEAT, the Trace Center’s Photosensitive Epilepsy Analysis Tool, is free for Windows and measures video against the WCAG flash thresholds. Run it on the source clip if you have it, or on a screen recording of the clip playing in the PDF. Note its licence: it may not be used to assess commercial broadcast, film, home-entertainment or games content.
How to fix it free
The fix is in the clip, not the PDF. Edit the flashing section out, slow it down, lower its contrast, or shrink the area that flashes, then measure it again.
Then replace the media in the document. Adobe documents both halves in Acrobat Pro: select the play area with the Select object tool and press Delete to remove the clip, then add the edited one from All tools → Add rich media → Video, by dragging or double-clicking where it should play. The same Select object tool opens the clip’s settings on a double-click, including the Activation Settings that decide when it plays (Adobe: Adding multimedia to PDFs). Changing those so the clip waits for a click is a courtesy, not a fix.
If the clip is linked rather than embedded, either embed the checked version or make sure the server copy cannot change without someone checking it again.
If the video cannot be changed — someone else’s footage, a regulatory recording — take it out of the document and link to it with a text warning beside the link. The reader then decides before anything plays, and the document itself no longer contains the flashing.
What Taggart does
Taggart does not play media, look inside media files, or measure flashing. It has no check for this condition, so it never appears in the findings or in the review queue. It is on the list of conditions Taggart does not check, which it shows you before writing the PDF/UA identifier: the claim stays at machine checks passed until someone confirms that list by hand, in the application’s conformance step.
What Taggart does report about the same object is its accessibility plumbing: a Screen, Movie or RichMedia annotation that is not in an <Annot> structure element is 28-002, and one with no /Contents and no alternate text on its element is 28-004. The first is a safe repair that Fix All Safe applies; the second is held for a person, because Taggart does not invent descriptions. Following the rendition action to the clip itself, it also reports a clip with no content type (28-014) or no description (28-015). Looking at the clip to describe it is a good moment to watch it for flashing as well. A file whose media is correctly tagged and described passes every check Taggart runs whatever the clip contains, so the confirmation before the claim is the only point at which Taggart asks about it — and it asks once, for the whole list.
How Taggart handles it
No software can decide this one, and Taggart has no check for it, so it never appears among the findings or in the review queue. It is on the list of conditions Taggart asks you to confirm by hand before it writes the PDF/UA claim into the file — the claim waits until you have.
Whatever Taggart changes, the page still looks identical. Fixes edit the PDF object model, not the content streams, and every remediation is re-rendered and compared against the original at structural similarity ≥ 0.999 before you get the file back. A tool that quietly reflows your document is worse than no tool.
Frequently asked questions
Can an image in a PDF flash?
No. A PDF image is a single frame; an animated GIF placed into a document becomes a still picture. Anything that moves in a PDF is a media object, a script, or the viewer turning pages, which is why the protocol has a condition for each.
The video only plays when clicked. Is that enough?
No. WCAG 2.3.1 has no exception for content the reader starts, and a warning before it does not count either. The flashing section has to be removed, slowed, dimmed or made small enough to fall under the thresholds.
The PDF links to a video on a server rather than embedding it. Does this still apply?
Yes — the reader experiences it inside the document either way. It is also harder to keep checked: whoever controls the server can replace the file after your review, and the PDF will play whatever is there.
Is a flashing video also a screen-reader problem?
Not directly; this one is about seizures in sighted readers. The same media object usually has screen-reader conditions of its own — it must be tagged and described (28-002, 28-004), and anything said in it needs a text equivalent (05-001).
Where this sits in the standards
| Standard | Reference |
|---|---|
| Matterhorn Protocol 1.1 | Checkpoint 03 (Flickering), index 03-002 |
| PDF/UA-1 (ISO 14289-1) | Clause 7.1-5 |
| WCAG 2.1 | 2.3.1 Three Flashes or Below Threshold — Level A |
| EN 301 549 / Section 508 / ADA Title II | All three point at WCAG 2.1 Level AA for non-web documents, so a Level A or AA criterion here is in scope for each of them. |
Related conditions
- 03-001 One or more Actions lead to flickeringPage or annotation actions produce flashing that can trigger photosensitive seizures.
- 03-003 JavaScript actions lead to flickeringDocument-level or field-level JavaScript animates content at a rate that can trigger seizures.
- 05-001 Media annotation present, but audio content not available in another formEmbedded media carries information in audio with no transcript or equivalent text in the document.
- 28-002 An annotation is not a direct child of an Annot structure elementNon-widget, non-link annotations must sit inside an Annot structure element so they have a place in the reading order.
Other conditions in checkpoint 03
Checkpoint 03 covers flickering. These are its other failure conditions; the ones without a link are in the rule set but do not have a written page yet.
- 03-001 One or more Actions lead to flickeringPage or annotation actions produce flashing that can trigger photosensitive seizures.
- 03-003 JavaScript actions lead to flickeringDocument-level or field-level JavaScript animates content at a rate that can trigger seizures.
Check your own file. Taggart’s validator is free and unlimited — 75 of the 87 Matterhorn conditions software can decide, with the other 12 listed for you to confirm; no watermark, no expiry, and no account needed up to 60 pages.
This condition needs a person’s judgement, so there was nothing for a tool to check. Written from ISO 14289-1 and the Matterhorn Protocol on . The Acrobat steps follow Adobe’s documentation and were not walked through by hand. Last updated .