Hallo,
Wie ich das lese, darf ein nicht korrekt ausgefülltes Formular nicht abgeschickt werden. Demnach wäre das Verhalten des Safari nicht HTML5-konform …
Das freut mich zu hören.
Damit eine konsistente UX umzusetzen, die dem Nutzer hilfreiche Hinweise gibt, ist nicht ohne JavaScript-Quirks möglich.
Oh je, immer noch browserspezifische Eigenbrödlerei statt Standardkonformität. Browserkrieg 2.0.
Der Quirks ist der übliche, der einen browserseitig erwartet. Speziell Formularvalidierung geht ab JavaScript 1.0 ohne Probleme und harmloses DOM Scripting ist nicht browserspezifisch, sofern man brauchbare Abstraktionslayer verwendet. Und Eigenbrödlerei ist hier nur positiv, weil der Seitenautor die Hilfe- und Fehlermeldungen bestimmen kann und sie durchgehend gleich aussehen und funktionieren.
Warum sollte man den fähigen Browsern die performante Lösung vorenthalten?
Wenn ich serverseitig validiere, muss ich mir ohnehin ein gutes UI für Erklärungen und Fehlermeldungen ausdenken, das HTML und CSS dafür bauen und die dahinterstehende Logik programmieren.
Darauf aufbauend die Meldungen bereits clientseitig anzuzeigen, sofern es nur geht, wird vermutlich die Benutzbarkeit des Formulars maßgeblich verbessern. So etwas könnte man gut mit A/B-Tests überprüfen. Ich würde vermuten, ein Formular mit direktem clientseitigem Feedback wird häufiger und schneller abgeschlossen als eines mit Server-Roundtrips. Diese Usability-Vorteile stünden in keinem Verhältnis zum Mehraufwand, wenn man client- und serverseitige Validierung sinnvoll umsetzt.
Nutzt man clientseitige Validierung mit JavaScript, so ist es derzeit doppelter Aufwand, auf die HTML5-APIs zu setzen, um beispielsweise Fehlermeldungen anzupassen. Zumal diese fehlerhaft umgesetzt sind, sodass einfache Feature-Abfragen fehlschlagen. In diesem Script beispielsweise wird das Safari-Problem mit einem fragwürdigen Hack umschifft. Wer weiß, ob der in der nächsten Browsergeneration noch funktioniert.
Mathias