@@1unitedpower
Das zuvor Gesagte war in Ordnung, aber ab hier
Wenn man JavaScript deaktiviert, dann ist klar, dass eine Seite nicht mehr uneingeschränkt funktioniert, weil progessive enhancement dann halt auch nicht mehr greift.
wird’s Quatsch. Zunächst einmal ist nicht JavaScript deaktivieren das Problem.
Und ich frage mich, ob du progressive enhancement verstanden hast.
Zum Beispiel, funktioniert eine clientseitige Formularvalidierung dann eben nur noch eingeschränkt, weil man mit reinem HTML5 unter Umständen nicht alle Regeln für das Formular kodieren kann.
PE ist nicht zu sagen: Feature X funktioniert nicht. PE ist zu sagen: Die Anwendung funktioniert auch ohne Feature X.
In diesem Beispiel ist die Grundfunktionalität: ein Formular abzuschicken. Clientseitige Formularvalidierung gehört nicht zur Grundfunktionalität. Was nicht heißen soll, dass man die Nutzereingaben nicht schon clientseitig prüfen sollte. Sollte man – das ist progressive enhancement obendrauf.
Man muss das Formular freilich so bauen, dass das Abschicken in der Grundfunktionalität ohne JavaScript funktioniert. Erst wenn das zur Validierung nötige JavaScript geladen wurde und ausgeführt wird (nicht: wenn JavaScript aktiviert ist), kann man das standardmäßige Verhalten unterdrücken und erst nach erfolgreicher Validierung die Daten abschicken.
Du nanntest:
Schnittstellen für Kameras, Mikrofone
Auch hier muss man sich erstmal fragen: Was ist die Grundfunktionalität? Ein Photo, Video, Audio zu übertragen? Das leistet <input type="file">
. Man kann Photos, Videos, Audios aufnehmen und danach übertragen. Die Anwendung funktioniert – auch ohne JavaScript.
Freilich ist es komfortabler, wenn das Photo, Video, Audio direkt aus der Kamera/dem Mikrofon kommen kann. Diesen Komfort packt man mittels JavaScript obendrauf – progressive enhancement.
Und natürlich funktioniert auch kein Service-Worker mehr
Ja, und? Service worker sind progressive enhancement. Die Anwendung muss auch ohne funktionieren – schon im Hinblick darauf, dass service worker nicht nur auf alten Geräten nicht laufen, sondern auch auf Edge und Safari (iOS und macOS) noch nicht.
Auf Mobil-Geräten wird JavaScript bspw. auch für Gesten-Steuerungen verwendet, das würde auch Wegfallen und schränkt die Bedienmöglichkeiten der Seite weiter ein.
Bei progressive enhancement geht es nicht um Wegfallen, sondern um Hinzufügen (enhancement). Nochmal in Kürze von Mr. Jeremy “PE” Keith:
LLAP 🖖
“When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory