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.

Barrierefreie Programmoberfläche mit JavaFX
Barrierefreie Programmoberfläche mit JavaFX

Für Leute die lieber ein Video als einen Blogartikel zu lesen gibt es jetzt ein Youtube-Video:

Die Software Screenreader-tauglich machen

Die Eigenschaften „AccessibleRoleAccessibleRoleDescriptionAccessibleText und AccessibleHelp“ werden von Screenreadern vorgelesen, wenn sie befüllt sind. Alle Barrierefreiheit-Eigenschaften befinden sich in der Klasse javafx.scene.Node.

Die Eigenschaft „AccessibleRole“

Diese Eigenschaft beschreibt für die Barrierefreiheit die „Rolle“ einer Komponente.
Die Rolle wird von assistiven Technologien wie Screenreadern verwendet, um die Menge der Aktionen und Attribute für einen Knoten zu entscheiden.
Beispiele: btnWebAnalyse.setAccessibleRole(AccessibleRole.BUTTON);
tfWebadresse.setAccessibleRole(AccessibleRole.TEXT_FIELD);

Die Eigenschaft „AccessibleRoleDescription“

Wenn die Eigenschaft „AccessibleRoleDescription“ gesetzt ist, liest der Screenreader diese Eigenschaft vor.
Beispiele:

tfWebadresse.setAccessibleRoleDescription("Webadresse eingeben mit http://");
btnWebAnalyse.setAccessibleRoleDescription("Schalter zum Starten der Analyse auf Barrierefreiheit. Es wird die eingegebene Webadresse nach Kriterien der BITV 2.0 analysiert!");

Die Eigenschaft „AccessibleText“

In der Regel liest ein Screenreader den Inhalt des Knotens vor. Wenn diese Eigenschaft gesetzt ist, dann wird der Text dieser Eigenschaft vorgelesen.

Die Eigenschaft AccessibleHelp

Der Hilfetext enthält eine detailliertere Beschreibung für die Barrierefreiheit des Knotens. Wenn der Knoten einen Tooltipp hat, wird dieser Text standardmäßig verwendet.

Die Tastaturbedienbarkeit der Software

Damit Blinde und Sehbehinderte eine Software bedienen können, ist es wichtig, dass die ganze Software per Tastatur bedienbar ist. Dazu gehört auch, dass Beschriftungen mit Eingabefelder verknüpft sind.
Dies macht man mit LabelFor:
lblWebadresse.setLabelFor(tfWebadresse);

Damit Blinde und Sehbehinderte einzelne Eingabefelder direkt anspringen können, ist es sinnvoll den Beschriftungen Tastenkürzel hinzuzufügen.
Beispiel:
Label lblWebadresse = new Label("_Webadresse:");

Der Unterstrich vor dem Buchstaben W sorgt dafür, dass mit der Tastenkombination Alt+W die Beschriftung bzw. dass damit verbundene Eingabefeld für Webadresse angesprungen werden kann. Die Zuweisung von Tastenkürzeln mit „_“ funktioniert nur, wenn die Eigenschaft mnemonicParsing auf true gesetzt ist.

Kurzhilfe mit Tooltipps

Tooltipps sind eine gute Möglichkeit Ihrer Software kurze Hilfetexte hinzuzufügen. Das macht die Anwendung bedienungsfreundlicher.
Hier ein Beispiel:
btnWebAnalyse.setTooltip(new Tooltip("Schalter zum Starten der Analyse auf Barrierefreiheit"));

Barrierefreiheit bei Java testen

Eine Java-Software automatisiert testen geht nicht. Die Kriterien sind zu komplex für eine automatisiertes Testen. Deswegen empfehle ich ein Testen nach den Richtlinien von Oracle:

Schlussbemerkung Barrierefreiheit: barrierefreie Softwareentwicklung mit JavaFX

Durch den Wegfall der Java Access Bridge hat die barrierefreie Softwareentwicklung und vor allem die Weitergabe einer Software stark vereinfacht. Ich habe eine Beispiel-Anwendung mit dem kostenlosen Screenreader NVDA getestet und es hat sehr gut funktioniert.
Leider hat Oracle gerade ein Problem die Webseiten für Accessibility bei Java zu aktualisieren. In Oracles „Java Accessibility Guide“ wird noch immer Swing empfohlen zur barrierefreien Softwareentwicklung mit Java.
Ich kann jedoch mit gutem Gewissen die Barrierefreiheit bzw. barrierefreie Softwareentwicklung mit JavaFX empfehlen.

Autor: Markus Lemcke

Barrierefreies Webdesign
Barrierefreie Softwareentwicklung (Java + Microsoft.net)
Barrierefreiheit bei Betriebssystemen(Windows, Android, IOS, Linux)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.