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 Software-Entwicklung: 50+

In diesem Blogartikel erfahren Sie welche Probleme Menschen die über 50 Jahre sind, bei der Bedienung von Software haben. Selbstverständlich ist 50+ keine Behinderung.

Sicher sind Sie verwundert, dass ich in einer Blogartikelreihe über barrierefreie Softwareentwicklung Menschen mit 50+ erwähne. Selbstverständlich möchte ich nicht Menschen mit 50+ diskriminieren. Jedoch können Menschen mit 50+ die selben Probleme bei der Bedienung von Software haben wie Menschen mit bestimmten Behinderungsarten.

Die Zahl der Menschen mit 50+ welche am Computer arbeiten steigt stetig an. Computerarbeit hat den Vorteil, dass sie bei Einschränkungen der körperlichen Belastbarkeit oder Beweglichkeit dennoch durchgeführt werden kann. Deswegen sind Menschen mit 50+ eine wichtige Zielgruppe auch für Softwarehäuser/Software-Entwickler.

Menschen mit 50+ können Probleme bei unübersichtlichen Programmoberflächen haben. Kleine Schriften bei Beschriftungen z. B. Von Eingabefeldern können ebenso ein Problem sein für Menschen mit 50+. Ebenfalls kann es durch das nachlassen der Sehkraft problematisch sein, wenn zwischen Hintergrund-und Schriftfarbe zu wenig Kontrast vorhanden ist.

Wie die Probleme von Menschen mit Lernbehinderung bei der Software-Entwicklung gelöst werden können, erfahren Sie im Artikel „Wie kann eine Software für Menschen mit 50+ barrierefrei gemacht werden?

Barrierefreie Software-Entwicklung: Lernbehinderungen

In diesem Blogartikel erfahren Sie die Definition von Lernbehinderung und welche Probleme Menschen mit einer Lernbehinderung bei der Bedienung von Software haben.

Den Begriff Lernbehinderung gibt es seit 1960. Lernbehinderung zu definieren ist nicht ganz leicht. Die Kanter-Definition lautet „langandauerndes, schwerwiegendes und umfängliches Schulleistungsversagen“. In der Regel geht eine Lernbehinderung mit einer Beeinträchtigung der Intelligenz einher, die jedoch nicht so schwerwiegend ist, dass es sich um einen Fall von geistiger Behinderung handelt. Laut Wikipedia ist das die „beste“ Definition von Lernbehinderung. Mir persönlich sträuben sich die Nackenhaare, wenn ich solche Begriffe wie „Schulleistungsversagen“ lesen muss. Ich möchte es etwas netter formulieren. Für mich ist Lernbehinderung eine Beeinträchtigung des Lernvermögens die unterschiedlich stark sein kann. Das Problem ist, das die Lernbehinderung völlig unterschiedliche Ausprägungen haben kann. Es gibt eine Lese-Rechtschreib-Schwäche, einen Leserückstand, eine Rechenschwäche, eine isolierte Rechtschreibschwäche, und andere Einschränkungen.

Sie ahnen es wahrscheinlich schon. Es ist nicht ganz leicht zu definieren in welchen Bereichen Menschen mit Lernbehinderung Probleme im Umgang mit Software haben. Die Probleme von Lernbehinderten sind sehr unterschiedlich. Dennoch gibt es ein paar generelle Aussagen die ich machen kann.

Lange und verschachtelte Sätze, sind für viele Menschen mit Lernbehinderung ein Problem. Fachausdrücke sind für viele Menschen mit Lernbehinderung ebenfalls sehr problematisch. Software bei der Fragen schriftlich beantwortet werden müssen und es auf eine korrekte Rechtschreibung beim beantworten ankommt, sind ein Problem für Menschen mit Lernbehinderung. Unübersichtliche Eingabemasken können für Menschen mit Lernbehinderung ebenso ein Problem sein.

Wie die Probleme von Menschen mit Lernbehinderung bei der Software-Entwicklung gelöst werden können, erfahren Sie im Artikel „Wie kann eine Software für Lernbehinderte barrierefrei gemacht werden?

Barrierefreie Software-Entwicklung: Gehörlose

In diesem Blogartikel erfahren Sie die Definition von Gehörlosigkeit und welche Probleme gehörlose Menschen bei der Bedienung von Software haben.

Gehörlosigkeit wird in der Medizin als Taubheit bezeichnet. Gehörlosigkeit ist eine Behinderung. Gehörlosigkeit kann angeboren oder erworben sein. Die erworbene Taubheit kann durch Scharlach, Masern, Tuberkulose oder Mittelohr-Erkrankungen entstehen.

Die angeborene Taubheit kann vor der Geburt durch Röteln, Vererbung oder Syndrome entstehen. Gehörlose haben oft Schwierigkeiten beim Sprechen, weil Sie ja nicht hören können, wie geschriebene Wörter gesprochen werden. Deswegen verwenden sie zur Kommunikation die Gebärdensprache. Die Gebärdensprache ist eine Visuelle Sprache. Die Gebärdensprache besteht aus Zeichenkombinationen die mit Händen, Mimik und Mund gebildet werden.

Bei der Bedienung von Software haben gehörlose Menschen wenig Probleme. Da Menüs und Schalter Visuelle Elemente sind, gibt es hier keine großen Probleme.

Kennen Sie die Fernsehwerbung in der das Mail-Programm spricht „Sie haben Post!“?
Angenommen, das Mail-Programm würde nur sprechen und würde neue Mails nicht visuell hervorheben, z. B. Durch Fettdruck, dann hätten Gehörlose ein Problem zu erkennen, welche Mails Sie noch nicht gelesen haben. Eine Hilfe, in einer Software, welche auf Videos mit Ton basiert, ist für gehörlose Menschen ebenso nicht zugänglich.

Also überall da, wo innerhalb einer Software bestimmte Informationen nur per Audio zur Verfügung stehen, haben gehörlose Menschen ein Problem.

Wie die Probleme von Gehörlosen Menschen bei der Software-Entwicklung gelöst werden können, erfahren Sie im Artikel „Wie kann eine Software für Gehörlose barrierefrei gemacht werden?

Barrierefreie Software-Entwicklung: Blinde


In diesem Blogartikel erfahren Sie die Definition von Blindheit und welche Probleme blinde Menschen bei der Bedienung von Software haben.

Blindheit ist eine Form von Sehbehinderung. Blinden Menschen fehlt das visuelle Wahrnehmungsvermögen ganz. Blindheit kann angeboren sein oder während des Lebens durch Unfall oder Krankheit entstehen. Wenn die Blindheit beide Augen betrifft, ist sie eine schwere Behinderung. Blinde haben einen Rechtsanspruch auf Blindengeld um die behinderungsbedingten Nachteile auszugleichen.

Hier stellt sich vielleicht für viele Blogleser die Frage, ob Blinde überhaupt einen Computer bedienen können. Menschen die gar nichts sehen können, sind auf keinen Fall in der Lage einen Computer mit der Maus zu bedienen. Ist Windows ohne Maus überhaupt zu bedienen?

Drücken Sie mal, es ist egal welches Windows sie haben, die Tasten Strg+Esc gleichzeitig. Schon öffnet sich das Startmenü. Nun können Sie mit der Cursortaste hoch und Cursortaste runter durch das Startmenü navigieren. Wenn Sie einen Menüpunkt auswählen möchten, drücken Sie die Taste „Enter“. Sie sehen, Windows lässt sich sehr wohl mit der Tastatur bedienen. Aber woher weiß der Blinde was momentan auf dem Bildschirm angezeigt wird?

Es gibt da ein Programm mit Namen Screenreader. Screenreader bedeutet auf deutsch „Bildschirmleser“. Ja, blinde Menschen können mit einer Screenreader-Software den Bildschirm lesen. Lesen und sehen ist aber nicht das gleiche. Grafiken und Bilder können nicht gelesen werden.

Durch logische Schlussfolgerung wissen wir jetzt wann blinde Menschen bei der Bedienung von Software Probleme haben.

Software die nur mit der Maus und nicht per Tastatur zu bedienen ist, kann von Blinden nicht bedient werden. Schaltflächen die nur eine Grafik besitzen und für den Screenreader keinen Text bereitstellen sind für Blinde nicht zu bedienen.
Videos sind selbstverständlich ebenfalls nicht wahrnehmbar für blinde Menschen.
So bald eine Programmoberfläche komplett aus Grafiken besteht, die für den Screenreader keinen Text bereitstellen, ist sie für blinde Menschen nicht zu bedienen.

Wie die Probleme von blinden Menschen bei der Software-Entwicklung gelöst werden können, erfahren Sie im Artikel „Wie kann eine Software für Blinde barrierefrei gemacht werden?