Leslie Cohn-Weins Hauptpunkt
Während [viele divs, Inline-Styles, Probleme mit der Fokusverwaltung] gültige Bedenken sind, sollte beachtet werden, dass nichts in React uns davon abhält, zugängliche Web-Apps zu erstellen.
Wahr. Ich bin durchaus in der Lage (und leider schuldig), unzugängliche Oberflächen mit React oder ohne zu bauen.
Ich sage Leuten schon lange, dass eine Möglichkeit, deine Fähigkeiten im Front-End-Design und in der Entwicklung zu verbessern, besonders in deinen frühen Tagen, darin besteht, zu verstehen, wie man Klassen ändert. Ich kann ein paar Zeilen JavaScript schreiben, um eine active-Klasse hinzuzufügen/zu entfernen und schnell eine Tab-Oberfläche zu erstellen. Aber habe ich das HTML so aufgebaut, dass es standardmäßig zugänglich ist? Habe ich mich um Tastaturereignisse gekümmert? Habe ich mich um alle relevanten aria-*-Attribute gekümmert? Ich beantworte das hier für mich: nein. Ich bin im Laufe der Zeit besser darin geworden, aber leider ist mein Muskelgedächtnis für das richtige Muster nicht immer vorhanden.
Ich höre auch gerne zu, wenn Leute, denen ich vertraue und die sich auf Barrierefreiheit spezialisiert haben sagen, dass die Verbreitung von SPAs, in denen React eine wichtige Rolle spielt, auffällig mit einer Zunahme von Barrierefreiheitsproblemen zusammenfällt.
Ich bin jedoch optimistisch. Zum Beispiel hat React eine gesegnete Tab-Lösung, die sofort zugänglich ist. Ich greife zu diesen und somit führt mein Muskelgedächtnis für den Bau von Tabs jetzt zu einem zugänglicheren Produkt. Und wenn ich mit React Routing/Linking machen muss, greife ich (verstehst du?!) zu Reach Router und erhalte Barrierefreiheit „eingebaut“, wie man so schön sagt. Das ist eine mächtige Sache, die man „kostenlos“ bekommt, wiederum, wie man so schön sagt.
Drittanbieter-Komponenten mit integrierter Barrierefreiheit sind die Lösung. Nicht jeder Webentwickler kann die Details lernen, um seine Komponenten vollständig zugänglich zu machen. Wenn sich die Barrierefreiheit im Web in den nächsten Jahren nicht verbessert, dann liegt es daran, dass wir nicht genug Anstrengungen unternommen haben, um einfach zu bedienende Webkomponenten mit integrierter Barrierefreiheit zu erstellen und zu fördern.
In Bezug auf das Routing in SPAs gibt es auch eine Strategie für Vue: https://marcus.io/blog/accessible-routing-vuejs
Ich arbeite daran, vue-router in dieser Hinsicht beizutragen, also wird hoffentlich in naher Zukunft, wenn du es verwendest, auch zugängliches Routing „eingebaut“ sein.
Ich gebe mir große Mühe, a11y in meine benutzerdefinierten React-Komponenten einzubauen. Ich bin ein Entwickler alter Schule für HTML/CSS.
Vor kurzem musste ich ReactStrap bei einigen Projekten verwenden. Ich war ziemlich enttäuscht, keinerlei Tastaturverwaltung oder ARIA in der „Tabs“-Komponente zu sehen. Ich habe mich stattdessen für „react-tabs“ entschieden. Viel besser.