@@Christian Wansart
Beiträge von Gunnar Bittersmann zu lesen, da er mir auf eine andere Frage sehr kompetent geantwortet hat.
Oh, danke für die Blumen.
Nehmen wir an, ich entwickle eine REST-Webanwendung und ich möchte eine moderne Webseite entwickeln, dann wird heutzutage ja gerne nach Frameworks wie Angular gegriffen.
Ja, *seufz*. In so manchen Fällen würde ich das nicht „modern“ nennen, sondern Bequemlichkeit der Entwickler wird über Bedürfnisse der Nutzer gestellt. WTF :-(
Seiten werden beim Klicken eines Links nicht vollständig neu geladen, sondern immer nur Teile, in dem die gewünschten Daten per AJAX über die REST-Schnittstelle abgefragt werden und anschließend in den DOM eingefügt.
Das kann etwas schneller sein. An einer Stelle, wo man die Schnelligkeit evtl. gar nicht mal braucht. Das erkauft man sich damit, dass man den Nutzer beim initialen Aufruf der Webseite ewig lange warten lässt, bis das ganze Framework geladen ist. Für mich oft keine gute Abwägung.
Im Übrigen denke ich hier wie Peter-Paul Koch, dass Angular u.ä. nichts für Frontend-Entwickler ist; „one could describe it as a front-end framework by non-front-enders for non-front-enders.“
Aber dir ging es ja um Barrierefreiheit. Eine single page application kann durchaus barrierefrei sein – wenn sie denn richtig implementiert wird. Bspw. Bereiche mit aria-live
gekennzeichnet werden, wo sich Inhalte dynamisch ändern. Es fließt auch zunehmend Wissen über Barrierefreiheit in solche Frameworks ein.
Angular mit entsprechender Erweiterung fügt anderen Elementen, die nicht in der tab order sind, aber ein ng-click
-„Attribut“ haben, tabindex="0"
hinzu. Wie auch immer andere Elemente als button
oder a
o.a., die nativ per Tastatursteuerung zugänglich sind, zu ng-click
kommen … Nun ja, Angular-Entwickler sind eben keine Frontend-Entwickler.
LLAP 🖖
“There’s no such thing as an ‘average’ user, but there is such a thing as an average developer.” —Vitaly Friedman in Accessibility Matters: Meet Our New Book, “Inclusive Design Patterns”
Selfcode:
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|