Wenn ich auf meinen HTML5-Seminaren die neuen Formularelemente vorstelle, währt die allgemeine Begeisterung in der Regel exakt so lange, bis einer fragt, wie man die tollen neuen Dinger denn gestalten könnte. Denn das ist praktisch nicht möglich. Nimmt man etwa einen Datumspicker, wie er uns in Opera dargestellt wird, und verpasst ihm via CSS einen roten Hintergrund, so ist das Ergebnis etwas unbefriedigend:
Zwar ist das nicht im engeren Sinne falsch (ein roter Hintergrund ist ja vorhanden), aber auch nicht wirklich hilfreich – die Sonntage sind unsichtbar und die Buttons noch ohne jedes Design. Das Interface des Datumspickers ist einfach eine zu komplexe Konstruktion, als dass man ihr durch so einfache Anweisungen wie „roter Hintergrund“ gerecht werden könnte. Unter der Haube baut der Browser den Datumspicker aus HTML zusammen, so genanntem Shadow DOM, das gegen Stylingmaßnahmen von außen abgeschirmt ist. Theoretisch könnten es uns die Browserhersteller durch Pseudoelemente ermöglichen, die Einzelteile des Datumspickers zu gestalten, doch auch auch dann würde sich der Vorgang zwischen den verschiedenen Browsern extrem unterscheiden. Bei praktischer Betrachtungsweise muss man also sagen: die neuen Formularelemente von HTML5 lassen sich kaum bis gar nicht gestalten.
Der Grund hierfür ist einfach: der Standard legt überhaupt nicht fest, wie die neuen Formularelemente auszusehen haben. So verlieren die Spezifikationen z.B. über die Natur des <input type="date">
nicht mehr als die folgenden Worte:
The input element represents a control for setting the element's value to a string representing a specific date.
Das ist ein Freibrief für die Browserhersteller, ihr Eingabefeld so zu gestalten wie es ihnen gerade passt. Daraus folgen die unterschiedlichsten Umsetzungen der Browser und die praktisch nicht gegebenen Gestaltungsmöglichkeiten. Und das ist kein Versehen, sondern durchaus ein Feature, denn wie ein ein Eingabefeld idealerweise auszusehen hat, ist von dem Kontext abhängig, in dem es verwendet wird. So sportet das Number-Input in Desktopbrowsern in aller Regel zwei kleine Buttons zum hoch- und runterzählen:
Das ist eine absolut sinnvolle Umsetzung eine solchen Zahlen-Eingabefeldes, doch es sind durchaus Umstände denkbar, unter denen andere Gestaltungsansätze besser wären. Das gleiche Zahlen-Eingabefeld sieht in einem iPhone so aus:
Das Eingabefeld sieht aus wie jedes andere Feld auch; die Umsetzung des Elements erfolgt ausschließlich über die Bildschirmtastatur. Denn mit den winzigen Buttons zum hoch- und runterzählen möchte man sich in einem Touch-Interface sicher nicht herumschlagen und sich die Möglichkeiten einer angepassten Bildschirmtastatur entgehen zu lassen wäre nicht sonderlich clever. So geht der iPhone-Browser seinen eigenen Weg, den er aber auch nur gehen kann, weil eben die Spezifikationen die genaue Umsetzung der neuen HTML5-Formularelemente offenlassen. Dass dabei die Gestaltungsfreiheit leidet, ist eine unschöne, aber wohl nicht vermeidbare Nebenwirkung.
Kommentare (7)
Frederic ¶
6. Juni 2011, 13:59 Uhr
Die neuen Input-Typen sorgen ja zuvorderst erstmal für eine bessere Semantik. Wenn der Browser sie ebenfalls unterstützt und z.B. einen rudimentären Datepicker darstellt, umso besser. Ich denke, an der Stelle wird sich künftig auch noch einiges tun, die Browser-Unterstützung dafür ist ja (wenn überhaupt vorhanden) noch relativ jung.
Wer darüber hinaus weiteren Einfluss auf Gestaltung und Verhalten nehmen will, sollte hier auch mit Progressive Enhancement arbeiten. Es gibt also keinen Grund, die neuen Typen wegen mangelnder Gestaltbarkeit zu verschmähen.
Robert Agthe ¶
6. Juni 2011, 14:13 Uhr
Für den Großteil wird das eh uninteressant sein. Wie jetzt auch schon, ersetzt man einfach die Input-Elemente mit DIVs und Events per JS.
Nico ¶
6. Juni 2011, 14:45 Uhr
Denkbar wäre auch eine Lösung mit mehreren Standards. Verschieden stylen könnte man dann z.B. Desktop, Mobile, Tablet, dafür aber in allen Browsern jeweils einheitlich.
Tim Tepaße ¶
6. Juni 2011, 16:03 Uhr
Das ganze Thema flammt seit Jahren manchmal auf den diversen Webstandards-Kanälen auf. Was von der HTML5-Kabale wohl am liebsten gesehen wird, wäre eine Implementierung von XBL (XML/eXtensible Binding Language) in den Browsern und hier und da scheint's auch wohl Interesse zu geben. Mit XBL kann man ein Shadow DOM manipulieren und/oder selbst entwickeln, so das eigene Widgets für bestimmte Formularelemente sehr denkbar sind. Dmitri Glazkov hat vor einiger Zeit eine grobe Einführung dazu geschrieben:
http://glazkov.com/2011/01/14/what-the-heck-is-shadow-dom/
erlehmann ¶
6. Juni 2011, 17:35 Uhr
Wer derartige Dinge einheitlich stylen möchte, hat entweder sehr viel Zeit zum Testen auf tausend Plattformen oder verwechselt schlicht Webdesign mit Print. So einfach ist das.
Auch:
? Diesen Tag habe ich ja noch nie gesehen. ;)Claudius Raphael Paeth ¶
7. Juni 2011, 01:12 Uhr
Ich halte die Einwände für unangenehm ungerechtfertigt bis Schmuh, obwohl ich die Ansicht über UnSinnes-Entscheidungen des W3C durchaus nachvollziehen kann;
Fakt ist jedoch, dass ich glücklich bin über die Tatsache, dass nun endlich generische Formen zur Verfügung stehen, eine standardisierte Anbindung der Farbgebung an die System-Schemata möglich ist und das ich eben nicht mehr gezwungen bin eigene Templates zusammenzuwürfeln, deren Verlust hier so beschmäht wird.
Letzteres führte schließlich vor allen Dingen zu einem: Unnutzbarkeit auf Geräten mit geringer Auflösung (Mobile/Kiosk/Embedded), Unlesbarkeit durch Assistenten für Sinnes-Eingeschränkte (ScreenReader) und der Auslieferung an eines der Alpha-Tiere der Gattung Browser.
Weniger philosophisch ausgedrückt: Es ist durchaus ein nicht unterschätzbarer Vorteil in meinen Augen, dass es nun endlich eine Passage durch den Browser gibt, der (insofern vorhanden) vorzugsweise die durch das Betrieb-System (OS) zur Verfügung gestellten Module nutzt. Denn dies gibt dem Nutzer die Sicherheit, dass er es nicht mit einer Fälschung zu tun hat, mal abgesehen von der Performanz-Steigerung, die sich hieraus ergibt.
Ich würde mich freuen, würden die Hersteller und Verbreiter unserer geliebten Gadgets den Schritt in die Vergangenheit wagen um dort auch ältere etablierte Systeme, die bereits über Organizer-Komponenten verfügten und eine Internet-Anbindung nutzen konnten, zu aktualisieren.
Wie schön wäre es, würde mein geliebtes P1i über einen HtML5/CSS3/JavaScript-fähigen Browser verfügen und die in Frage gestellten Elemente direkt vom Betrieb-System nutzen.
Daten-Sicherheit, direkter Abgleich, einfache Adress- und Termin-Erfassung ...
Selbstverständlich ist nicht alles was neu ist gut, geschweige denn besser;
Es sei denn man sorgt selbst dafür.
Vielen Dank für die Aufmerksamkeit.
Claudius Raphael Paeth, A3lyphe
boss@a3lyphe.net
erlehmann ¶
21. Juni 2011, 10:42 Uhr
Zitat Claudius Raphael Paeth:
Hihihi, Kommentar-Signaturen. Da fehlt dann aber noch
o. Ä. %)