Camen Design

c share + remix

An Open Letter to Mozilla Regarding Their Use and Promotion of HTML5 Video

Update:

Success! Mozilla have published a new article on hacks.mozilla.org describing HTML5 Video with fallbacks and even link to Video for Everybody!

Even better news though is the actual use of Video for Everybody on a new page demonstrating “What’s New in Firefox 3.5”! This is a great stride ahead for sensible and forward-facing video embedding in websites. well that didn’t last long

I would like to thank Mozilla for their support and putting up with my ranting, and also all those who signed the letter and supported me on Twitter, OSNews and elsewhere on the ’Web.


Dear Mozilla,
The content of this letter is based upon this blog post at the hacks.mozilla.org initiative.

HTML5 video is coming, and a million web-developers up and down the ’Web will be soon looking for advice and sample code to make use of HTML5 video. Web-developers vary massively in skill and understanding of the open principles of web-development, promoted by yourselves via the Mozilla Manifesto.

We cannot expect all developers to understand the knock-on effect of code snippets that they are copy-pasting from people’s sites. It is one thing to educate people with a piece of code, it is another to communicate effectively the principles behind a piece of code. Some developers do not care, and never will—that is a fact of life.

In presenting a JavaScript-only method for using HTML5 video, you are promoting to developers a number of major drawbacks, counter-intuitive to the points outlined in the Mozilla Manifesto.

Accessibility
Screen-readers may be presented with a hurdle by a JavaScript solution. Users may also be using browsers that developers are very unlikely testing in, who may inadvertedly break support by using JavaScript features that are either not present, or not compatible with JavaScript implementations in these browsers. Requiring JavaScript may also hinder use of WAI-ARIA.
<video> is an element, not a JavaScript object

In other blog posts you have promoted the <video> element as a glorified <img> element—being fundamentally a part of the document with all the same capabilities CSS-wise. Some incredible examples have been demonstrated that go well beyond what is possible with plugins.

Just as you would never expect JavaScript to be required just to view an image (and bad code be responsible if so), the same should be true of video.

JavaScript still has no solid security model
By requiring JavaScript, you are also requiring people to switch on JavaScript for sites that they may otherwise not trust. Viruses and malware have travelled far by hiding behind videos, and XSS attacks could be done by forcing people to enable JavaScript for a site so they can see a video.
Non-aggregatable, mashable

The use of JavaScript promotes a traditional browser-centric model. As a document format, HTML goes beyond just the traditional ‘web-browser’ and may be parsed in many ways and environments outside of the traditional browser.

RSS aggregators (particularly web-based ones) may not execute JavaScript as a safety measure, thus preventing the user from seeing the content.

Robots and spiders also would not be able to spider HTML5 video content if it is only present with JavaScript. That alone could prevent all kinds of innovation that we cannot yet conceive. What if a TV station could be created using nothing but <video> tags found on the ’Web? Requiring JavaScript to see <video> largely puts a stop to mash-ups wanting to pull video from the ’Web.

A Solution Has Been Presented

A solution for using HTML5 video with fallbacks for Adobe Flash, QuickTime and Windows Media Player that works on a wide range of browsers without the need for JavaScript has been developed, it’s called “Video for Everybody”.

The market is made up of more OSes, browsers and processor architectures than it was five years ago. More people (especially geeks) are browsing with AdBlock / NoScript / FlashBlock than ever before. We can no longer just assume people are going to have Flash and are allowing you to use it.

The same rules apply to video. If my platform / device / browser of choice cannot see your video, or you do not offer me the means to download the video to view offline, then I don’t see whatever it is you’ve got to show me.

Kroc Camen: “Video for Everybody”

It helps web-developers promote HTML5 video as an equal citizen alongside Flash and QuickTime. The necessary playback is chosen automatically based on browser / operating system capabilities, all without JavaScript. If the video is not able to play within the browser helpful fallback text is displayed to offer the users a means of downloading the video file, or how to get the video to play in the webpage by installing an HTML5-capable browser, Flash or QuickTime.

This means that it is almost impossible for the user to not be able to view the video—one way or another—and they are not hindered from viewing the content by bad design decisions such as requiring JavaScript to use a native HTML tag.

What You Can Do

I ask you to please do the following:

Remove the content of that blog post and replace it with new content that covers two main factors:
  1. How to insert HTML5 video using HTML and providing levels of fallback for legacy systems

  2. Why providing good fallback options / text is so important to a range of users and devices, and therefore why JavaScript should only be used to enhance a solution rather than be a requirement

Adopt HTML5 video (with fallbacks) across all Mozilla branded blogs, sites and ’Web properties, unilaterally

I personally don’t have Flash installed, it is—after all—an optional install, and I don’t like what it does to my computer. It seems counter to the work you are doing providing HTML5 video in your browser that I cannot see your own announcements.

I believe Mozilla need to make a company-wide (and community-wide) commitment to using HTML5 video in all of their ventures—past, present and future.


Signed:
(the undersigned)