Barrierefreie Software mit JavaFX

Seite 4: Hoher Farbkontrast

Inhaltsverzeichnis

Menschen mit einer Farbenfehlsichtigkeit können einer Farbe nicht immer den richtigen Namen geben. Außerdem wissen sie nicht, welche Farben zusammen passen. Wenn eine Software eine dunkle Hintergrund- und eine dunkle Schriftfarbe hat, ist sie für viele Menschen mit einer Farbenfehlsichtigkeit nicht zu bedienen, weil sie Beschriftungen von Schaltern und Eingabefeldern nicht erkennen können. Deswegen sollten Entwickler bei der Farbgestaltung von Programmfenstern auf einen guten Farbkontrast achten. Eine gute Hilfe hierfür ist das kostenlose Programm Colour Contrast Analyser. Mit ihm lässt sich überprüfen, ob ein Farbkontrast barrierefrei ist oder nicht.

Jetzt gibt es aber ein Problem: Eine JavaFX-Anwendung übernimmt den hohen Kontrast nicht automatisch – einer von mehreren Fehlern bei JavaFX. In der Main-Methode der JavaFX-Anwendung ist deswegen der hohe Kontrast per Java-Code abzufragen und ein hoher Kontrastmodus zu setzen:

public static void main(String[] arguments) {
if (arguments.length == 1) {
startUpPath = arguments[0];
}
// Barrierefreiheit: Abfrage, ob im Betriebssystem Windows hoher Kontrast
// aktiviert ist, wenn ja, wird er übernommen
Toolkit toolkit = Toolkit.getDefaultToolkit();
isHighContrast = (Boolean) toolkit.getDesktopProperty("win.highContrast.on");
if (isHighContrast) {
System.setProperty("com.sun.javafx.highContrastTheme", "whiteOnBlack");
}
launch();
}

Mit diesem Code fragt die Java-Anwendung ab, ob im Betriebssystem ein hoher Kontrast aktiv ist, und wenn ja, dann setzt sie den hohen Kontrast "whiteOnBlack". Der Haken ist, dass sich mit JavaFX nicht abfragen lässt, welcher Kontrastwert im Betriebssystem gesetzt ist. Es kann nur abgefragt werden, ob der hohe Kontrastmodus aktiv ist. Deswegen müssen Entwickler entscheiden, welchen hohen Kontrast ihre JavaFX-Anwendung übernehmen soll. Wie oben erwähnt, findet sich das im Code "whiteOnBlack".

Hoher Kontrast-Modus von Windows

Um testen zu können, ob eine JavaFX-Anwendung in diesem Modus bedienbar ist, stellt man den Kontrast in Windows bei Einstellungen | Erleichterte Bedienung | Hoher Kontrast ein. Danach müssen Entwickler die Java-Anwendung starten und überprüfen, ob der hohe Kontrast übernommen wurde. Als Zweites müssen sie nachschauen, ob trotz hohem Kontrast die Anwendung für Menschen mit Farbfehlsichtigkeit bedienbar ist. Das geht mit dem erwähnten Colour Contrast Analyser. Ist der Farbkontrast zwischen Hintergrund- und Schriftfarbe nicht barrierefrei, dann sind weitere Farbanpassungen erforderlich.

Sind alle aufgeführten Punkte umgesetzt, ist die JavaFX-Anwendung für blinde und sehbehinderte Menschen barrierefrei.

Markus Lemcke
ist Software- und Webentwickler, Dozent sowie Berater in Sachen IT-Barrierefreiheit.
(ane)