Ein Traum geht weiter 2018: Marlem-Software macht Java-Software barrierefrei

Liebe Blogleser, ich habe heute einen Rahmenvertrag unterschrieben. Aber bevor ich dazu komme, muss ich die Vorgeschichte erzählen.

Marlem-Software geht im Jahr 2000 online

Im Jahr 2000 ging die Webseite www.marlem-software.de online. Damals nicht als Unternehmen, sondern als private Webseite. Mein Ziel war Software barrierefrei zu machen.

„Ein Traum geht weiter 2018: Marlem-Software macht Java-Software barrierefrei“ weiterlesen

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

Beispielcode – Barrierefreiheit mit Java Swing

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!

Barrierefreiheit mit JavaFX

JavaFX ist ein Framework zur Erstellung von Java-Software die auf allen Betriebssystemen laufen(plattformunanhängig sind).

Wie Sie barrierefreie Softwareentwicklung mit JavaFX umsetzen finden Sie hier:

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 Softwareentwicklung 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.