The digital world should work for everyone. Video plays a central role in how people experience the web, but it only truly works when it’s accessible. For people who navigate with a keyboard. For users who rely on subtitles or alternative audio. For anyone who experiences digital content differently.
That’s why accessibility is not an add-on in Mave. It’s part of how our video player is built. Lightweight, privacy-first, and designed to align with the accessibility requirements of the Web Content Accessibility Guidelines (WCAG).
With the Mave video player, your video content is accessible by default. No complexity. No trackers. No compromises.
Accessibility is no longer optional. With the European Accessibility Act (EAA), organizations operating in the EU are required to make digital products and services accessible by 2025. This includes video content on websites and digital platforms.
In practice, this means video players must be usable with a keyboard, content must be perceivable for users with visual or hearing impairments, and interfaces must be clear, predictable, and robust.
Mave helps organizations prepare for these requirements today. Not by adding heavy tooling or compliance layers, but by building accessibility directly into the core of the player. Fully aligned with European regulation and values.
Accessible video should be simple. And it should fit naturally into a privacy-first digital experience.
Our video player has been reviewed against the Web Content Accessibility Guidelines (WCAG) 2.2, Level AA through a structured internal self-assessment.
This review evaluates how the Mave player aligns with the core WCAG principles: content must be perceivable, operable, understandable, and robust.
You can review the full WCAG accessibility self-assessment here:
Alongside the core player, Mave components already provide accessibility improvements out of the box:
<mave-player><mave-text> as a synchronized transcript, including live word highlighting<mave-files> support for downloadable audio and subtitle filesBelow are live examples that show how these accessibility features work in practice.
This example uses color="#f6ead9" together with audiotracks="on". When control color changes, player icons and labels automatically adapt for readability and remain visible for users. Audio tracks can be managed in the dashboard, including uploading additional tracks such as descriptive audio.
Try it with keyboard only: tab to controls, open audio tracks, and switch tracks without losing context.
Captions are enabled from the first frame with subtitles="en" and active-subtitle="en". This sample also applies a high-contrast simulation to keep controls and labels easy to read.
↳ Steve Jobs speaking at MIT Sloan School of Management (1992). Video © Massachusetts Institute of Technology. Used here for commentary and accessibility analysis.
This simulates a zoomed browser view by combining inverse width and scaling: the player computes layout at a narrower width (triggering compact controls) while the visual output still fills the full card area.
↳ Steve Jobs speaking at MIT Sloan School of Management (1992). Video © Massachusetts Institute of Technology. Used here for commentary and accessibility analysis.
You can find implementation details in our documentation for accessibility, subtitles, text, audiotracks, and files.
We believe accessibility deserves clarity, not vague promises. That’s why we share our WCAG self-assessment openly, so development teams, legal, compliance, and digital stakeholders can make informed decisions.
Accessible video is not just about meeting guidelines. It’s about building a web that works for everyone. European, independent, and human by design.
1
2
3
4
5
<script type="module">
import { Player } from "https://cdn.video-dns.com/npm/@maveio/components/+esm";
</script>
<mave-player embed="ubg50Cq5Ilpnar1"></mave-player>
<script type="module">
import { Player } from "https://cdn.video-dns.com/npm/@maveio/components/dist/react.js";
</script>
<Player embed="ubg50Cq5Ilpnar1"></Player>
<script type="module">
import { Player } from "https://cdn.video-dns.com/npm/@maveio/components/+esm";
</script>
<mave-player embed="ubg50Cq5Ilpnar1"></mave-player>