Make your HTML5 media player accessible

In my last article regarding HTML5 media, I implemented a customizable, cross-browser video player for the <video> element. This is a good solution for many reasons, including accessibility - HTML5 <video> can be a lot more accessible than plugin-based alternatives, for example in terms of keyboard accessibility out of the box, and easier to customize without the need for a costly IDE.

But our work does not stop there. The solution I have built so far, like other JavaScript-based widgets, still has a number of accessibility concerns in terms of semantics and discoverability, which could be addressed using the W3C Web Accessibility Initiative’s WAI-ARIA specification.

In my latest article on Dev.Opera, I’m trying to address such problems with WAI-ARIA, and add some further accessibility enhancements to the player, such as closed-captions and transcript.

I’m trying to get the best accessible keyboard navigation model possible, that’s why I’m not implementing any custom keyboard shortcuts, combinations, access-keys, or the like. Instead I’m relying on well known, easy to use, tab-based navigation for the player controls. This should make it much easier, especially for people using screen-readers, to find and use the controls.

For the sliders, I’m using the ARIA slider role, and some further attributes to better describe the current position.

To finish up, I’m wrapping the media in a <figure> element, and pointing to a <figcaption> element inside it using aria-describedby to provide a better description of the media element. I’m not totally sold on this markup approach, but when browsers will expose the new HTML5 elements to screen-readers better, we probably won’t need the aria-describedby attribute any longer.

Read the complete article on Dev.Opera: A more accessible HTML5 <video> player.