JAX Blog

Accessibility für moderne Webanwendungen

Interview mit Karsten Sitterberg

Jul 3, 2020

Den Aspekt der Barrierefreiheit in der Darstellung von Web-Inhalten sollte man stets im Hinterkopf behalten, um das Internet für möglichst viele Menchen zu öffnen. Wir haben uns mit unserem Experten und JAX-Sprecher Karsten Sitterberg unterhalten, was Barrierefreiheit eigentlicht ausmacht und warum alle Nutzer davon profitieren.

Redaktion: Wenn man von Accessibility von Webanwendungen spricht: Was genau ist damit gemeint?

Karsten Sitterberg: Das Web ist für alle da. Wenn man seine Anwendungen dementsprechend möglichst vielen Personen zugänglich machen möchte, sollte man auch an Menschen mit Beeinträchtigungen denken. Diese Beeinträchtigungen können situationsbedingt sein oder aber durch Behinderungen verursacht werden. Bei Accessibility – zu deutsch Barrierefreiheit – geht es genau darum, auf diese Beeinträchtigungen Rücksicht zu nehmen.

Redaktion: Wie macht man Webanwendungen barrierefrei?

Karsten Sitterberg: Der Ausgangspunkt für eine barrierefreie Webanwendung ist zunächst eine generell gut durchdachte User Experience (UX) und darauf aufbauend gut strukturiertes, semantisches HTML. Für viele native HTML-Elemente (wie etwa nav, footer oder auch die Input-Elemente) ist schon eine Semantik hinterlegt, die etwa von Screenreadern interpretiert werden kann.

Kommen nun eigene Elemente, zum Beispiel in Form von Angular-, React- oder Vue-Komponenten, hinzu, stehen sogenannte ARIA-Attribute bereit, um die Semantik der Komponenten zu verbessern. ARIA steht für Accessible Rich Internet Applications. Diese erlauben es, auch dynamische Webseiten für Maschinen interpretierbar zu machen. Damit können dann alternative Repräsentationen der Inhalte bereitgestellt werden. Im Falle von Angular stehen zum Beispiel für Nutzer des CDK auch noch spezielle Services zur Verfügung, etwa um den Browserfokus oder auch Screenreader zu steuern.

Redaktion: Auf welche Probleme muss man achten? Ich kann mir vorstellen, dass man schnell als Außenstehender eine Gruppe übersehen kann, für die Accessibility auch wichtig wäre.

Karsten Sitterberg: Vor allem sollte man mit gesundem Menschenverstand an die Sache herangehen: Wenn man sich bei Design und Umsetzung einer Anwendung grundsätzlich schon an Best Practices orientiert hat, ist man in der Regel schon auf einem guten Weg, was die Accessibility der Anwendung angeht.

Von einer guten Tastatur- bedienbarkeit profitieren sowohl Expertennutzer, als auch Nutzer von Screen-Readern.

Beispielhaft sei hier die Tastaturbedienbarkeit einer Anwendung genannt: Von einer guten Tastaturbedienbarkeit profitieren sowohl Expertennutzer als auch Nutzer von Screen-Readern. Zur guten Tastaturbedienbarkeit gehört zum Beispiel, dass wichtige Seiteninhalte und Navigationselemente in einer sinnvollen Reihenfolge angebracht und leicht (etwa per Tab) zu erreichen sind. Insbesondere sollten wichtige Inhalte nicht durch andere Elemente verdeckt sein.

Umgekehrt sollten unwichtige Inhalte, die für Screenreader keinen Mehrwert bieten, vor diesen verborgen werden (aria-hidden-Attribut). Dazu zählen etwa unbeschriftete Bilder wie Logos. Der Inhalt von Bildern oder Grafiken sollte aus dem Fließtext der Seite hervorgehen oder per eigenem Beschreibungstext erklärt werden.

Für Grafiken, die Daten visualisieren (Barcharts, …), sollten Tabellen als Alternative verfügbar sein. Aber auch auf die Optik der Anwendung sollte in der Design-Phase geachtet werden: Etwa 5% der Bevölkerung hat eine Farbenfehlsichtigkeit, daher sollten Anwendungen einen guten (Farb-)Kontrast und ein Farbschema besitzen, durch das keine Informationen verloren gehen

Redaktion: Gibt es grundlegende Maßnahmen, die man bei der Accessibility von Webanwendungen immer beachten sollte?

Man sollte man keine Personengruppe explizit von der Nutzung seiner Anwendung ausschließen.

Karsten Sitterberg: Neben den oben bereits angesprochenen Punkten wie gutem UX und Nutzung von validem HTML sollte man primär vor Augen haben, dass es diesen Anwendungsfall gibt. Selbst wenn die Anwendung, die man gerade baut, nicht entsprechenden regulatorischen Vorgaben unterworfen ist, sollte man keine Personengruppe explizit von der Nutzung seiner Anwendung ausschließen.

Dies kann auch ganz praktische Auswirkungen haben: Denn eine Seite, die accessible ist, kann von Screen-Readern gut verarbeitet werden. Das bedeutet aber, dass die Seite generell gut von Maschinen verarbeitet werden kann, zum Beispiel von Suchmaschinen. Somit profitieren auch die SEO-Eigenschaften der Anwendung von guter Accessibility.

Redaktion: Wie testet man, ob Webanwendungen wirklich barrierefrei sind?

Karsten Sitterberg: Bei der Entwicklung von barrierefreien Anwendungen unterstützen moderne Browser-DevTools: Sowohl Chrome als auch Firefox bieten Accessibility-Werkzeuge an. Chrome bietet darüber hinaus noch ein Accessibility-Audit. Außerdem gibt es spezielle Testing-Tools, die die Accessibility der Seite analysieren oder bestimmte Accessibility-Eigenschaften, wie zum Beispiel Farbenblindheit, simulieren können.

Da es sich bei Barrierefreiheit auch um eine Form der User Experience handelt, sind auch Usability-Tests eine Möglichkeit, um die Accessibility einer Seite zu analysieren und zu verbessern.

Redaktion: Kann man Lehren ziehen aus der Barrierefreiheit von Webanwendungen für andere Bereiche, z.B. für das nicht-digitale Alltagsleben von Menschen mit physischen Beeinträchtigungen?

Karsten Sitterberg: Vor allem sollte man immer im Hinterkopf behalten, dass überall Beschränkungen vorhanden sind oder entstehen können. Das hat auch etwas mit Umsichtigkeit beziehungsweise gegenseitigem Respekt und der Rücksichtnahme auf andere zu tun. Da ist ein Satz, den man aus seiner Kindheit sicher kennt, immer ganz hilfreich: Wie würdest du es finden, wenn du in dieser Situation wärst?

Und tatsächlich kann man schneller in eine mehr oder weniger einschränkende Situation kommen, als einem manchmal bewusst ist, was wir in der aktuellen Corona-Krise ja alle mitbekommen haben.

Fragen stellte Jean Kiltz.

Alle News der Java-Welt:

Behind the Tracks

Agile, People & Culture
Teamwork & Methoden

Clouds & Kubernetes
Alles rund um Cloud

Core Java & Languages
Ausblicke & Best Practices

Data & Machine Learning
Speicherung, Processing & mehr

DevOps & CI/CD
Deployment, Docker & mehr

Microservices
Strukturen & Frameworks

Performance & Security
Sichere Webanwendungen

Serverside Java
Spring, JDK & mehr

Software-Architektur
Best Practices

Web & JavaScript
JS & Webtechnologien

Digital Transformation & Innovation
Technologien & Vorgehensweisen

Domain-driven Design
Grundlagen und Ausblick

Spring Ecosystem
Wissen in Spring-Technologien

Web-APIs
API-Technologie, Design und Management