Does each non-time-based medium have, where necessary, an alternative (except in special cases)?
A visitor using a screen reader or browsing without proprietary plug-ins encounters a page that includes a virtual tour in Flash, a 3D mockup in Silverlight, or a non-HTML vector animation: they see an empty rectangle, or nothing at all. If no alternative is offered, the information that this media conveys is permanently lost to them. This is exactly what criterion 4.8 seeks to prevent.
Concretely, the criterion requires that a link or button adjacent to the media — clearly identifiable — allow either access to a page containing the alternative, or consultation of the alternative directly within the page. The alternative must be accessible, meaning truly consultable and understandable.
These technologies have become extremely rare. Flash died in 2020, Silverlight earlier still. Practical cases today are limited to a few inherited 3D virtual tours, proprietary interactive mockups, or vector animations embedded via non-standard formats. HTML carousels animated in JavaScript are not non-temporal media: they fall under criterion 7.1.
2 tests to verify that an alternative accompanies each non-temporal media
Link or button adjacent to alternative of non-temporal media
- Identify each non-temporal medium on the page (Flash, Silverlight, 3D virtual tour, animation via proprietary plug-in).
- For each medium found, look for an adjacent link or button that is clearly identifiable.
- This link or button must meet one of these two conditions:
- It points to a page containing the alternative to the media.
- It provides access to an alternative directly on the same page.
- If no adjacent link or button is present for a medium, the test fails.
- If all non-temporal media have such a link or button, the test is validated.
Accessibility of alternative to non-temporal media
Review the list of non-temporal media that have an adjacent link or button (identified in test 4.8.1).
- For each medium, follow the link or activate the adjacent button.
- Verify that the destination page is accessible (no HTTP error, no blocked content).
- Verify that the alternative itself is accessible: readable, operable by keyboard, compatible with assistive technologies.
- If all alternatives are truly accessible, the test is validated.
Beware, three situations make this criterion non-applicable for a given medium:
- The medium is purely decorative (no information conveyed).
- The medium is distributed in a controlled environment (managed device fleet).
- The medium is inserted by JavaScript after checking for plug-in presence, replacing alternative content already present in the HTML.
Examples
❌ Non-compliant : Virtual tour without accessible alternative
<div class="visite-virtuelle">
<object data="visite-3d.swf" type="application/x-shockwave-flash"
width="800" height="600">
</object>
</div>The Flash object is embedded without any adjacent link or button. A visitor without Flash plug-in, or browsing by keyboard, or using a screen reader, cannot access any alternative version of the content. The information conveyed by the virtual tour is completely inaccessible.
✅ Compliant : Virtual tour with link to a text alternative
<div class="visite-virtuelle">
<object data="visite-3d.swf" type="application/x-shockwave-flash"
width="800" height="600">
<p>Your browser does not support Flash.</p>
</object>
<p>
<a href="/visite-virtuelle-alternative.html">
View the text description of the virtual tour
</a>
</p>
</div>An adjacent link, clearly identifiable, points to a dedicated page describing the content of the virtual tour. Any visitor who cannot view the Flash media has equivalent access to the information. The link must point to a truly accessible page whose content properly covers what the media conveys.
Tips and pitfalls
⚠️ Confusing the fallback content of the <object> element with the alternative under criterion 4.8
Text placed between <object> and </object> displays when the plug-in is absent. This is useful, but it is not what test 4.8.1 verifies. It requires a link or button adjacent to the media — separate from the media — and clearly identifiable. Simple fallback text inside <object> is not sufficient to validate the criterion.
⚠️ Decorative media: the criterion does not apply
An animation that is purely ornamental, conveying no functional information or content, does not need an alternative. Criterion 4.8 does not apply in this case. But beware: if removing the media would cause a user to lose information, it is not decorative.
⚠️ Controlled environment: the criterion is waived
An intranet distributing a 3D tour on a device fleet whose plug-ins are known and controlled by IT falls within a controlled environment. The criterion is non-applicable. Outside this very specific context (general public, BYOD, open SaaS), the exception does not hold.
⚠️ JavaScript injection with pre-existing alternative content
If your script checks for plug-in presence and version before inserting the media, and replaces alternative HTML content already present in the DOM, the criterion is non-applicable. The alternative content was there first: users without the plug-in still see it.
💡 HTML carousel: do not apply criterion 4.8
A carousel built in HTML with JavaScript is not non-temporal media. It remains animated HTML. Applying criterion 4.8 to this component is a frequent misinterpretation in audits. The correct criterion is 7.1, which covers interactive JavaScript components.
⚠️ The alternative exists but is inaccessible
Test 4.8.2 verifies that the alternative is truly accessible, not just present. A destination page that returns a 404 error, an untagged PDF, or a Word document without structure will fail test 4.8.2 even if the adjacent link is correct. Test the destination, not just the link.
Frequently asked questions
Why audit RGAA criterion 4.8 when Flash has been gone for so long?
Rarely, but not never. Flash died in late 2020 and Silverlight before it. That said, some legacy heritage sites or business applications still embed 3D virtual tours, proprietary interactive mockups, or SVG content animated via plug-in. Criterion 4.8 applies to all these cases. In practice, it is often non-applicable on recent sites, which must be explicitly documented in the audit report.
How do you audit RGAA criterion 4.8 on alternatives to non-temporal media in practice?
Start by identifying <object>, <embed>, and <applet> tags with proprietary MIME types (application/x-shockwave-flash, application/x-silverlight). Next, look for a link or button immediately before or after the media, visually close and unambiguous. If this link exists, follow it and verify that the target page loads correctly and that its content is accessible. The absence of any non-temporal media in the document makes the criterion non-applicable: note this explicitly.
What exactly does "adjacent" mean for the link to the alternative of a non-temporal medium?
Adjacent means visually and structurally close to the media in the source code. A link placed three sections down, or in a global navigation menu, does not meet this criterion. The user must be able to identify without ambiguity that this link concerns this specific medium. Place it immediately before or after the element, with an explicit label that names the medium in question.
How do you validate RGAA 4.8 for a text alternative that can be expanded on the same page?
Yes, provided that the button is clearly identifiable as linked to this medium, and that the expanded content is truly accessible by keyboard and screen readers. Criterion 4.8 accepts either an alternative on the same page (via a button) or an alternative on a separate page (via a link). The essential thing is that the alternative is accessible and equivalent in content.
How do you classify an animated <canvas> in JavaScript with respect to RGAA criterion 4.8?
No, unless this <canvas> is generated by an external proprietary plug-in. A <canvas> controlled by native JavaScript is HTML: it falls under image criteria (1.x) depending on its role — informative or decorative. If the <canvas> carries information, you must provide it with a text alternative (aria-label, aria-labelledby, or content between tags), but it is criterion 1.1 that applies, not 4.8.