Barrierefreiheit: barrierefreie Softwareentwicklung mit JavaFX

JavaFX gibt es seit Dezember 2008. Trotzdem ist die Dokumentation zur barrierefreien Softwareentwicklung noch sehr dünn. Deswegen wird es höchste Zeit, dass ich darüber schreibe.

Was ist JavaFX?

JavaFX ist ein Framework zur Erstellung von plattformübergreifende Java-Applikationen und grafischen Benutzeroberflächen im Fachjargon GUI. In Sachen barrierefreie Softwareentwicklung soll JavaFX Swing ablösen.

Barrierefreie Softwareentwicklung mit JavaFX

Zu Beginn ein wichtiger Unterschied:
Die Java Access Bridge , die bei der barrierefreien Softwareentwicklung mit Java Swing benötigt wurde, wird bei JavaFX nicht mehr benötigt. Dies ist eine große Verbesserung.
Die größte Herausforderung an eine Software ist, dass sie von blinden Menschen bedient werden kann. Blinde lassen sich alles vorlesen von einer Software die Screenreader heißt. Deswegen müssen Programmoberflächen in der Lage sein, Texte zu speichern die von Screenreader vorgelesen werden. Die hinterlegten Texte sollen die Programmoberfläche erklären.

„Barrierefreiheit: barrierefreie Softwareentwicklung mit JavaFX“ weiterlesen

Wie installiere ich die Java Access Bridge?

Im Artikel „Warum ist die Java Access Bridge zur barrierefreien Software-Entwicklung mit Java wichtig?“ erkläre ich warum es die Java Access Bridge gibt. In diesem Artikel wird erklärt wie die Java Access Bridge installiert wird. 

Bevor ich zur Installation der Java Access Bridge komme, muss ich noch erklären was die JRE (Java Runtime Envoirment) ist. Die JRE ist die Laufzeitumgebung von Java. Die JRE muss installiert sein, damit Java-Anwendungen überhaupt gestartet werden können. Warum ist das nun für die Installation der Java Access Bridge wichtig?
Je nachdem welche Version der JRE installiert ist, unterscheidet sich die Installation der Java Access Bridge. Da ich nicht Dinge wiederholen möchte, die an anderer Stelle gut beschrieben sind, setze ich entsprechende Links und mache ggf. Ergänzungen.

Installation der Java Access Bridge unter JRE 6

Das installieren der Java Access Bridge unter JRE6 ist sehr „abenteuerlich“ und nicht zeitgemäß. Es handelt sich hierbei um einen reinen Kopiervorgang von bestimmten Dateien. Damit ich hier nicht Dinge wiederhole die schon gut beschrieben sind verweise ich auf den Blogartikel von Thomas Künneth:
Installation der Java Access Bridge unter JRE 6 .

Installation der Java Access Bridge unter JRE 7

Bei der Installation der JRE 7 hat Oracle es endlich geschafft, dass die Java Acccess Bridge gleich mit installiert wird. Leider wird der Anwender während des gesamten Installationsvorgangs nicht darauf hingewiesen. Noch schlimmer ist, dass nach Abschluss der Installation die Java Access Bridge noch aktiviert werden muss und dies leider auch nirgendwo steht.

Aktivieren der Java Access Bridge unter JRE 7

Das aktivieren geht entweder über Dos-Kommando:
%JRE_HOME%\bin\jabswitch -enable
%JRE_HOME%\bin\jabswitch -disable

oder

im Windows: Die Vorgehensweise im Windows ist von Version zu Version etwas unterschiedlich. Deswegen gebe ich zwei Möglichkeiten an:

Systemsteuerung -> Erleichterte Bedienung -> Visuelle Darstellung des Bildschirms optimieren

oder

Systemsteuerung -> Erleichterte Bedienung -> Center für Erleichterte Bedienung -> Computer ohne einen Bildschirm verwenden

Einstellungsdialog in Windows 7,8 und 10 zum aktivieren der Java Access Bridge

Hier ganz runter scrollen und einen Haken bei „Java Access Bridge aktivieren“ setzen.

Eine Installationsanleitung auf Englisch finden Sie hier:
JRE 7 Update 6 Now Comes Bundled with the Java Access Bridge

Die Beschriebene Vorgehensweise funktioniert auch bei JRE 8.

Viel Spass beim installieren der Java Access Bridge

Barrierefreie Softwareentwicklung mit Java: Vortrag auf dem Accessibility Day der Hochschule der Medien in Stuttgart

Am 19. Juni 2015 war in der Hochschule der Medien wieder mal ein Accessibility Day. Organisiert wurde dieser Accessibility Day von Prof. Dr. Gottfried Zimmermann.

Referenten waren Matthias Knigge von Grauwert, Ulrich Kreichgauer von SAP, Andreas Stiegler von der Hochschule der Medien und ich.

Zuhörer waren Studenten der Hochschule der Medien.

Mein Vortrag über barrierefreie Softwareentwicklung mit Java können Sie hier anschauen:

Markus Lemcke von Marlem-Software beim Vortrag am Accessibility Day

Zum Video anschauen bitte auf das Bild klicken.

Vielen Dank an Prof. Dr. Gottfried Zimmermann für die Einladung auf den Accessibility Day und die Genehmigung das Video auf dem Blog zu veröffentlichen.

Barrierefreiheit mit Java 8

In diesem Blogartikel möchte ich das Thema Accessibility mit Java nicht nochmal komplett behandeln. Es geht in diesem Blogartikel darum, ob es bei der Programmiersprache Java Version 8 Neuerungen gibt, bei der Entwicklung von behindertengerechten Anwendungen.

Barrierefreiheit heißt in englisch Accessibility. Java ist eine Programmiersprache mit der Anwendungen entwickelt werden. Die Programmiersprache Java wurde  von dem Unternehmen Oracle entwickelt. Oracle hat den Hauptsitz in Amerika. Barrierefreiheit mit Java bedeutet, das Java-Anwendungen(auch Software genannt) entwickelt werden, die für behinderte Menschen bedienbar sind. Leider schafft es das Unternehmen Oracle nicht, eine deutschsprachige Dokumentation bereit zu stellen zu barrierefreie Software-Entwicklung mit Java.

Wenn Sie Barrierefreie Software-Entwicklung mit JavaFX umsetzen möchten dann lesen Sie folgenden Artikel:

Für welche Personengruppe ist Accessibility mit Java wichtig?

Bei barrierefreie Software-Entwicklung mit der Programmiersprache Java geht es darum, dass Menschen mit Behinderungen oder anderen körperlichen Einschränkungen Anwendungen bedienen können. Für Menschen mit Behinderung ist es wichtig, dass Anwendungen barrierefrei entwickelt sind.  Java ist besten dafür geeignet um barrierefreie Anwendungen zu entwickeln.

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 der Java-Schnittstelle Swing in welcher der Tastaturfokus gut sichtbar ist.

Gibt es was neues in Sachen Accessibility bei Java 8?

Nein, Oracle hat am Konzept von Accessibility mit Java bei der Version 8 nichts geändert. Sie können mit Java 8 genau so barrierefreie Anwendungen entwickeln wie mit Java 7! Alles weitere zur Accessibility mit Java 8 entnehmen Sie bitte diesen Blogartikel:

Barrierefreie Softwareentwicklung / Software-Entwicklung mit Java

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

Beratung und Umsetzung in Sachen barrierefreie Anwendungen entwickeln mit der Programmiersprache Java

Ich bin begeistert von Java! Wenn Sie eine neue Java Anwendung behindertengerecht entwickeln möchten oder eine bestehende Java Anwendung soll barrierefrei gemacht werden, dann dürfen Sie gerne mich beauftragen: Tel. 07121/504458 oder Mail: info@marlem-software.de .

Hier noch ein Video in dem ich die Grundlagen der barrierefreien Softwareentwicklung mit Java – Swing erkläre:


Weitere Artikel zu barrierefreie Softwareentwicklung:
Barrierefreie Softwareentwicklung / Software-Entwicklung mit Java
Barrierefreiheit: barrierefreie Softwareentwicklung mit JavaFX
Barrierefreie Software – Was ist das?
Barrierefreie Softwareentwicklung / Barrierefreie Software-Entwicklung – Was ist das?
Warum ist barrierefreie Softwareentwicklung für Software-Unternehmen wichtig?
Barrierefreie Softwareentwicklung: Artikelreihe
Warum ist die Java Access Bridge zur barrierefreien Software-Entwicklung mit Java wichtig?

Barrierefreie Softwareentwicklung / Software-Entwicklung mit Java

In diesem Blogartikel möchte ich erklären, wie mit der Programmiersprache Java Software entwickelt werden kann, die von Menschen mit unterschiedlichen körperlichen Einschränkungen / Behinderungen bedient werden können. Es geht also um barrierefreie Software-Entwicklung mit der Programmiersprache Java!

Warum gibt es barrierefreie Software-Entwicklung?

Seit dem 1. Mai 2002 gibt es ein Gleichstellungsgesetz für behinderte Menschen. In diesem Gesetz werden staatliche Einrichtungen dazu verpflichtet ihrer Webseiten in bariererefreies Webdesign zu entwickeln und Ihre Programme mit barrierefreie Softwareentwicklung. Barrierefreiheit (im englischen Accessibility) wurde für Anwendungen von Staatlichen Einrichtungen gesetzlich vorgeschrieben. Gewerbetreibende sollten Barrierefreiheit bei Webseiten und Anwendungen umsetzen, müssen es aber nicht.
Dieses Gesetz legte den Grundstein zu barrierefreie Softwareentwicklung mit Java.

Lohnt sich Barrierefreie Softwareentwicklung / Barrierefreie Software-Entwicklung mit Java?

In Deutschland leben ca. 10 Millionen Menschen mit Behinderung. Das sind 10% der Gesamtbevölkerung von Deutschland. Außerdem profitieren auch Menschen im fortgeschrittenen Alter von Accessibility bei Anwendungen. barrierefreie Software-Entwicklung lohnt sich also auf jeden Fall!

Für welche Personengruppe ist Barrierefreie Software-Entwicklung mit Java besonders wichtig?

Wie oben schon erwähnt geht es bei barrierefreie Software-Entwicklung hauptsächlich um Menschen mit Behinderung. Allerdings profitieren auch ältere Menschen wenn Barrierefreiheit / Accessibility bei Programme umgesetzt wurde. Ganz besonders möchte ich aber in diesem Abschnitt auf Blinde hinweisen. Sie müssen sich alles auf dem Bildschirm vorlesen lassen von einer Software die Screenreader heißt. Damit dieser Screenreader die Oberflächen von Programme lesen kann, muss diese bestimmte Informationen bereit stellen. Blinde können also ohne barrierefreie Software gar nicht am Computer arbeiten.

Warum ist Java eine gute Programmiersprache für die Barrierefreie Softwareentwicklung / Barrierefreie Software-Entwicklung?

Java hat eine Programmierschnittstelle mit Namen Swing. Swing-Komponenten haben die Eigenschaft AccessibleName und AccessibleDescription . Diesen beiden Eigenschaften können Texte zugewiesen werden, welche dann vom Screenreader vorgelesen werden. Deswegen ist Java eine gute Wahl, wenn es um Barrierefreiheit bei Software geht.

Gibt es Richtlinien für die barrierefreie Softwareentwicklung mit Java?

Damit Sie wissen, welche Kriterien ihre Anwendungen erfüllen müssen damit die Barrierefreiheit gewährleistet ist, gibt es Richtlinien von Oracle und IBM für die Programmiersprache Java:

Richtlinien barrierefreie Software-Entwicklung für Java von Oracle
Richtlinien zur barrierefreie Software-Entwicklung für Java von IBM
Microsoft hat auch Richtlinien für barrierefreie Software-Entwicklung, aber diese kann ich für Java nicht empfehlen! Wenn Sie Barrierefreiheit mit Java umsetzen möchten, sollten Sie einer der beiden Richtlinien verwenden.

Barrierefreie Oberflächen entwickeln mit Swing

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 der Java-Schnittstelle Swing in welcher der Tastaturfokus gut sichtbar ist.

Damit Sie sehen wie den Komponenten Texte für Blinde zugewiesen werden, hier ein kurzes Beispiel:

tfWebadresse.getAccessibleContext().setAccessibleDescription(
"Webadresse eingeben mit http://");
btnWebAnalyse.getAccessibleContext().setAccessibleName(
"Schalter zum Starten der Analyse auf Barrierefreiheit");

Dieses Codebeispiel zeigt einen Teil von barrierefreie Software-Entwicklung mit Java. Barrierefreiheit bei Programmoberflächen können mit den Swing-Komponenten von Java sehr gut entwickelt werden.

So sieht es aus wenn Sie mit dem Programmiereditor Eclipse barrierefrei mit Swing-Komponenten entwickeln:

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

Hier kommt noch ein Video zur barrierefreie Softwareentwicklung mit Java – Swing:

Was ist die Java Access Bridge?

Die Java Access Bridge, schafft die Verbindung zwischen der Java Software und dem Screenreader. Eine genaue Erklärung finden Sie in diesem Blogartikel: Warum ist die Java Access Bridge zur barrierefreien Software-Entwicklung mit Java wichtig?   Wie Sie die Java Access Bridge installieren können Sie im folgenden Blogartikel lesen: Wie installiere ich die Java Access Bridge? Die Java Access Bridge ist ein wichtiger Bestandteil der barrierefreie Software-Entwicklung mit Java!

Testen von barrierefreie Software-Entwicklung

Damit Sie sicher sein können, dass Menschen mit Behinderungen ihrer Software bedienen können, muss diese getestet werden. Oracle bietet hier ein Tool an um barrierefreie Softwareentwicklung zu überprüfen. Es heißt A11Y testing – Accessibility Tester .
Grundsätzlich ist es nicht vollständig möglich, Barrrierefreiheit mit Tools zu überprüfen.
Deswegen rate ich Ihnen ab, diesen Accessibility Tester zu verwenden. Barrierefreie Sofwareentwicklung kann nicht vollständig automatisiert getestet werden!
Ich empfehle einen Test von Hand aufgrund der Richtlinien für Barrierefreiheit bei der Softwareentwicklung mit Java.

Beratung in Sachen Barrierefreie Software-Entwicklung mit Java

Wen Sie Fragen zu Barrierefreiheit / Accessibility / barrierefreie Software-Entwicklung mit Java haben, schreiben Sie mir eine Mail an info@marlem-software.de oder rufen Sie mich an unter 07121/504458 . Barrierefreie Software sollte meiner Meinung nach zum Standard erklärt werden. Java eignet sich hierfür sehr gut! Ich berate Sie gerne!!!


Weitere Artikel zu barrierefreie Softwareentwicklung:
Barrierefreiheit mit Java 8
Barrierefreiheit: barrierefreie Softwareentwicklung mit JavaFX
Barrierefreie Software – Was ist das?
Barrierefreie Softwareentwicklung / Barrierefreie Software-Entwicklung – Was ist das?
Warum ist barrierefreie Softwareentwicklung für Software-Unternehmen wichtig?
Barrierefreie Softwareentwicklung: Artikelreihe
Warum ist die Java Access Bridge zur barrierefreien Software-Entwicklung mit Java wichtig?

 

Barrierefreiheit bei Java

Noch immer ist die Barrierefreiheit bei Programmen ein Randgebiet. Leider! Dabei eignet sich zum Beispiel die Programmiersprache Java excellent um Barrierefreiheit bei Software zu verwirklichen. In diesem Artikel erkläre ich was „Barrierefreiheit bei Java“ ist, wie es umgesetzt werden kann und warum es wichtig ist, dass es auch geschieht.

Barrierefreiheit bei Java – Was ist Java?

Java ist eine Programmiersprache mit der Software, also Programme entwickelt werden. Das besondere an Java-Programmen ist, dass sie nicht nur auf dem Betriebssystem Windows laufen, sondern auch auf anderen Betriebssystemen wie Unix oder Linux. Diese Eigenschaft wird auch Plattformunabhängigkeit genannt.
Mit Java können Sie auch Programme für das Internet entwickeln. Das nennt sich eine Webanwendung.
Außerdem werden mit Java auch Apps entwickelt für das Smartphone-Betriebssystem Android.

Was bedeutet Barrierefreiheit bei Java?

In Wikipedia wird Barrierefreiheit wie folgt definiert:
Barrierefreiheit bezeichnet im deutschen Sprachgebrauch eine Gestaltung der baulichen Umwelt, sowie der Information und Kommunikation in der Weise, dass sie von Menschen mit Behinderung und von älteren Menschen in derselben Weise genutzt werden kann wie von Menschen ohne Behinderung.
Dies ist eine allgemeine Definition von Barrierefreiheit.
Barrierefreiheit bei Java bedeutet, dass eine Software, entwickelt mit der Programmiersprache Java, so gestaltet ist, dass Menschen mit unterschiedlichen Behinderungen diese Software bedienen können.

Barrierefreiheit bei Java – Welche Probleme gibt es?

Menschen mit Behinderungen haben unterschiedliche Probleme bei der Bedienung von Software. Blinde Menschen haben es am schwersten. Sie arbeiten mit einer Software die sich Screenreader nennt. Diese Software liest den Bildschirminhalt vor. Damit der Screenreader die Programmoberfläche vorlesen kann, muss diese Informationen hinterlegt haben, die der Screenreader lesen kann. Programme die dem Screenreader keine Informationen übermitteln können von Blinden nicht benutzt werden.
Ein weiteres Problem ist, dass blinde Menschen keine Maus bedienen können. Das bedeutet eine Software muss komplett per Tastatur bedienbar sein.
Dies sind nur zwei von mehreren Beispielen. Barrierefreiheit bei Java Programmen löst obige Probleme.

Barrierefreiheit bei Java – Swing-Komponenten „sprechen“ mit Screenreadern

Damit die Oberfläche von Programmen mit Screenreadern „spricht“ müssen bestimmte Bedingungen erfüllt sein. Die Programmoberfläche muss Möglichkeiten bieten, damit Informationen für die Screenreader hinterlegt werden können. Diese Möglichkeit bieten Swing-Komponenten. Swing-Komponenten besitzen Eigenschaften denen Texte zugeordnet werden können, welche Screenreader vorlesen. Barrierefreiheit mit Java bedeutet, dass die Software mit Swing-Komponenten „spricht“.

Barrierefreiheit bei Java – Eine Brücke schafft die Verbindung zwischen Software und Screenreader

Damit die Information von der Java-Software zum Screenreader gelangt benötigt es eine „Verbindung“. Die Java Access Bridge. Bridge ist englisch und bedeutet auf deutsch „Brücke“. Die Java Access Bridge ist zwingend notwendig, damit der Screenreader die Programmoberfläche der Java-Software vorlesen kann. Ohne die Java Access Bridge kann keine vollständige Barrierefreiheit der Software erreicht werden.

Barrierefreiheit bei Java – Warum ist das wichtig?

Damit Programme für alle Menschen bedienbar sind, sollten sie Barrierefrei sein. Barrierefreiheit bei Java ermöglicht es, Programme zu entwickeln die für Menschen mit Behinderung uneingeschränkt nutzbar sind. Von Barrierefreier Software profitieren auch Menschen im fortgeschrittenen Alter. Barrierefreiheit ermöglicht es, dass alle Menschen Programme bedienen können.

Barrierefreiheit bei Java – Ich analysiere Ihre Software

Haben Sie eine Software entwickelt mit Java und möchten wissen wie es um die Barrierefreiheit steht? Ich kann Ihre Java Software auf Barrierefreiheit überprüfen und Ihnen danach mitteilen wie aufwendig es ist, die Barrierefreiheit bei Ihrer Java Software umzusetzen.

Barrierefreiheit bei Java – Sind Sie neugierig geworden?

Haben Sie ein Java-Programm welches Sie barrierefrei machen möchten?
Ich biete Schulungen an zur Barrierefreiheit mit Java oder analysiere ihr Java  Programm/Software auf Barrierefreiheit. Ich bin mir sicher dass Barrierefreiheit bei Java Programmen Zukunft hat.
Rufen Sie mich an: 07121/504458

Mehr Informationen zur Barrierefreiheit finden Sie in diesem Blogartikel:
Barrierefreie Software-Entwicklung mit Java

Warum ist die Java Access Bridge zur barrierefreien Software-Entwicklung mit Java wichtig?

Ich habe gerade einen Auftrag bei dem es darum geht eine Software, entwickelt mit der Programmiersprache Java, barrierefrei zu machen. Hierbei musste ich mich intensiv mit der Java Access Bridge beschäftigen. Was die Java Access Bridge ist und wofür Sie gebraucht wird, erfahren Sie in diesem Artikel.

Was eine Barrierefreie Software ist, wird in diesem Blogartikel erklärt
Was ist eine “barrierefreie Software”? (  ). Barrierefreie Software-Entwicklung bedeutet, dass eine Software so entwickelt ist dass sie von Menschen mit unterschiedlichen Behinderungen bedient werden kann. Die Programmiersprachen Java und C# eignen sich zur barrierefreien Software-Entwicklung.

Blinde und auch viele Sehbehinderte Menschen können den Computer nur mit einem Screenreader bedienen. Die schwierigste Aufgabe der barrierefreien Software-Entwicklung ist, die komplette Software für Blinde und Sehbehinderte komplett zugänglich zu machen. Hierzu gehört dass die Programmoberfläche Informationen für Screenreader bereitstellt. Sie müssen Swing-Komponenten zur Oberflächenprogrammierung verwenden. Jede Swing-Komponenten hat die Eigenschaft „AccessibleName“ und „AccessibleDescription“. Hier müssen Texte hinterlegt werden, welche den Screenreadern mitgeteilt werden.
Jetzt ist die Frage wie kommen die Informationen der Programmoberfläche zum Screenreader?

Es gibt bei Java eine Java Accessibility API (JAAPI). Die Java Accessibility API (JAAPI) Ermöglicht die Kommunikation zwischen Java-Anwendungen und Unterstützungstechnologien (zum Beispiel Screenreader oder Braille-Zeile). Die Java Access Bridge ist die Brücke zur Kommunikation zwischen den Unterstützungstechnologien wie Screenreader oder Braillezeile und der JAAPI.

Kurz gesagt, damit Ihre Software mit Screenreadern kommunizieren kann, muss die Java Access Bridge installiert sein. Da die Installation der Java Access Bridge nicht ganz einfach ist, werde ich diese in einem eigenen Artikel erklären.

Wie Sie die Java Access Bridge installieren, erfahren Sie in folgenden Blogartikel:
Wie installiere ich die Java Access Bridge? 

Richtlinien barrierefreie Software-Entwicklung für Java von Oracle

Da ich gerade einen großen Auftrag habe bei dem ich eine Java-Software barrierefrei machen darf, werde ich heute die Richtlinien von Oracle, die ich ins deutsche übersetzt habe wiedergeben.

Um barrierefreie Software-Entwicklung mit Java zu machen bedarf es Richtlinien. Diese Richtlinien orientieren sich an den Bedürfnissen von Menschen mit Behinderungen. Das Unternehmen Oracle hat die Programmiersprache Java entwickelt. Da Java die Voraussetzungen hat für barrierefreie Software-Entwicklung hat Oracle hierfür Richtlinien herausgegeben. Diese Richtlinien werde ich hier wiedergeben mit Erklärung:

1. Kriterium:
Wenn eine Komponente keinen ‘short string’ anzeigt, dann legen Sie einen Namen mit der setAccessibleName Methode fest. Sie können das auf ‚image-only buttons’, ‚panels’ mit logischer Gruppierung, Text Felder usw. Anwenden.

Erklärung:
Es kann grundsätzlich nichts schaden jeder Komponente einen AccessibleName zu geben. Der AccessibleName soll den Zweck der Komponente kurz beschreiben.
Zum Beispiel „Beenden-Schalter“. Auf jeden Fall sollte man, wann immer es geht und Sinn macht, Tooltips bei Komponenten angeben. Wie oben beschrieben werden die Tooltips auch in die Eigenschaft AccessibleDescription eingetragen.

2. Kriterium:
Wenn Sie eine Komponente nicht mit einem ‘tooltip’ versehen wollen, dann benutzen Sie die setAccessibleDescription Methode um eine Beschreibung über die Unterstützungstechnologie an den Benutzer weiter zu geben. Zum Beispiel: aJComponent.getAccessibleContext(). setAccessibleDescription(„Clicking this component causes XYZ to happen.“);

Erklärung:
In der Eigenschaft AccessibleDescription kann man einen längeren Text angeben, der den Sinn und Zweck der Komponente beschreibt. Dieser Text wird z.B. von Screenreadern gelesen und dem blinden oder sehbehinderten Menschen mitgeteilt.

3. Kriterium:
Sehen Sie, wo immer möglich, alternative Tastatureingaben vor. Sie sollten sicher stellen, das Ihr Programm nur mit der Tastatur bedient werden kann. Denken Sie daran das Sie aus einem editierbaren Feld mit ‚Shift-Tab’ den Fokus auf die nächste Text Komponente setzen können.

Erklärung:
Blinde und sehbehinderte Menschen arbeiten oft mit der Tastatur, weil das arbeiten mit der Maus nur dann funktioniert, wenn man genau sehen kann wo der
Mauszeiger ist. Deswegen ist es für beide Personengruppen wichtig, dass die Software auch per Tastatur bedienbar ist.

4. Kriterium:
Weisen Sie allen ImageIcon Objekten in Ihrem Programm eine textuelle Beschreibung zu. Sie können diese Eigenschaft festlegen, indem Sie entweder die setDescription Methode oder eines der String Formulare der ImageIcon Konstruktoren verwenden.

Erklärung:
Nicht nur auf Internetseiten, sondern auch bei Software haben blinde Menschen erhebliche Probleme mit Bildern/Grafiken. Stellen an den Bildern platziert sind, werden von Blinden als leere Fläche wahrgenommen. Deswegen ist es auch bei Software wichtig, dass man Bildern eine Textbeschreibung mit gibt, damit die Screenreader-Software dem Blinden was vorlesen kann.

5. Kriterium:
Wenn eine Gruppe von Komponenten eine logische Gruppe bilden, versuchen Sie diese in einen Container zu setzen. Verwenden Sie zum Beispiel ein JPanel das alle Radio-Buttons enthält die zu einer Radio-Button-Gruppe gehören.

Erklärung:
Das Gruppieren von Komponenten macht die Programmoberfläche übersichtlicher. Wenn die Container-Komponente noch einen sprechenden AccessibleName hat, kann das für einen Blinden eine enorme Erleichterung sein, um sich schneller auf der Programmoberfläche zu orientieren. Zum Beispiel könnte man Eingabefelder zum erfassen von einer Adresse in einen Container mit dem AccessibleName „Adressdaten“ gruppieren.

6. Kriterium:
Wann immer Sie ein Label verwenden welches eine andere Komponente beschreibt, verwenden Sie die setLabelFor Methode damit die Unterstützungstechnologie die Komponente finden kann die zu dem Label gehört. Dies ist besonders wichtig, wenn das Label eine Gedächtnisstütze für eine andere Komponente (z.B. ein Text Eingabefeld) ist.

Erklärung:
Dies hängt unmittelbar mit Punkt 3 zusammen. Hier geht es wieder u.a. darum, dass die Software auch per Tastatur bedienbar sein sollte. Außerdem können aber
auch Screenreader die Zusammenhänge zwischen Label und Eingabefeld so besser erkennen.

7. Kriterium:
Wenn Sie eine benutzerdefinierte Komponente erstellen, stellen Sie die Zugänglichkeit sicher. Insbesondere beachten Sie, dass Unterklassen von JComponent nicht automatisch zugänglich sind. Benutzerdefinierte Komponenten, die Nachkommen anderer Swing-Komponenten sind, sollten, wenn notwendig, die geerbten barrierefreie Informationen überschreiben.

Erklärung:
Wenn man Java-Komponenten selber entwickelt, sollte man darauf achten, dass diese auch barrierefrei sind.

8. Kriterium:
Verwenden Sie die Beispiele die Sie bei den Dienstprogrammen für Barrierefreiheit finden um Ihre Programm zu testen. Obwohl der primäre Zweck dieser Beispiele dafür gedacht ist den Umgang mit der Accessibility-API zu zeigen, sind sie auch sehr nützlich um Anwendungsprogramme auf Barrierefreiheit zu testen. Eine Prüfung auf Barrierefreiheit zeigt ScrollDemo die mit Monkey läuft. Monkey zeigt den Baum der zugänglichen Komponenten in einem Programm und ermöglicht es Ihnen mit diesen Komponenten interagieren.

Erklärung:
Es gibt Beispiele von Sun/Oracle zum Thema Accessibility

9. Kriterium:
Wenn Ihre GUI(=Programmoberfläche) einen Container hat der nicht zugänglich ist, zum Beispiel, Ihre eigene Container Unterklasse, eine JComponente oder einen anderen Behälter, die von dem Zugänglichkeitsdienstprogramm nicht erreicht wird, sind alle Komponenten in dem Container nicht erreichbar.

Erklärung:
Komponenten die in einem nicht barrierefreien Container sich befinden, sind für Eingabehilfen und andere unterstützende Software nicht erreichbar.

10. Kriterium:
Alle wichtigen Funktionen der Software sollten über Tastenkürzel(engl. Shortcuts) ansteuerbar sein.

Erklärung:
Sehbehinderte und Blinde, welche die Software nur per Tastatur bedienen profitieren von Tastenkürzel für wichtige Funktionen.

11. Kriterium:
Vermeiden Sie es Farb-und Schrifteigenschaften unveränderlich zu machen Die Software benötigt einen Einstellungsdialog für Farben und Schriftgrößen.
Wenn der Anwender in der Systemsteuerung die Schriftgröße verändert, muss die Software diese übernehmen!

Erklärung:
Menschen die Farbenblind sind, können eventuell mit den von Ihnen gewählten Farben Probleme haben. Deswegen sollte es in der Java-Anwendung ein Menü geben, in welchem der Anwender die Farben individuell einstellen kann.

12. Kriterium:
Vermeiden der Übermittlung wichtiger Informationen allein per Audioausgabe

Erklärung:
Stellen Sie sich vor, ein Mailprogramm würde das ankommen einer Mail nur akustisch signalisieren und die neue Mail wäre optisch nicht hervorgehoben. Gehörlose Menschen hätten keine Chance das eingehen von neuen Mails war zu nehmen. Deswegen ist es wichtig, dass man sich nicht nur auf Audioausgabe verlässt.

barrierefreie Programme, barrierefreie Anwendungen, barrierefreie Software mit Java und C# / .net

In diesem Blogartikel geht es noch mal um barrierefreie Programme, barrierefreie Anwendungen, barrierefreie Software und warum die Programmiersprachen Java und C# / .net sich hierfür sehr gut eignen.

Was bedeutet barrierefreie Programme, Anwendungen und Software? Die Begriffe Programm, Anwendung und Software meinen das gleiche. Ich gebe hier die Wikipedia-Definition von Computerprogramm wieder:

Ein Computerprogramm oder kurz Programm ist eine Folge von den Regeln einer bestimmten Programmiersprache genügenden Anweisungen (bestehend aus Deklarationen und Instruktionen), um auf einem Computer eine bestimmte Funktionalität, Aufgaben- oder Problemstellung bearbeiten/lösen zu können.

Ein Programm / eine Anwendung / eine Software ist barrierefrei wenn sie auf die Einschränkungen von Menschen mit unterschiedlichen Behinderungen Rücksicht nimmt.
Zunächst möchte ich die Frage klären, welche Voraussetzungen eine Programmiersprache haben muss damit mit Ihr barrierefreie Programme bzw. barrierefreie Anwendungen bzw. barrierefreie Software entwickeln kann.

Die schwierigste Herausforderung ist, dass eine Software für Blinde und Sehbehinderte bedienbar ist. Hierfür muss eine Programmoberfläche Informationen für Screenreader bereitstellen. In Deutschland leben ca. 155 000 blinde und etwa eine halbe Million sehbehinderte Menschen. Die Programmiersprache Java, hier die Swing-Komponenten, und die Programmiersprache C# bieten die Möglichkeit Beschreibungstexte der Programmoberflächen für Screenreader zu hinterlegen.

Damit die Programmoberfläche mit dem Screenreader und sonstigen Eingabehilfen kommunizieren kann bedarf es ein Schnittstelle. Früher war es bei Windows /.net die Microsoft Active Accessibility abgekürzt, MSAA. Microsoft hat die Schnittstelle umbenannt und verbessert. Jetzt heißt sie „Benutzeroberflächenautomatisierung und Microsoft Active Accessibility“.

Bei der Programmiersprache Java heißt die Schnittstelle „Java Access Bridge“. Sie ist von Haus aus nicht bei Windows dabei, sondern muss erst installiert werden. Die Installation war bisher sehr abenteuerlich. Seit der Java Runtime Environment 7 wird die Java Access Bridge mit installiert. Allerdings muss sie nach der Installation noch aktiviert werden. Ich werde in Kürze einen extra Artikel über die Java Access Bridge schreiben.

Ein weiteres wichtiges Kriterium für barrierefreie Programme, barrierefreie Anwendungen und barrierefreie Software ist das übernehmen von Systemeinstellungen. Sehbehinderte ändern unter Umständen die Größe der Systemschrift. Diese Änderungen muss von einem barrierefreien Programm übernommen werden. Auch hier bieten die Programmiersprachen Java und C# Möglichkeiten.

Die Firmen IBM, Oracle und Microsoft haben Richtlinien entwickelt, welche Kriterien eine Anwendung erfüllen muss, damit sie als barrierefrei bezeichnet wird. Diese Richtlinien werde ich auch noch auf diesem Blog veröffentlichen.

Barrierefreie Softwareentwicklung – Was ist das?

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

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 Software-Entwicklung – Die gesetzliche Grundlage

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

§ 12 Barrierefreie Informationstechnik

(1) Träger öffentlicher Gewalt im Sinne des § 1 Absatz 2 Satz 1 gestalten ihre Internetauftritte und -angebote sowie die von ihnen zur Verfügung gestellten grafischen Programmoberflächen, einschließlich Apps und sonstiger Anwendungen für mobile Endgeräte, die mit Mitteln der Informationstechnik dargestellt werden, nach Maßgabe der nach Satz 2 zu erlassenden Verordnung schrittweise technisch so, dass sie von Menschen mit Behinderungen grundsätzlich uneingeschränkt genutzt werden können. Das Bundesministerium für Arbeit und Soziales bestimmt durch Rechtsverordnung, die nicht der Zustimmung des Bundesrates bedarf, nach Maßgabe der technischen, finanziellen und verwaltungsorganisatorischen Möglichkeiten

  1. die in den Geltungsbereich der Verordnung einzubeziehenden Gruppen von Menschen mit Behinderungen,
  2. die anzuwendenden technischen Standards sowie den Zeitpunkt ihrer verbindlichen Anwendung,
  3. die zu gestaltenden Bereiche und Arten amtlicher Informationen.

(2) Träger öffentlicher Gewalt im Sinne des § 1 Absatz 2 Satz 1 gestalten ihre allgemeinen, für die Beschäftigten bestimmten Informationsangebote im Intranet sowie ihre elektronisch unterstützten Verwaltungsabläufe, einschließlich Verfahren zur elektronischen Vorgangsbearbeitung und elektronischen Aktenführung, schrittweise barrierefrei. Hierzu ist die Barrierefreiheit entsprechend den allgemein anerkannten Regeln der Technik, insbesondere bei Neuanschaffungen, Erweiterungen und Überarbeitungen, bereits bei der Planung, Entwicklung, Ausschreibung und Beschaffung zu berücksichtigen. Von dem Gebot der barrierefreien Gestaltung kann abgesehen werden, wenn die barrierefreie Gestaltung unverhältnismäßigen technischen Aufwand erfordert. Die Regelungen zur behinderungsgerechten Einrichtung und Unterhaltung der Arbeitsstätten zu Gunsten von Menschen mit Behinderungen in anderen Rechtsvorschriften, insbesondere im Neunten Buch Sozialgesetzbuch, bleiben unberührt. Die obersten Bundesbehörden erstellen bis zum 30. Juni 2021 Berichte über den Stand der Barrierefreiheit der Informationsangebote und Verwaltungsabläufe nach Satz 1 und verbindliche und überprüfbare Maßnahmen- und Zeitpläne zum weiteren Abbau von Barrieren.
(3) Die Bundesregierung wirkt darauf hin, dass auch gewerbsmäßige Anbieter von Internetseiten sowie von grafischen Programmoberflächen, die mit Mitteln der Informationstechnik dargestellt werden, durch Zielvereinbarungen nach § 5 ihre Produkte entsprechend den technischen Standards nach Absatz 1 gestalten.

Anmerkung von Markus

Im Klartext steht da, das Behörden dazu verpflichtet sind, ihre Webseiten und Software so zu gestalten das diese für Menschen mit unterschiedlichen Behinderungen bedienbar sind. Dieses Gesetz war also die Geburtsstunde der Barrierefreiheit in der Informationstechnik und der barrierefreie 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.

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 von den Begriff „barrierefreie Programmierung“ zu verwenden. Software wird heute nicht mehr programmiert, sondern entwickelt. Deswegen wird der Entstehungsprozess einer Software “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 Software-Entwicklung sind Menschen mit Behinderungen und zum Teil Menschen im fortgeschrittenen Alter. Was sind Barrieren bei Software?

Barrierefreie Software-Entwicklung – 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önnte 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 meiner 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 benötigt es?

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 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!

Barrierefreie Software-Entwicklung – die Wahl der Programmiersprache

Welche Programmiersprachen unterstützen barrierefreie Software-Entwicklung? Java war die erste, welche barrierefreie Software-Entwicklung unterstützte. Das Microsoft .net-Framework insbesondere die Programmiersprache C# unterstützt ebenso die barrierefreie Software-Entwicklung! 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.

Neu: Barrierefreiheit: barrierefreie Softwareentwicklung mit JavaFX

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:

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. Es wurde den Rahmen dieses Artikels sprengen hier alle Richtlinien aufzuführen. Leider gibt es keine einheitlichen Richtlinien wie bei barrierefreies Webdesign. Deswegen nachstehend ein paar zur barrierefreien Softwareentwicklung mit Java und Microsoft Dotnet.
Die original Richtlinien für barrierefreie Softwareentwicklung für die Programmierspache 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 auf 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 .

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: 07121/504458
E-Mail: info@marlem-software.de
Ich biete:

  • Analyse Ihrer Software zu barrierefreie Softwareentwicklung
  • Beratung zu barrierefreie Softwareentwicklung
  • Schulung zu barrierefreie Softwareentwicklung
  • Unterstützung bei der Umsetzung der barrierefreie Softwareentwicklung

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