Natives Video-Fallback in Firefox: Durchgefallen!
2. Juli 2011
Wie lange gibt es das Video-Element in HTML5 schon? Und vor allem: Wie lange behaupten die Browserhersteller schon, dies in ihren aktuellen Versionen zu unterstützen? Zwei Jahre? Länger?
Bullshit! Wenn man einmal ohne JavaScript-Hilfen versucht, eine MP4-Datei über <video>
einzubinden und sich erdreistet, auch noch eine Fallback-Information zu platzieren, die dann angezeigt werden soll, wenn der Browser das MP4 nicht nativ abspielen kann, wird sich ärgern! Folgender Code ist nun wirklich denkbar simpel:
<video width="640" height="360" controls autoplay>
<source src="video.mp4" type="video/mp4">
<p>Here’s fallback</p>
</video>
Jeder Mensch, der eine HTML-Spec lesen kann, weiß, dass hier im Firefox das (In Chrome 12 geht MP4 übrigens immer noch ohne Probleme – so ernst hat es Google mit WebM dann wohl doch nicht gemeint)p
mit dem Text angezeigt werden müsste, weil Firefox kein MP4 abspielen kann.
Content may be provided inside the video element. User agents should not show this content to the user; it is intended for older Web browsers which do not support video, so that legacy video plugins can be tried, or to show text to the users of these older browsers informing them of how to access the video contents.
(Quelle: W3C HTML5 Working Draft)
Doch Firefox versucht sich statt dessen lieber am Abspielen der Datei und scheitert mit einem grauen Kasten. Was soll das? Die Mozilla-Stiftung gibt mir damit zu verstehen: Entweder ich benutze das Video-Elemen mit allen alternativen Codecs, oder ich lasse es lieber ganz sein (oder weiche auf JavaScript aus, wo man per API erkennen kann, was abspielbar ist und was nicht.)
Das Problem besteht mindestens in Firefox 4 und 5 und ist nicht haltbar. Die Hälfte der Videoplayer auf meiner Vergleichsseite (die Anfang der Woche relaucht wird) verlassen sich (zurecht) auf das native Fallback-Verfahren, weil es einfach und elegant ist: Video for Everybody hat’s vorgemacht. Aber wehe, ihr lasst WebM und OGG weg, dann klappt gar nichts mehr im Firefox!
Shame on you!
update: Offenbar eine bewusste Entscheidung. Macht’s nicht besser.
Korrektur: Wenn man die zitierte Stelle aus den Spec genau liest, erkennt man, dass nur ein Quasi-Fallback gemeint ist, wenn ältere Browser das video-Element gar nicht kennen. Wenn sie es kennen, aber den Codec nicht unterstützen, soll laut Spec das ganze Video-Element ignoriert werden, inkl. seines Fallback-Inhaltes. Lächerliche Entscheidung aus Praxis-Sicht, aber Ian Hickson verteidigt sie.