Barrierefreie Softwareentwicklung – Was ist das?

Da ich gerade einen Auftrag habe, bei dem ich mit der Programmiersprache Java eine Software entwickle und auf Barrierefreiheit prüfen darf, möchte ich in diesem Artikel noch einmal erklären, was barrierefreie Software-Entwicklung ist.

Weiße Tastatur mit einer grünen Accessibility-Taste anstelle von der Enter-Taste
Eine barrierefreie Software-Entwicklung ist wichtig und wird in Zukunft noch weiter an Bedeutung gewinnen. Bildquelle: alphaspirit – 326816450 / Shutterstock.com

Barrierefreiheit heißt auf Englisch Accessibility. Der Begriff Accessibility gefällt mir eigentlich viel besser als Barrierefreiheit. Accessibility wird mit „Zugänglichkeit“ übersetzt. Accessibility bei Software bedeutet also Zugänglichkeit für Menschen mit Behinderung. Dennoch hat sich in Deutschland das Wort Barrierefreiheit etabliert und nicht Zugänglichkeit. Es wird also von Barrierefreiheit bei Software bzw. Programmen und Seiten im Web gesprochen.

Barrierefreie Softwareentwicklung – Die gesetzliche Grundlage

Im Mai 2002 trat ein Gesetz in Kraft, welches die Benachteiligung von Personen mit Behinderungen verhindern soll, das “Gesetz zur Gleichstellungbehinderter Menschen (Behindertengleichstellungsgesetz – BGG)”. In diesemGesetz gibt es einen “§ 12 Barrierefreie Informationstechnik” in dem Folgendes steht:

§ 12a Barrierefreie Informationstechnik

(1) Öffentliche Stellen des Bundes gestalten ihre Websites und mobilen Anwendungen, einschließlich der für die Beschäftigten bestimmten Angebote im Intranet, barrierefrei. Schrittweise, spätestens bis zum 23. Juni 2021, gestalten sie ihre elektronisch unterstützten Verwaltungsabläufe, einschließlich ihrer Verfahren zur elektronischen Vorgangsbearbeitung und elektronischen Aktenführung, barrierefrei. Die grafischen Programmoberflächen sind von der barrierefreien Gestaltung umfasst.
(2) Die barrierefreie Gestaltung erfolgt nach Maßgabe der aufgrund des § 12d zu erlassenden Verordnung. Soweit diese Verordnung keine Vorgaben enthält, erfolgt die barrierefreie Gestaltung nach den anerkannten Regeln der Technik.
(3) Insbesondere bei Neuanschaffungen, Erweiterungen und Überarbeitungen ist die barrierefreie Gestaltung bereits bei der Planung, Entwicklung, Ausschreibung und Beschaffung zu berücksichtigen.
(4) Unberührt bleiben die Regelungen zur behinderungsgerechten Einrichtung und Unterhaltung der Arbeitsstätten zugunsten von Menschen mit Behinderungen in anderen Rechtsvorschriften, insbesondere im Neunten Buch Sozialgesetzbuch.
(5) Die Pflichten aus Abschnitt 2a gelten nicht für Websites und mobile Anwendungen jener öffentlichen Stellen des Bundes nach § 12 Satz 1 Nummer 2 und 3, die keine für die Öffentlichkeit wesentlichen Dienstleistungen oder speziell auf die Bedürfnisse von Menschen mit Behinderungen ausgerichtete oder für diese konzipierte Dienstleistungen anbieten.
(6) Von der barrierefreien Gestaltung können öffentliche Stellen des Bundes ausnahmsweise absehen, soweit sie durch eine barrierefreie Gestaltung unverhältnismäßig belastet würden.
(7) Der Bund wirkt darauf hin, dass gewerbsmäßige Anbieter von Websites sowie von grafischen Programmoberflächen und mobilen Anwendungen, die mit Mitteln der Informationstechnik dargestellt werden, aufgrund von Zielvereinbarungen nach § 5 Absatz 2 ihre Produkte so gestalten, dass sie barrierefrei genutzt werden können.
(8) Angebote öffentlicher Stellen im Internet, die auf Websites Dritter veröffentlicht werden, sind soweit möglich barrierefrei zu gestalten.

Anmerkung von Markus

Im Klartext steht da, dass Behörden dazu verpflichtet sind, ihre Webseiten und Software so zu gestalten dass diese für Menschen mit unterschiedlichen Behinderungen bedienbar sind. Dieses Gesetz war also die Geburtsstunde der Barrierefreiheit in der Informationstechnik und der barrierefreien Softwareentwicklung! Was noch wichtig zu erwähnen ist: Die Barrierefreiheit soll UNEINGESCHRÄNKT sein. Uneingeschränkt bedeutet komplette Barrierefreiheit und nicht nur ein bisschen Barrierefreiheit! Hieran sollten sich Entwickler halten.
Technische Vorgaben schreibt das Gesetz jedoch nicht vor. Es beschränkt sich auf die Definition der Ziele und der Bereiche, in denen das Gesetz Anwendung findet.

Barrierefreie Software hat nicht nur Vorteile für Menschen mit Behinderungen, sondern auch für andere Benutzergruppen. Daher kann es auch für Unternehmen sinnvoll sein, barrierefreie Software zu nutzen und auch zu entwickeln. Gesetzlich ist dies allerdings nicht vorgeschrieben. Der Paragraph 12 des BGG gibt dies nur für „Träger öffentlicher Gewalt“ vor. Eine innerbetriebliche Barrierefreiheit in der Informationstechnologie ermöglicht jedoch die Bearbeitung von Aufgabenfeldern für beeinträchtigte Menschen und führt damit zur Inklusion von Behinderten. Zum anderen erhöht eine barrierefreie Software für so gut wie alle Nutzer die Accessibility und gleichzeitig auch die Usability/Benutzerfreundlichkeit. Das kann sich auch positiv auf den Umsatz auswirken, da eine benutzerfreundliche Software bzw. Oberfläche von den Menschen gerne häufiger genutzt wird.

Was ist barrierefreie Softwareentwicklung / Software-Entwicklung?

Software wird programmiert mit einer, manchmal auch mehrerer, Programmiersprachen. Der Begriff “Programmierung” ist etwas außer Mode gekommen. Es ist aber nicht falsch den Begriff „barrierefreie Programmierung“ zu verwenden. Software wird heute nicht mehr programmiert, sondern entwickelt. Deswegen wird der Entstehungsprozess einer Software als “Software-Entwicklung” bezeichnet.
Barrierefreie Software-Entwicklung bedeutet, es entsteht eine Software die für Menschen mit unterschiedlichen Behinderungsarten bedienbar ist. Die Zielgruppe für barrierefreie Softwareentwicklung sind Menschen mit Behinderungen und zum Teil Menschen im fortgeschrittenen Alter. Welche Barrieren können bei Software auftreten?

Barrierefreie Softwareentwicklung – welche Barrieren gibt es?

Die Barrieren sind mit bestimmten körperlichen Behinderungsarten verknüpft. Für Blinde, die den Mauszeiger nicht sehen können, ist eine Software die sich nur per Maus bedienen lässt, eine unüberbrückbare Barriere.
Ebenso ist es für Blinde eine unüberbrückbare Barriere, wenn eine Software keine Informationen an das Bildschirmleseprogramm, Screenreader genannt, übermittelt. Ohne Screenreader könnten Blinde nicht am Computer und an der Tastatur arbeiten. Fehlende Barrierefreiheit / Accessibility bei einer Anwendung, bedeutet, dass Blinde mit dieser Anwendung nicht arbeiten können. Die bekanntesten Screenreader heißen NVDA und JAWS.
Für Menschen mit einer Farbfehlsichtigkeit, besser bekannt als Farbenblindheit, ist zu wenig Kontrast zwischen Schriftfarbe und Hintergrundfarbe eine unüberbrückbare Barriere. Für Menschen welche behinderungsbedingt eine Software nur mit einer Hand bedienen können, sind bestimmte Tastenkombinationen Barrieren.

Für Sehbehinderte und auch einige ältere Nutzer ist eine vergrößerbare Schrift sehr wichtig. In der Systemsteuerung kann die Schriftgröße angepasst werden. Dies hilft aber nur, wenn die Software in der Lage ist, diese angepasste Schrift zu übernehmen.
Für Menschen die, behinderungsbedingt, nur mit einer Hand einen Computer bedienen können, sind Tastenkombinationen eine unüberbrückbare Barriere.
Für Gehörlose ist eine unüberbrückbare Barriere, wenn eine Software eine wichtige Information nur über Ton übermittelt. Ein Mailprogramm, welches per Ton mitteilt “Sie haben Post!”, aber die neuen Mails optisch nicht kennzeichnet, wäre für Gehörlose nicht bedienbar! Für Gehörlose ist es wichtig, dass in Anwendungen, hörbare Informationen auch als Text bereitgestellt werden. Dies sind einige Beispiele! Barrierefreie Software nimmt auf all diese Kriterien Rücksicht und stellt Herausforderungen an den Entwickler.

Barrierefreie Softwareentwicklung – wer ist die Zielgruppe?

Barrierefreie Software-Entwicklung nimmt auf diese unterschiedlichen Bedürfnisse von Menschen mit verschiedenen Behinderungen Rücksicht. Zunächst geht es hauptsächlich um Personen mit einer Körperbehinderung.
Aber auch Nutzer ohne Behinderung können “vorübergehend” von einer körperlichen Einschränkung heimgesucht werden. Stellen Sie sich vor, Sie sind Rechtshänder und brechen sich den rechten Arm. Plötzlich müssen Sie den Computer mit der linken Hand bedienen. Zum Drücken der Tastenkombinationen haben Sie plötzlich keine zweite Hand mehr! Jetzt würden Sie davon profitieren, wenn die Software, mit der Sie täglich arbeiten, barrierefrei wäre.
Lohnt sich barrierefreie Software-Entwicklung? Dazu empfehle ich diesen Link
Fast 10 Millionen behinderte Menschen in Deutschland.

Barrierefreie Zugänge für Menschen mit Behinderungen oder anderer Einschränkungen

Barrierefreie Software-Entwicklung hilft ebenso älteren Menschen bei der Bedienung von Software. Im fortgeschrittenen Alter können körperliche Einschränkungen erscheinen, die einer Behinderung sehr ähnlich sind! Barrierefreie Software-Entwicklung betrifft also nicht nur Menschen mit Behinderung!

Es gibt also verschiedene Gruppen, die von solch einem vereinfachten Zugang zur Informationstechnologie profitieren:

  • Menschen mit Behinderungen
  • Ältere Menschen
  • Menschen mit einer anderen Muttersprache
  • Menschen, die selten Software nutzen
  • Webcrawler

Der demographische Wandel verändert die Altersstruktur in Deutschland insofern, dass der Anteil der älteren Menschen ansteigt. Der Einsatz barrierefreier Software wird daher auch langfristig immer wichtiger, da Menschen im fortgeschrittenen Alter vor allem körperliche Einschränkungen wie Sehschwächen erfahren. Eine höhere Lebenserwartung und ein höheres Renteneintrittsalter haben dabei zur Folge, dass die Menschen länger arbeiten müssen und werden. In Kombination mit der technologischen Entwicklung heißt das, dass mehr ältere Menschen Software bedienen müssen.

Unternehmen benötigen barrierefreie Software für ihre Mitarbeiter

Auch hier ist es für Unternehmen wichtig, barrierefreie Software zur Verfügung zu stellen. Hinzu kommt, dass die Kundengruppe der älteren Personen deutlich größer wird, auch weil in Zukunft ältere Menschen häufiger als heute Software verwenden werden. Somit ist es auch für Unternehmen ratsam, die Augen nicht vor barrierefreier Software zu verschließen. Das gilt sowohl unternehmensintern bei der Nutzung von Software als auch bei der Entwicklung von Software, die veräußert werden soll.

Fremdsprachige Personen können von barrierefreie Softwareentwicklung profitieren

Eine barrierefreie Software kommt derweil auch Personengruppen zugute, die eine andere Muttersprache haben als die Sprache, die die Programme und Oberflächen anzeigen. Das Textverständnis ist hier logischerweise nicht so gut ausgeprägt und Barrierefreiheit kann auch bei dieser Personengruppe den Zugang zur Funktionalität der Software vereinfachen. In erster Linie ist dies für Behörden sinnvoll und erleichtert die „Abfertigung“, aber auch Unternehmen, die international agieren, profitieren davon. Das gilt erneut unternehmensintern, weil eine einheitliche Software an verschiedenen internationalen Standorten verwendet werden kann. Aber auch die Kundenbeziehungen können einen Nutzen erfahren: Der Zugang der Kunden auf einem Markt mit einer anderen Sprache wird vereinfacht.

Barrierefreie Softwareentwicklung hilft Menschen, die selten mit digitalen Technologien zu tun haben

Barrierefreie Software hilft, insgesamt betrachtet, allen Menschen. Software kann durchaus dafür sorgen, dass Nutzer vor Probleme gestellt werden, wenn sie kompliziert zu bedienen ist und nicht auf verschiedene Ein- sowie Ausgabemöglichkeiten zugreifen kann. Das kommt auch den Personen zugute, die nicht so häufig mit digitalen Technologien konfrontiert sind. Schon das Ziehen einer Nummer beim Amt kann Menschen vor Probleme stellen, da sie nicht mehr nur ziehen, sondern auf einem Touchscreen den Grund ihres Besuchs angeben müssen.

Barrierefreiheit bringt dem Online Marketing Vorteile

Zu guter Letzt bringt Barrierefreiheit in der Entwicklung auch beim Online-Marketing Vorteile. Wird auf ein barrierefreies Webdesign wert gelegt, können Webcrawler die auf der Website enthaltenen Informationen besser verarbeiten. Crawler, auch als Spider oder Robot bekannt, sind Programme, die Internetseiten automatisch analysieren. Dabei findet er auch neue Inhalte bzw. neue Internetseiten. Die dem Crawler zugrundeliegenden Informationen sind schlussendlich für das Ranking in der Suchmaschine ausschlaggebend.
Das Problem an der Sache ist, dass Crawler ebenfalls eingeschränkt sind. Ihre Funktionen lassen beispielsweise keinen vollständigen Informationsgewinn auf Basis von Bildern oder Grafiken zu. Mithilfe der Künstlichen Intelligenz konnten zwar bereits große Fortschritte bei der Bilderkennung gemacht werden, exakt auslesen können die automatischen Programme Bilder jedoch noch nicht. Die Meta-Elemente sind hier auch ausschlaggebend, die beschreiben, was auf dem Bild zu sehen ist. Barrierefreies Webdesign bedeutet auch, dass Bilder auf Webseiten einen Alternativtext haben. Das hilft dem Crawler und auch blinden bzw. sehbehinderten Menschen, die einen Screenreader nutzen.

Barrierefreie Zugänge für Menschen mit Sehschwäche oder Farbblindheit

An Entwickler hingegen stellt die barrierefreie Software-Entwicklung auf den ersten Blick eine Herausforderung dar. Jedoch sind viele Punkte ohnehin Bestandteil einer organisierten Software-Entwicklung. Beispielsweise trennt man als Programmierer Layout und Inhalt, was als saubere Architektur des Programms gilt. Das ist eine grundsätzliche Anforderung aus der Software-Entwicklung, hilft gleichzeitig aber auch bei der Barrierefreiheit. Dadurch kann man das Layout also individuell anpassen – Kontrast, Schrift- oder Fenstergröße – und ist nicht durch fehlende oder falsch dargestellte Inhalte gestört. Das bringt Vorteile für Menschen mit Sehschwächen oder auch bei Farbenblindheit mit sich. Zusätzlich werden die Prinzipien der Usability auch bei der barrierefreien Software-Entwicklung durchgesetzt. Hält man sich bei der Software-Entwicklung also an die Barrierefreiheit, ist das Ergebnis schlussendlich besserer Qualität.

Barrierefreie Software-Entwicklung – die Wahl der Programmiersprache

Welche Programmiersprachen unterstützen barrierefreie Softwareentwicklung? Java war die erste, welche barrierefreie Softwareentwicklung unterstützte. Das Microsoft .net-Framework insbesondere die Programmiersprache C# unterstützt ebenso die barrierefreie Softwareentwicklung! Barrierefreie Softwareentwicklung kann auch mit Python umgesetzt werden. Das tolle an Java ist, dass sie kostenlos im Web heruntergeladen werden kann. Außerdem ist es mit Java möglich Anwendungen für Internetseiten zu entwickeln. Java und Microsoft.net werden in Amerika entwickelt. Dort ist Accessibility sehr wichtig, weil die Zahl der Menschen mit Behinderung sehr viel höher ist als in Deutschland. Anwendungen müssen in den USA nach den Grundsätzen der Accessibility programmiert sein. Menschen mit Behinderung haben dort nämlich ein Klagerecht bei fehlender Accessibility.

Das Bild zeigt eine barrierefreie Java-Software entwickelt mit Swing in welcher der Tastaturfokus gut sichtbar ist

Das Bild zeigt eine barrierefreie Java-Software entwickelt mit Swing in welcher der Tastaturfokus gut sichtbar ist.

Im nächsten Bildschirmfoto sehen Sie Java-Programm-Code:

Das Bild zeigt Java-Code der zeigt wie eine Swing-Programmoberfläche für Screenreader zugänglich gemacht werden kann

Das Bild zeigt Java-Code der zeigt wie eine Swing-Programmoberfläche für Screenreader zugänglich gemacht werden kann.

Das nächste Bild zeigt eine barriererefreie Software die mit der Programmiersprache Python entwickelt wurde und unter dem Apple Betriebssystem MacOS gestartet werden kann:

Demoprogramm: für blinde und sehbehinderte Menschen nutzbar, Betriebssystem MacOS, Programmiersprache Python
Demoprogramm: für blinde und sehbehinderte Menschen nutzbar, Betriebssystem MacOS, Programmiersprache Python

Folgende 6 Möglichkeiten gibt es um barrierefreie Software zu entwickeln:

Dieses Video zeigt die Grundzüge der barrierefreien Softwareentwicklung mit Java -Swing:

Im nächsten Video sehen Sie die barrierefreie Softwareentwicklung mit JavaFX:

Das nächste Video zeigt die Grundzüge der barrierefreien Softwareentwicklung mit Microsoft Dotnet Winforms:

Das nächste Video zeigt die Grundzüge der barrierefreien Softwareentwicklung mit Microsoft Dotnet WPF:

Im nächsten Video wird barrierefreie Softwareentwicklung mit Python gezeigt:

Gibt es Richtlinien für barrierefreie Software-Entwicklung?

Für barrierefreies Webdesign gibt es national die Richtlinie BITV und international die Richtlinie WCAG. Um eine Software barrierefrei zu entwickeln sind ebenfalls Richtlinien notwendig. Diese sind wichtig damit eine Software auf Barrierefreiheit überprüft werden oder eine Software barrierefrei entwickelt werden kann. Es würde den Rahmen dieses Artikels sprengen hier alle Richtlinien aufzuführen. Leider gibt es keine einheitlichen Richtlinien wie barrierefreies Webdesign auszusehen hat. Deswegen nachstehend ein paar Richtlinien zur barrierefreien Softwareentwicklung mit Java und Microsoft Dotnet.
Die originalen Richtlinien für barrierefreie Softwareentwicklung für die Programmiersprache Java finden Sie bei Oracle:
Rules for Supporting Accessibility
Ich habe die Richtlinien auf Deutsch übersetzt:
Richtlinien barrierefreie Softwareentwicklung für Java von Oracle
Die Richtlinien für barrierefreie Softwareentwicklung mit Microsoft Dotnet finden Sie unter folgendem Link im Web: Exemplarische Vorgehensweise: Erstellen von behindertengerechten Windows-basierten Anwendungen

Wie kann barrierefreie Softwareentwicklung getestet werden?

Bevor eine Software die Auszeichnung “barrierefrei” erhält, muss diese überprüft werden, ob sie auch wirklich barrierefrei ist.
Eine automatisierte Überprüfung ist noch immer schwierig. Microsoft und Oracle stellen beide ein Tool zur Verfügung, um Software auf Barrierefreiheit zu testen.
Um aber wirklich sicher zu gehen sollte die Überprüfung einer Software auf Barrierefreiheit “von Hand” erfolgen. Das bedeutet, Sie überprüfen Ihre Software anhand der von Ihnen verwendeten Richtlinien.

Einstellungsdialog für Barrierefreiheit bei der Standardsoftware LibreOffice

Obiges Bild zeigt den Einstellungsdialog der Standardsoftware LibreOffice .

Dabei ist es wichtig, dass die Software vom Programmierer selbst bzw. dem Team überprüft wird, da eine externe Überprüfung en Detail nicht möglich ist. Während viele Punkte recht einfach zu überprüfen sind – wie beispielsweise die alternative Eingabe von Tastaturbefehlen per Bildschirmtastatur, Spracheingabe oder Braille-Zeile – sind andere für außenstehende Tester kaum zu überprüfen, da ihnen nicht alle Informationen (Quellcode etc.) zugänglich sind.
Die Richtlinie WCAG, die vorrangig für Webanwendungen und deren Entwickler gedacht sind, können derweil mit Techniken für WCAG 2.0 auf Barrierefreiheit überprüft werden: Techniques for WCAG 2.0: Techniques and Failures for Web Content Accessibility Guidelines 2.0. Hier sind zu folgenden Punkten mehrere Techniken zur Aufhebung von Barrieren bei Webinhalten und zusätzlich kleine Testverfahren zu ihnen aufgelistet:

  • Generelle Techniken
  • HTML- und XHTML-Techniken
  • CSS-Techniken
  • Client-side-Scripting-Techniken
  • Server-side-Scripting-Techniken
  • SMIL-Techniken
  • Plain-Text-Techniken
  • ARIA-Techniken
  • Flash-Techniken
  • Silverlight-Techniken
  • PDF-Techniken
  • Verbreitete Fehler

Die WCAG sind zwar grundsätzlich technologieunabhängig ausgerichtet, sind aber dennoch nicht für eine allgemeingültige Überprüfung von anderer Software als Webanwendungen geeignet. Sie bieten keine Hinweise und Überprüfbarkeit für allgemeine Anwendungen, die Richtlinien können dennoch bei der Software-Entwicklung hilfreich sein.

Software auf Barrierefreiheit testen

Damit Sie sicher sein können, dass Menschen mit Behinderungen ihrer Software bedienen können, muss diese getestet werden. Ich empfehle einen Test von Hand aufgrund der Richtlinien für Barrierefreiheit bei der Softwareentwicklung.

Mit meiner in Python entwickelten Software Marlems Barriere Software Checker können Java Swing und JavaFX-Dateien auf Barrierefreiheit automatisiert getestet werden. Selbstverständlich ist auch meine Software nicht perfekt! Hier können Sie das Programm herunterladen:

barrierefreie Softwareentwicklung muss selbstverständlich werden in Deutschland

Ich möchte diese Jahr den Prozess voran treiben, dass Software immer barrierefrei entwickelt wird. Deswegen werde ich insgesamt 4 Texteditoren entwickeln in mit denen ich zeige wie Standardsoftware barrierefrei entwickelt werden kann.
Hier geht es zur Downloadseite:

Fachartikel und Softwarevorstellungen auf Heise.de/Developer und Entwickler.de: Barrierefreie Softwareentwicklung mit JavaFX, C# WPF und Python

Fachartikel und Softwarevorstellungen geschrieben von mir:

Barrierefreie Softwareentwicklung – Wer hilft bei der Umsetzung?

Wenn Sie sich aufgrund der Informationen in diesem Artikel entschieden haben, sich mit barrierefreier Softwareentwicklung zu beschäftigen, dann nehmen Sie mit mir Kontakt auf!
Telefon: 07072/1278463
E-Mail: info@marlem-software.de

Ich biete:

Ich würde mich sehr freuen, wenn barrierefreie Softwareentwicklung zur Selbstverständlichkeit werden würde.