Ich arbeite in letzter Zeit immer wieder mit dem HTML 5 Video Element. Bis auf einige kleinen Problemchen mit der API sowie einigen grausamen Implementierungsbug im Safari (betrifft nicht Chrome), bin ich eigentlich ganz zufrieden.
Es gibt aber letztendlich eine Sache die mich extrem rasend macht. Schaut man sich die Youtube HTML5 Demo an und vergleicht diese mit der Spezifikation wird einem klar, daß Youtube mit HTML5 nie so aussehen kann, wie diese Demo einem glauben machen will.
Die Demo zeigt einen Fullscreen-Button. Leider ist die HTML5 Spezifikation hier sehr einduetig. Einerseits ist keine API für einen möglichen Fullscreen-Modus definiert andererseits werden Browserhersteller mit fetter, roter Schrift ausdrücklich davor gewarnt, eine solche zu implementieren. Als Begründung wird auf mögliche “Nervigkeiten” sowie Angst vor Sicherheitsproblemen, genauer Phishing Attacken, abgestellt.
Letztendlich ist die Begründung vollkommen überholt und daneben. Das Security Argument stimmt nicht, da
- ein Videoelement beim Starten des Vollbildmous grundsätzlich einen entsprechenden Hinweis zeigen soll
- ein Videoelement im Vollbildmodus, unabhängig vom Vorhandensein des controls-Attribut, die Kontrollelemente anzeigen muß
- es im Vollbildmodus gar nicht möglich ist – und das wäre das eigentliche Sicherheitsrisiko – Tastaturevents abzufangen
Auch das Risiko einer Belästigung des Users ist gering, wenn man es mit ähnlichen Einschränkungen implementieren würde wie dies bei Adobe Flash getan wurde. Gerade Flash, welches häufig für nervige Dinge wie Werbebanner eingesetzt wird, hat eine API für den Fullscreenmodus, anstatt daß dies mich nervt, empfinde ich es als extrem nützlich.
Hier lag wohl auch augenscheinlich das Problem. Eine API für den Fullscreenmodus wurde mit Methoden wie window.open oder window.resize verglichen, ohne zu erkennen, daß das Anschauen von Videos im Vollbildmodus ein wesentlich nützlicheres Feature ist als das ungefragte Öffnen von Popups und Verschieben von Browserfenstern.
Meine große Hoffnung liegt nun darin, daß entweder irgendein Browser (zum Beispiel: Chrome 4 oder 5 oder Internet Explorer 9) aus der Reihe tanzt und zeigt wie man ein cooles, sicheres Feature implementiert oder daß bei der Zugänglichkeits- (oder vielleicht auch Usability-) überarbeitung des Elements auffällt, daß ein Fullscreenmodus nicht allein mit der rechten Maustaste als Kontextmenü realisiert werden darf.
Ich kotze.
Ist allerdings ätzend, gerade bei HD-Videos. Diese werden ab Flash-Player 10.1 übrigens Hardware beschleunigt werden – vorausgesetzt man hat auch die entsprechende Hardware. Sollte hoffentlich die CPU-Last um ein wesentliches senken. Nicht, dass ich mir nicht wünschen würde, Videos in Zukunft ohne Flash schauen zu können, aber mal schaun was sie bis zur Proposed Recommendation in 2012 noch so fabrizieren. Allerdings sollte spätestens dann ja auch IE9 am start sein.
Mal schaun was Adobe bis dahin treibt, die gehen mir nämlich auf den Keks. Warum nicht mal ein eigenes XML basierstes Vektorformat names FXG entwickeln, wenn es sowas ähnliches doch schon gibt. SVG wird wenigstens einigermaßen plattformübergreifend unterstützt. CorporateClusterFuck…
Comment by Tille — January 20, 2010 @ 12:43 pm
Firefox 3.6, der heute ab ca. 18:30 downloadbar ist, unterstützt Fullscreen.
Comment by Martin Kliehm — January 21, 2010 @ 6:26 am
Doch hierum ging es in dem Artikel nicht. Das W3C bzw. besser gesagt damals die WHATWG haben entschieden, daß das Videoelement keine API für den Fullscreenmodus besitzen darf. Vielmehr soll sich das Video durch ein verstecktes Kontextmenü (rechte Maustaste auf das Video) in den Fullscreen versetzen lassen, sofern der Browserhersteller dies implementieren konnte.
Diese Entscheidung ist aus Zugänglichkeits- wie auch Usabilitygründen ein absoluter Fehlgriff. Der “normale” User hat gelernt, daß ein Player, der Fullscreen unterstützt einen entsprechenden Button – meist unten rechts als Kontrollelement anbietet. Ist dieser nicht Vorhanden werden viele User nicht auf die Idee kommen die rechte Maustaste zu nutzen. Auch dürfte klar sein, daß die rechte Maustaste mit anschließdner Bedienung eines Kontextmenüs nicht barrierefrei ist.
Unabhängig davon, daß ich das selbst aus Zugänglichkeits- und Gebrauchstauglichkeitsgründen für extrem problematisch halte, kann ich in meiner Agentur nicht etwas durchdrücken, was dermaßen gegen allgemeine Regeln der Benutzerführung spricht.
Für ein gewisses Maß an Barrierefreiheit könnte man zwar beispielsweise mit einer zusätzlichen Tastaturbedienung sorgen (meines Wissens nach nicht in FF3.6 implementiert), aber dies ist letztendlich nur Makulatur, wenn man sich vor Augen führt, daß die Gründe, die bei der Entscheidung gegen eine Fullscreen API gesprochen haben, nicht mit der Wirklichkeit übereinstimmen.
Um das nochmal klar zu machen. Es wurden zwei Gründe hierfür genannt:
1. Es wurde behauptet, daß insbesondere die Werbeindustrie den User mit sich ständig öffenden Vollbildvideos nerven könnte. Obwohl Flash Fullscreen unterstützt und eher für Werbung eingesetzt wird als “ordinäres” HTML, wird der User eben nicht mit Vollbild belästigt. Die Einschränkung die Flash zur Sicherstellung des “Nicht-Nervens” nutzt, wäre auch bei HTML5 möglich gewesen. Fullscreen darf nur “mit” einem Userclick erfolgen. (einfacher oder doppelter Klick aufs Flash oder Kontextmenü)
Im übrigen ließe sich mit dem Argument so ziemlich alles verbieten. HTML, CSS & Javascript können im Ergebnis immer für extrem nervige Sachen eingesetzt werden, aber keiner streitet ab, daß die meisten Features sinnvoll sind, da sie in der Regel sinnvoll eingesetzt werden.
2. Es wurde behauptet, daß ein extrem gut gemachtes Video, den User dahingehend täuschen könnte, daß er sich nicht im Vollbildmodus befindet, sondern auf seinem Desktop und daß dann das Video scheinbar einen Dialog öffnen könnte, der dann die Tastatureingabe abfängt. Mal abgesehen davon, daß das eine hirnrissige Konstruktion ist, ist es technisch auch gar nicht möglich die Tastatureingabe im Vollbildmodus abzufangen.
Würde man dieses Argument für zutreffend halten, müßte man erst recht CSS verbieten, sofern es nicht durch eine entsprechende vertrauenswürdige Stelle zertifiziert wurde. Whärend das Videoelement beim Schalten in den Fullscreen einen entsprechenden Hinweis und bei Mausbwegung die Kontrollelemente anzeigt, kann ich mit CSS eine Seite 100%ig so gestalten wie Bank X, um dort Paßwörter abfangen.
Die Gründe, die gegen eine API sprechen sind zwar nicht völlig haltlos, sie wiegen jedoch nicht halb so schwer wie uns weiß gemacht wird. Eine API würde vieles besser machen.
Comment by alexander farkas — January 21, 2010 @ 1:14 pm