Accessibility: Barrierefreie Software entwickeln und testen mit .net bzw. C#

In diesem Artikel finden Sie eine Zusammenfassung der letzten 3 Artikel zum Thema barrierefreie Software entwickeln und testen mit .net bzw. C#.

Nachdem die Programmiersprache Java schon lange die Voraussetzungen für barrierefreie Software-Entwicklung hatte, hat Microsoft mit .net bzw. C# nachgezogen.
Die .net-Technologie hat die Voraussetzung geschaffen, dass Standardsoftware barrierefrei entwickelt werden kann. Das ist ein sehr großer Fortschritt.

Nun muss es „nur“ noch umgesetzt werden!
Ich möchte hier die Gelegenheit nutzen um zur erläutern, warum es so wichtig ist, eine Software barrierefrei zu entwickeln. Für viele behinderte Menschen ist das arbeiten am Computer die einzige Möglichkeit beruflich tätig zu werden.
Ich habe eine Körperbehinderung. Ich bin sehr stark Gehbehindert und meine rechte Hand ist sehr stark bewegungseingeschränkt. Sämtliche Handwerksberufe sind undenkbar für mich. Berufe bei denen man viel stehen muss, fallen wegen meiner Gehbehinderung und muskelbedingten Gleichgewichtsstörung auch weg. Die einzige Möglichkeit ist die Arbeit am Computer. Es gibt außer mir noch viele andere behinderte Menschen die nur mit Hilfe eines Computers arbeiten können.
Damit ein Mensch mit Behinderung am Computer arbeiten kann, müssen Internetseiten und Programme bedienbar sein. Deswegen ist die Entwicklung von barrierefreier Software so wichtig.

Ich würde mich sehr freuen, wenn meine Blogartikel:
Richtlinien zur barrierefreier Software-Entwicklung ( Accessibility ) mit .net bzw. C#

Barrierefreie Software-Entwicklung (=Accessibility) mit .net bzw. C#

Wie kann Barrierefreie Software entwickelt mit .net bzw. C# auf Barrierefreiheit (Accessibility ) getestet werden

dazu beitragen würden, dass Software die mit .net bzw. C# entwickelt wird, barrierefrei ist.

Wie kann barrierefreie Software entwickelt mit .net bzw. C# auf Accessibility getestet werden

Im Artikel „Barrierefreie Software-Entwicklung (=Accessibility) mit .net bzw. C#“ ging es darum wie man mit .net barrierefreie Software entwickelt. In diesem Artikel möchte ich besprechen wie man Barrierefreiheit bei Software die mit .net bzw. C# entwickelt wurde testen kann.

 

Trotz redlicher Bemühungen die Software barrierefrei zu entwickeln, kann es sein, dass man etwas vergisst oder übersehen hat. Deswegen sollte man, bevor man einer Software das Prädikat „barrierefrei“ verleiht, testen ob dies auch zutrifft. Da es höchst unwahrscheinlich ist, dass jeder Software-Entwickler einen Menschen mit Behinderung greifbar hat, welcher die Software testet, ist es sinnvoll, dass hierfür Tools entwickelt worden sind. Microsoft hat zwei Open Source-Tools entwickelt um Barrierefreiheit bei Software zu testen. Das eine Tool heißt „UI Automation Verify“ und das andere „UI Accessibility Checker“.
„UI Automation Verify“ ist ein Framework um Microsoft UI-Automation-Implementierungen automatisiert Prüfen zu können. Ich möchte mich in diesem Abschnitt mit dem AccChecker genauer beschäftigen.
Den AccChecker gibt es als Konsolen- und Windows-Anwendung. Ich werde hier das Verfahren mit der Windows-Anwendung beschreiben die sich hinter der AccCheckUI.exe verbirgt. Ob man zuerst den AccChecker und dann die zu testende Anwendung startet oder umgekehrt ist egal. Links oben im Acc-Checker-Fenster gibt es nun 3 Möglichkeiten, das zu prüfende Fenster bzw. Anwendung auszuwählen.
Ich entscheide mich für das auswählen eines Fensters aus der auf klappbaren Liste, weil es wohl am einfachsten ist. Unten kann ich ein „suppression file“ auswählen in dem ich festlegen, kann welche Fehler ignoriert werden. Auf der rechten Seite gibt es die Überschrift „Verification Routines“. Hier kann angeklickt werden, welche Dinge überprüft werden soll. Da die Dokumentation nicht gerade ein Highlight ist und zum Teil gewisse Fakten verschweigt, möchte ich nachfolgend diese Optionen etwas erläutern und berichten, wie es mit der Praxistauglichkeit aussieht.
Wir fangen an mit den Eigenschaften.

CheckAccessKeys
Wenn diese Option angeklickt ist, wird überprüft ob ein Accesskey doppelt vergeben ist.Leider bekommt man nur mitgeteilt wo der Accesskey zum zweiten mal vorkommt, wo er aber das erste mal vorkommt muss man selbst herausfinden.enn an einen Menü oder Schalter kein Accesskey vergeben wurde, wird einem das nicht mitgeteilt.

CheckRole
Hier kann überprüft werden ob den einzelnen Komponenten eine AccessibleRole vergeben wurde oder nicht. Standardmäßig ist im Eigenschaftenfenster von Visual Studio 2008 default eingestellt bei der Eigenschaft „AccessibleRole“. Wenn hier als Wert „None“ angegeben wird, bringt der AccChecker eine Fehlermeldung.

CheckBoundingRect
Diese Überprüfungsroutine bestätigt, dass jedes fokusierbare Element der Benutzeroberfläche eine rechteckige Begrenzung hat, die für Anklick-Tests genutzt werden kann.

CheckState
Diese Überprüfungsroutine bestätigt, dass jedes fokusierbare Element der Benutzeroberfläche einen gültigen, logischen Aktiven Zugänglichkeitsstatus zurück meldet.

CheckName
Diese Überprüfungsroutine bestätigt, dass jedes fokusierbare Element der Benutzeroberfläche einen gültigen, logischen Aktiven Zugänglichkeitsnamen zurück meldet.

Unter der der Überschrift Tree (Baum) finden Sie nachstehende Optionen

CheckNavigate
Diese Überprüfungsroutine benutzt die IAccessible::accNavigate Methode um zu bestätigen, dass die Navigation zwischen den „Eltern“, dem „Kind“ bzw. den „Geschwister Elementen übereinstimmend und vorhersehbar ist.

CheckParentChild
Diese Überprüfungsroutine bestätigt, dass Eltern->Kind-Beziehungen im Elementebaum übereinstimmend und vorhersehbar sind.

HitTesting
Diese Option ist im Programm nicht vorhanden, aber in der Dokumentation. Diese Überprüfungsroutine bestätigt, dass alle Elemente an den Koordinaten die durch „AccessibleObjectFromPoint angegeben werden gültig sind und sich innerhalb des überprüften Ziels befinden.

Consistency (=Konsistenz)

Screen Reader
Diese Überprüfungsroutine übersetzt alle sichtbaren Elemente des zu überprüfenden Ziels und zeigt sie in einer Listenansicht in der Reihenfolge, in welcher der Standard Screen Reader sie dem Benutzer meldet. Wenn diese Option ausgewählt wurde, erscheint im linken Teil des Fenster ein Register „Screen reader“.

Navigation
Tree Depth Check (CheckTreeDepth)

Zunächst ist zu erwähnen, dass es hier unterschiedliche Begriffe gibt. In der Programmoberfläche steht CheckTreeDepth und in der Dokumentation steht Tree Depth Check.
Diese Überprüfungsroutine sendet Tab oder Umschalt- Tab Zeichen als Eingangssignal an das zu überprüfende Ziel um zu bestätigen das die Benutzeroberfläche des Zielsystems für standard Tastatur Navigation weder allzu sehr komplex oder unerreichbar ist.

Check Tabbing
Diese Überprüfungsroutine sendet Tab oder Umschalt Tab Zeichen als Eingangssignal an das zu überprüfende Ziel um zu bestätigen das alle fokusierbaren Elemente das Benutzeroberfläche in einer geordneten Art und Weise über eine Standard Tastatur Navigation zu erreichen sind.

Soweit zu den Einstellungsmöglichkeiten des AccCheckers.
Hat man nun das zu prüfende Fenster ausgewählt und auf der rechten Seite die entsprechenden Optionen angeklickt, startet man die Überprüfung mit anklicken des Schalters „Run Verifications“.
Nach erfolgter Überprüfung erscheint oben ein Register „Results“, „Tree“ und bei entsprechend ausgewählter Option „Screen reader“. Wenn Sie im Register „Results“ keine Einträge sehen, heißt bedeutet dies, dass keine Fehler gefunden wurden und Ihre Anwendung somit barrierefrei ist.
Wurden Fehler gefunden werden diese im Register „Results“ angezeigt. Wenn man in der Liste „Results“ auf einen Fehler klickt, sieht man unten nähere Infos zu diesem Fehler. Sollte man mit der Fehlermeldung nichts anfangen können, kann man durch einen rechten Mausklick und das anklicken des Kontextmenüpunktes „Help“ eine genaue Beschreibung zum Fehler bekommen.

Accessibility: Barrierefreie Software-Entwicklung mit .net bzw. C#

Im Artikel „Richtlinien zur barrierefreier Software-Entwicklung ( Accessibility ) mit .net bzw. C#“ ging es um Richtlinien wie man mit .net barrierefreie Software entwickelt. In diesem Artikel geht es um die konkrete Umsetzung der Richtlinien.Sie erfahren in diesem Artikel konkrete Schritte zur Entwicklung von barrierefreie Software mit .net bzw. C#.

Im Artikel „Richtlinien zur barrierefreier Software-Entwicklung ( Accessibility ) mit .net bzw. C#“ ging es um Richtlinien wie man mit .net barrierefreie Software entwickelt. In diesem Artikel geht es um die konkrete Umsetzung der Richtlinien.Sie erfahren in diesem Artikel konkrete Schritte zur Entwicklung von barrierefreie Software mit .net bzw. C#.

Die erste Programmiersprache welche die Entwicklung von barrierefreie Software unterstützte war Java. Mehr dazu können Sie im Artikel „Barrierefreie Software-Entwicklung (Accessibility) mit Java“. Bei den Programmiersprachen Delphi und C++ fehlt eine Unterstützung von Haus aus.

Eine wichtige Voraussetzung für eine barrierefreie Software ist die Unterstützung von Eingabehilfen wie z. B. Screenreader. Damit diese Eingabehilfen die entsprechenden Informationen bekommen, besitzen .net-Komponenten haben hierfür folgende Eigenschaften:

AccessibleName:
Die Eigenschaft „AccessibleName“ ist eine Kurzbeschreibung der entsprechenden Komponente

AccessibleDescription:
Die Eigenschaft „AccessibleDescription“ ist eine Textbeschreibung der visuellen Darstellung dieser Komponente.

AccessibleRole:
Die Eigenschaft „AccessibleRole“ beschreibt die Aufgabe, die an Eingabehilfen übermittelt wird. Die zulässigen Werte werden von der AccessibleRole-Enumeration definiert. Der Wert wird von vielen Eingabehilfen verwendet, um zu ermitteln, um welche Art von Schnittstellenelement es sich bei dem Objekt handelt.

AccessibilityObject:
Enthält eine AccessibilityObject-Instanz, die für die Eingabehilfe Informationen über das Steuerelement enthält. Die Eigenschaft ist schreibgeschützt und wird vom Designer festgelegt.

AccessibleDefaultActionDescription:
Enthält eine Beschreibung der Standardaktion des Steuerelements. Diese Eigenschaft kann nicht zur Entwurfszeit festgelegt werden, sondern nur per Programmcode.

Hier kurz ein Beispiel wie man diese Eigenschaften setzt.

neuToolStripMenuItem.AccessibleName = „Datei neu“;
neuToolStripMenuItem.AccessibleDescription = „Neue Textdatei anlegen“;
neuToolStripMenuItem.AccessibleRole = AccessibleRole.MenuItem;

Des weiteren ist es wichtig wie oben schon erwähnt wird, dass die Software den Kontrastmodus unterstützt. Zum Unterstützen des Kontrastmodus kann folgende Methode verwendet werden:

privatevoid KontrastModus()

{

if (SystemInformation.HighContrast)

{

foreach (Control vControl inthis.Controls)

{

vControl.BackColor = SystemColors.Control;

vControl.ForeColor = SystemColors.ControlText;

}

}

}

Um die Bedienbarkeit der Software auch über Tastatur zu gewährleisten, ist es wichtig auf die Tabulatorreihenfolge zu achten. Jede .net-Komponmente hat eine Eigenschaft “TabIndex” welcher man eine Zahl übergeben kann. Mit dieser Zahl legt man fest, in welcher Reihenfolge die Komponenten aktiviert werden, wenn der Anwender die Tabulatortaste drückt.

Eine weitere Möglichkeit die Bedienbarkeit von Software über Tastatur zu verbessern, ist das vergeben von Shortcuts für Labels, Buttons, Grouboxen und Menüs. Das erstellen eines Shortcuts macht man, in dem man vor einem bestimmten Buchstaben einer Beschriftung ein “&”-Zeichen setzt. z. B. “&Suchen”.

Der Anwender kann nun durch gleichzeitiges drücken von der Taste “Alt” und “s” den Schalter Suchen aktivieren.

Bei Menüshortcuts ist es empfehlenswert dem Anwender eine Möglichkeit bereitzustellen, diese selber anzupassen,da Menschen, bei welchen behinderungsbedingt nur eine Hand funktionstüchtig ist, mit Tastenkombinationen Ihre Schwierigkeiten haben.

Wenn Sie alle diese Dinge berücksichtigen, haben Sie einen wichtigen Schritt in Sachen barrierefreie Software gemacht.

Accessibility: Richtlinien zur barrierefreier Software-Entwicklung mit .net bzw. C#

In diesem Blogartikel möchte ich die Richtlinien von Microsoft für .net bzw. C# zur barrierefreier Software-Entwicklung besprechen. Wenn eine Software barrierefrei ist, dann ist Sie für Menschen mit Behinderung verwendbar.

Im Artikel „Was ist eine barrierefreie Software“ habe ich erklärt welche Kriterien erfüllt werden müssen, damit eine Software barrierefrei ist. Microsoft hat in ihrer Dokumentation, die MSDN, Richtlinien veröffentlicht wie eine Standardsoftware barrierefrei bzw. behindertengerecht gemacht werden kann. Ich werde hier die Richtlinien wiedergeben und erklären.


Punkt 1: Unterstützung der Systemsteuerungseinstellungen für Größe, Farbe, Schriftart und Eingabe

Unterstützung der Systemsteuerungseinstellungen für Größe, Farbe, Schriftart und Eingabe. Wenn die Benutzer die Einstellungen der Systemsteuerung ändern, wird die Größe der Menüleiste, der Titelleiste, der Ränder und der Statusleiste automatisch geändert. In dieser Anwendung müssen keine weiteren Änderungen an den Steuerelementen oder dem Code vorgenommen werden

Erklärung:
Microsoft hat in jedem Windows, wie oben erwähnt, in der Systemsteuerung einige Einstellungsmöglichkeiten die Menschen mit Behinderung zu gute kommen. Deswegen ist es unabdingbar, dass eine entwickelte Software diese Einstellungen übernimmt und nicht ignoriert. Es wäre zum Beispiel kontraproduktiv, wenn ein Mensch mit einer Sehbehinderung sich in der Systemsteuerung große Schriftarten einstellt und in der Software erscheinen alle Zeichen in der Schriftgröße 10.


Punkt 2: Unterstützung des Kontrastmodus

Erklärung:
In der Eingabehilfe, die man in der Systemsteuerung findet, gibt es einen Reiter „Anzeige“. Hier findet man ein Kontrollkästchen mit der Beschriftung „Kontrast aktivieren“. Klickt man es an und aktiviert rechts unten den Schalter „Übernehmen“ wird der Kontrastmodus aktiviert. Die Aktivierung dauert ein bisschen. Nach und nach wird der Hintergrund Pech schwarz und überall erscheint eine weiße Schrift.Dieser Kontrastmodus darf durch eine Software nicht verändert oder verhindert werden.


Punkt 3: Bereitstellen eines dokumentierten Tastaturzugriffs auf alle Features

Erklärung:
Wie oben schon erwähnt, benutzen Menschen die blind oder sehbehindert sind, eher die Tastatur wie die Maus. Deswegen sollten alle Programmfunktionen auch über Tastatur erreichbar sein und die entsprechenden Tastenkürzel sollten in der Programmhilfe dokumentiert sein.


Punkt 4: Visuelle und programmgesteuerte Anzeige der Position des Tastaturfokus

Erklärung:
Für Menschen die hauptsächlich oder ausschließlich mit der Tastatur arbeiten ist es wichtig, schnell zu erkennen wo der Tastaturfokus ist. Aus diesem Grund muss der Tastaturfokus visuell angezeigt und erkennbar sein.


Punkt 5: Vermeiden der Übermittlung wichtiger Informationen allein per Audioausgabe

Erklärung:
Im Artikel weiter oben wurde es erwähnt, dass es Menschen gibt die gehörlos sind. Wenn wichtige Informationen nur per Audioausgabe zur Verfügung stehen, bekommen gehörlose Menschen die Informationen nicht mit. Deswegen sollten Informationen die per Audioausgabe zur Verfügung stehen auch in visueller Form angeboten werden. Ein Mail-Programm, welches dem Anwender nur über Sprache mitteilt, dass er neue Mails hat, wäre für gehörlose Menschen unbrauchbar.

Wenn diese 5 Punkte bei einer Standardsoftware erfüllt sind ist, laut Microsoft, eine Software barrierefrei.

Was sind Eingabehilfen?

Ob am Computer oder im Smartphone, immer wieder stolpert man über den Begriff Eingabehilfen. Was sich dahinter verbirgt, erfahren Sie in diesem Artikel.

Wenn man über die Bedeutung des Wortes „Eingabehilfen“ nachdenkt, kommt man auf die Idee es könnte sich hierbei um eine Hilfe zum Eingeben von Text handeln. Dies ist aber nur zum Teil richtig.

Das folgende Youtube-Video beantortet die Frage „Eingabehilfe – Was ist das?“.

Wer ist die Zielgruppe?

Eingabehilfen richten sich in erster Linie an Menschen mit Behinderung. Das Betriebssystem Windows hatte sogar schon für Windows 3.11 Eingabehilfen zum „nachrüsten“. Seit Windows 95 gehören Eingabehilfen zur Software standardmäßig dazu. Warum haben im Betriebssystem Windows die Eingabehilfen Einzug erhalten und sind kontinuierlich ausgebaut wurden?

Wer war das erste Unternehmen das Eingabehilfen hatte

Das Betriebssystem „Windows“ ist von der Software-Firma „Microsoft“. Microsoft ist ein amerikanisches Unternehmen. In Amerika wird aus juristischer Sicht, sehr viel wert darauf gelegt, dass keine Personengruppe benachteiligt bzw. diskriminiert wird. Dies hat zufolge, dass ein Computer-Software Menschen mit Behinderungen nicht benachteiligen darf. Somit sind amerikanische Software-Firmen, so auch Microsoft, mehr oder weniger dazu gezwungen auf Menschen mit Behinderungen Rücksicht zu nehmen.

Gibt es gesetzliche Bestimmungen?

In Deutschland gibt es seit Mai 2002 ein Gleichstellungsgesetz in dem es einen §12 Informationstechnologie gibt. In diesem Paragraphen steht drin, das staatliche Einrichtungen wie zum Beispiel Behörden dazu verpflichtet sind Ihre Programmoberflächen und Internetseiten barrierefrei zu gestalten. Nicht staatliche Einrichtungen sollten dies tun. Leider wird vom Staat die Umsetzung dieses Paragraphen nicht wirklich kontrolliert. Somit fühlen sich sehr wenig Menschen in Deutschland dazu verpflichtet dies umzusetzen. Das Klagerecht von behinderten Menschen gegen die nicht Umsetzung dieses Gesetzes ist sehr schwierig und somit gibt es in diesem Bereich weitaus weniger Gerichtsverhandlungen als in Amerika.

Allgemeines

Aber zurück zu den Eingabehilfen. Seit Microsoft das Betriebssystem Windows 95 auf dem Markt gebracht hat, gehören Eingabehilfen zum Lieferumfang des Computerprogramms. Bei Windows 95 findet man diese Unterstützung in der Systemsteuerung. Bei Windows 7 sind sie ins Zubehör in den Ordner „Erleichterte Bedienung“ gewandert.

Dieses Bild zeigt die Bildschirmtastatur von Windows 10
Dieses Bild zeigt die Bildschirmtastatur von Windows 10

Eine wichtige Eingabehilfe sind die Einrastfunktionen. Menschen bei denen eine Hand recht stark behindert ist, so dass diese kaum eingesetzt werden kann, habe große Probleme beim drücken von Tastenkombinationen. Tastenkombination bedeutet, dass man mehrere Tasten gleichzeitig drücken muss. Der berühmte Klammergriff, dass gleichzeitige drücken der Tasten Strg+Alt+Entf, ist wohl die unbeliebteste Tastenkombination für körperbehinderte Menschen die nur eine Hand verwenden können.

Die Einrastfunktionen der Eingabehilfe löst dieses Problem. Nach aktivieren der Einrastfunktionen bleiben Zusatztasten wie Strg, Umschalt oder Alt so lange gedrückt bis eine Zeichentaste gedrückt wurde. Allerdings hatte die Sache beim Betriebssystem „Windows NT“ einen haken. Zur Anmeldung bei Windows NT muss man den berühmten Klammergriff machen, sprich die Tasten Strg, Alt und Entf gleichzeitig drücken. Zu diesem Zeitpunkt konnte man aber die Hilfe nicht aktivieren! Man blieb von der Applikation „ausgesperrt“. Nach einigem Recherchieren fand ich heraus, dass ein Eintrag in die Windows-Registrierungsdatenbank das Problem löst. Danach startet das Windows NT durch ohne vom Anwender den Klammergriff abzuverlangen.

Eine weitere Eingabenunterstützung ist die Bildschirmlupe. Sie kam bei Windows 98 dazu, wenn ich es noch richtig im Kopf habe. Die Bildschirmlupe ist eine große Hilfe für Menschen mit einer Sehbehinderung. Die Bildschirmlupe vergrößert den aktuellen Bildschirminhalt.

Dann gibt es noch eine Bildschirmtastatur. Eine Bildschirmtastatur ist eine Software die eine Tastatur simuliert. Menschen die sehr schwer behindert sind, können manchmal mit einer Hardwaretastatur nicht arbeiten und helfen sich mit einer Bildschirmtastatur. Die Bildschirmtastatur von Microsoft gefällt mir recht gut. Sie hat sogar ein Wörterbuch damit nicht jedes Wort bis zu Ende fertig geschrieben werden muss.

Bei Windows 7 gibt es eine Spracheingabe und Sprachausgabe. Die Sprachausgabe ist Englisch und somit für Deutschland unbrauchbar. Die Spracheingabe habe ich noch nicht getestet. Vielleicht gibt das mal ein extra Blogartikel.

Zum Schluss möchte ich noch auf Smartphones kurz eingehen. Das Betriebssystem meines Handys „Samsung Galaxy S GT-I9000“  heißt Android. Hierfür gibt es ebenfalls Eingabehilfen. Die App „Talkback“, ist ein Screenreader der alles was auf dem Smartphone sich abspielt durch Sprache vorliest oder dokumentiert. Ruft das Handy zum Beispiel Mails ab, wird dies durch Sprachausgabe dem Benutzer mitgeteilt.

Die Eingabehilfe-App „Soundback“ gibt bei jeder Aktivität des Handys einen Ton zurück. Zum Beispiel wird das starten und beenden eines Programmes (=App) mit unterschiedlichen Tönen hinterlegt. Soundback ist eine wertvolle Hilfe für Sehbehinderte oder blinde Menschen.

Die Eingabehilfe-App „Kickback“ gibt durch Vibration „Rückmeldung“. Wenn der Anwender eine Anwendung startet oder beendet, wenn ein neues Symbol den Fokus hat oder es gibt dem Benutzer durch Vibration Rückmeldung, dass er einen Schalter erfolgreich gedrückt hat.

Das Smartphone hat noch mehr solcher Hilfen, auf die ich in einem extra Blogartikel eingehen werde.

Bedienungshilfen für Behinderte bei Android 6
Bedienungshilfen für Behinderte bei Android 6

Eingabehilfen / Barrierefreiheit bei Windows 10
Eingabehilfen / Barrierefreiheit bei IOS bzw. Apple
Eingabehilfen / Barrierefreiheit bei Android 5
Barrierefreiheit / Bedienungshilfen bei Android 6
Barrierefreiheit / Bedienungshilfen bei Linux – Ubuntu

Java-Software auf Barrierefreiheit (Accessibility) testen

Im letzten Artikel haben wir die Grundlagen der barrierefreien Software-Entwicklung mit der Programmiersprache Java angeschaut. In diesem Artikel schauen wir an, wie Java-Software auf Barrierefreiheit getestet werden können.

Angenommen Sie haben sich richtig Mühe gegeben Ihre Java-Software barrierefrei zu entwickeln und möchten nun wissen, ob die Software wirklich barrierefrei ist. Welche Möglichkeiten gibt es?

Zunächst mal muss man feststellen, dass unter Umständen barrierefrei nicht barrierefrei ist. Wenn eine Software für eine bestimmte Person oder Personengruppe(z. B. Blinde Menschen) mit einer bestimmten Behinderung barrierefrei gemacht werden soll, ist das nicht so zeitaufwendig, wie eine barrierefreie Software die alle möglichen Behinderungsarten berücksichtigen soll.

Ein Software die für blinde Menschen barrierefrei entwickelt werden soll, kann anschließend von einem blinden Menschen auf Barrierefreiheit getestet werden.Wenn eine Software sämtliche Behinderungsarten berücksichtigen soll ist diese Art von Test keine gute Idee.

Die Entwickler von Java, die Firma Sun, haben auch über dieses Problem nachgedacht.Deswegen entwickelten Sie eine Software mit der Java-Anwendungen auf Barrierefreiheit testen kann. Die Software heißt „Java Accessibility Helper“.

Mit dem „Java Accessibility Helper“ kann man Java-Anwendungen auf alle wichtigen Kriterien der Barrierefreiheit testen. Zum Beispiel kann mit dem Java Accessibility Helper getestet werden ob eine Java-Anwendung nur mit Tastatur bedienbar ist. Blinde und viele Sehbehinderte Menschen arbeiten nur mit Tastatur und nicht mit der Maus.

Der Java Accessibility Helper kann hier runter geladen werden: Java Accessibility Helper

Barrierefreie Software-Entwicklung / Barrierefreiheit mit Java

Die Programmiersprache Java, war die erste Programmiersprache die das Entwickeln von barrierefreier Software unterstützte. Die Grundlagen der barrierefreien Software-Entwicklung mit Java erfahren Sie in diesem Artikel.
Eine grafische Oberfläche von Software sollte so gestaltet sein, dass Menschen mit unterschiedlichen Einschränkungen bzw. Behinderungen sie bedienen können. Eine Software die keine Hindernisse(=Barrieren) in der Bedienung für Menschen mit Behinderungen hat, ist eine barrierefreie Software.
Spezielle Hilfsmittel (engl. assistive technology) wie Screenreader, Braille-Zeile, Bildschirmlupe oder ein Spracheingabesystem unterstützen behinderte Menschen bei der Bedienung von Software. Eine Kontrastreiche Darstellung oder das aktivieren von Bedienelementen per Tastatur können ebenfalls dazu beitragen eine Software barrierefrei zu machen. Blinde und sehbehinderte Menschen bedienen oft eine Software per Tastatur. Deswegen ist es wichtig darauf zu achten, dass eine Software auch ohne Maus bedienbar ist.
Es gibt 4 Elemente die wichtig sind für die Umsetzung von Barrierefreiheit(=Accessibility)
in Java.
JAAPI(Java Accessibility API):
Die JAAPI(Java Accessibility API) ermöglicht es durch eine Art Vereinbarung, dass Komponenten einer Java-Anwendung, Informationen von Unterstützungstechnologien (wie Screenreader-Software oder Braille-Anzeigegerät) erhalten. Die Hauptschnittstelle ist das Accessible Interface.
Alle Komponenten, die Barrierefreiheit unterstützen, müssen diese Schnittstelle benutzen.
Die meisten Swing-Komponenten (JFC), wie Jbutton und Jtextarea, benutzen das
Accessible-Interface(javax.accessibility.Accessible). Deswegen ist es ratsam Swing-
Komponenten zu verwenden, wenn man barrierefreie Software mit Java entwickeln
möchte.
Java Accessibility-Dienstprogramme:
Damit können Informationen aus einer Anwendung erfasst und für die Anzeige mit
Spezialgeräten weiterverarbeitet werden. Mit ihnen können Unterstützungstechnologien
komponentenspezifische Ereignisse überwachen und zusätzliche Informationen über das
GUI(=Programmoberfläche) erhalten, zum Beispiel die momentane Mausposition oder,
welches Fenster gerade aktiv ist.
Java Access Bridge (JAB):
Die Java Access Bridge ist eine Brücke zwischen Java und der integrierten
Unterstützungstechnologien von Microsoft Windows. Sie wird gebraucht, damit Java-
Anwendungen für Microsoft Windows barrierefrei entwickelt werden können. Sie wurde in
J2SE 1.3 eingeführt.
Java Foundation Classes (JFC):
Dies ist eine Bibliothek von Komponenten der graphischen Benutzeroberfläche, in welche
JAAPI vollständig implementiert ist.
Folgende zwei Eigenschaften von Swing-Komponenten sind für die barrierefreie Software-Entwicklung wichtig:
AccessibleName:
Ist ein Kurzname der Komponente, der über deren Verwendung was sagen soll.
Der AccessibleName wird von Screenreadern vorgelesen, wenn die Komponente den
Fokus erhält, sprich aktiviert wird.
AccessibleDescription:
Wenn die Bedeutung einer Komponente von Ihrem Namen abgeleitet werden kann,
braucht man diese Eigenschaft nicht zu setzen. Ist bei einer Komponente die Tooltips
gesetzt sind, bekommt die Eigenschaft AccessibleDescription den Inhalt vom Tooltip.
Ansonsten muss diese Eigenschaft explizit gesetzt werden. Die Eigenschaft kann genutzt
werden um ausführlichere Informationen bereit zu stellen z. B. für eine Screenreader-
Software.
LabelFor:
Manche Komponenten benötigen eine Beschriftung. Zum Beispiel Eingabefelder.
Mit Labelfor kann ein Eingabefeld mit seiner Beschriftung verbunden werden.
Ist die Beschriftung durch ein Tastenkürzel(=Shortcut) ansteuerbar, wird das dazugehörige
Eingabefeld aktiviert. Dies ist deshalb wichtig, weil blinde und sehbehinderte Menschen oft
mit Tastatur arbeiten und nicht mit der Maus.
Die Firma Sun hat auf Ihrer Webseite Richtlinien veröffentlicht zur Entwicklung von barrierefreier Software. Diese werde ich aber in einem eigenen Artikel besprechen.
Dieser Artikel soll nur die Grundlagen der barrierefreien Software-Entwicklung mit der Programmiersprache Java zeigen.

Die Programmiersprache Java, war die erste Programmiersprache die das Entwickeln von barrierefreier Software unterstützte. Die Grundlagen der barrierefreien Software-Entwicklung mit Java erfahren Sie in diesem Artikel.

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

Wenn Sie lieber Video schauen wie lesen, dann schauen Sie in folgendem Video an wie Barrierefreie Softwareentwicklung mit Java Swing funktioniert:

Eine grafische Oberfläche von Software sollte so gestaltet sein, dass Menschen mit unterschiedlichen Einschränkungen bzw. Behinderungen sie bedienen können. Eine Software die keine Hindernisse(=Barrieren) in der Bedienung für Menschen mit Behinderungen hat, ist eine barrierefreie Software.

Spezielle Hilfsmittel (engl. assistive technology) wie Screenreader, Braille-Zeile, Bildschirmlupe oder ein Spracheingabesystem unterstützen behinderte Menschen bei der Bedienung von Software. Eine Kontrastreiche Darstellung oder das aktivieren von Bedienelementen per Tastatur können ebenfalls dazu beitragen eine Software barrierefrei zu machen. Blinde und sehbehinderte Menschen bedienen oft eine Software per Tastatur. Deswegen ist es wichtig darauf zu achten, dass eine Software auch ohne Maus bedienbar ist.

Es gibt 4 Elemente die wichtig sind für die Umsetzung von Barrierefreiheit(=Accessibility) in Java.

JAAPI(Java Accessibility API)

Die JAAPI(Java Accessibility API) ermöglicht es durch eine Art Vereinbarung, dass Komponenten einer Java-Anwendung, Informationen von Unterstützungstechnologien (wie Screenreader-Software oder Braille-Anzeigegerät) erhalten. Die Hauptschnittstelle ist das Accessible Interface.

Alle Komponenten, die Barrierefreiheit unterstützen, müssen diese Schnittstelle benutzen. Die meisten Swing-Komponenten (JFC), wie Jbutton und Jtextarea, benutzen das Accessible-Interface(javax.accessibility.Accessible). Deswegen ist es ratsam Swing-Komponenten zu verwenden, wenn man barrierefreie Software mit Java entwickeln möchte.

Java Accessibility-Dienstprogramme

Damit können Informationen aus einer Anwendung erfasst und für die Anzeige mit Spezialgeräten weiterverarbeitet werden. Mit ihnen können Unterstützungstechnologien komponentenspezifische Ereignisse überwachen und zusätzliche Informationen über das GUI(=Programmoberfläche) erhalten, zum Beispiel die momentane Mausposition oder, welches Fenster gerade aktiv ist.

Java Access Bridge (JAB)

Die Java Access Bridge ist eine Brücke zwischen Java und der integrierten Unterstützungstechnologien von Microsoft Windows. Sie wird gebraucht, damit Java-Anwendungen für Microsoft Windows barrierefrei entwickelt werden können. Sie wurde in J2SE 1.3 eingeführt.

Java Foundation Classes (JFC)

Dies ist eine Bibliothek von Komponenten der graphischen Benutzeroberfläche, in welche JAAPI vollständig implementiert ist.

Folgende zwei Eigenschaften von Swing-Komponenten sind für die barrierefreie Software-Entwicklung wichtig:

AccessibleName:

Ist ein Kurzname der Komponente, der über deren Verwendung was sagen soll. Der AccessibleName wird von Screenreadern vorgelesen, wenn die Komponente den Fokus erhält, sprich aktiviert wird.

AccessibleDescription:

Wenn die Bedeutung einer Komponente von Ihrem Namen abgeleitet werden kann,braucht man diese Eigenschaft nicht zu setzen. Ist bei einer Komponente die Tooltips gesetzt sind, bekommt die Eigenschaft AccessibleDescription den Inhalt vom Tooltip. Ansonsten muss diese Eigenschaft explizit gesetzt werden. Die Eigenschaft kann genutzt werden um ausführlichere Informationen bereit zu stellen z. B. für eine Screenreader-Software.

LabelFor:

Manche Komponenten benötigen eine Beschriftung. Zum Beispiel Eingabefelder.Mit Labelfor kann ein Eingabefeld mit seiner Beschriftung verbunden werden.Ist die Beschriftung durch ein Tastenkürzel(=Shortcut) ansteuerbar, wird das dazugehörige Eingabefeld aktiviert. Dies ist deshalb wichtig, weil blinde und sehbehinderte Menschen oft mit Tastatur arbeiten und nicht mit der Maus.

Die Firma Sun hat auf Ihrer Webseite Richtlinien veröffentlicht zur Entwicklung von barrierefreier Software. Diese werde ich aber in einem eigenen Artikel besprechen.

Dieser Artikel soll nur die Grundlagen der barrierefreien Software-Entwicklung mit der Programmiersprache Java zeigen.


Weitere Artikel zu barrierefreie Softwareentwicklung

Barrierefreiheit mit Java 8
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

Was ist die „Web Accessibility Initiative“ (WAI)?

Es gibt einige Begriffe die im Zusammenhang mit Barrierefreies Internet immer wieder vorkommen. Hier möchte ich erläutern, was sich hinter den Begriff „Web Accessibility Initiative“ verbirgt.

Die Web Accessibility Initiative(WAI) ist eine Arbeitsgruppe der W3C , die sich mit dem barrierefreien Zugang zum Internet beschäftigt. Die W3C ist das World Wide Web Consortium-Gremium, welches sich um die Standardisierung des World Wide Web(=Internet) kümmert.

Das Ziel der WAI (Web Accessibility Initiative) ist es, das Internet möglichst vielen Menschen zugänglich zu machen. Menschen mit unterschiedlichen Behinderungen sind auch eine Zielgruppe der WAI (Web Accessibility Initiative).

Die „Web Content Accessibility Guidelines 1.0“ (WCAG 1.0) beinhalten Anforderungen an die Webseitenprogrammierung als auch an Inhaltsarchitekturen, Layout-Grundlagen und Technik-Verwendung. Sie wurden von der Web Accessibility Initiative veröffentlicht.

Die Barrierefreie Informationstechnik-Verordnung (BITV) in Deutschland, baut auf die Web Content Accessibility Guidelines 1.0 auf.

Warum sammelt www.barrierefrei-mobil.info barrierefreie Hotels?

Weil ich auf Barrierefrei-Mobil noch immer sehr wenig barrierefreie Hotels habe und ich mir wünschen würde, dass viele Hotelbesitzer die ein barrierefreies Hotel haben, sich per Mail bei mir melden würden, damit ich es auf Barrierefrei-Mobil kostenlos eintragen kann, möchte ich hier nochmal erklären warum ich das überhaupt mache.

Urlaub ist für jeden Menschen ein wichtiges Thema. Das Wort Urlaub ruft bei Menschen mit Behinderung nicht immer positive Gedanken und Gefühle hervor. Einen behindertengerechten Urlaub zu organisieren, kostet oft viel Zeit und Kraft. Sehr oft braucht man am Flughafen Hilfe beim Gepäck tragen, beim einsteigen in den Zug brauchen Menschen mit Gehbehinderung und Rollstuhlfahrer Hilfe und dann das Problem ein barrierefreies(behindertengerechtes) Hotel zu finden.

Aber was ist ein barrierefreies Hotel?
Als ich mir Gedanken gemacht habe, wann ich für Barrierefrei-Mobil ein Hotel als barrierefrei deklariere, war es mir wichtig den Maßstab beim vermeintlich „Schwächsten“ anzusetzen. Sprich die Personengruppe die es wohl am schwersten hat ein barrierefreies Hotel zu finden. Ich entschied mich für Rollstuhlfahrer. Die „Welt“ eines Rollstuhlfahrers kann unter Umständen bei einer einzigen Stufe, wenn diese extrem hoch ist, schon zu Ende sein. Deswegen haben es, meiner Meinung nach, Rollstuhlfahrer am schwersten.

Für Barrierefrei-Mobil bedeutet dass, wenn ein Hotel keinen rollstuhlgerechten Eingang ohne Treppen hat, wird dieses Hotel nicht aufgenommen bei Barrierefrei-Mobil. Aber ein rollstuhlgerechter Eingang ist viel zu wenig damit ein Hotel barrierefrei ist. Es ist nur eine wichtige Startbedingung.

Das zweite Kriterium ist ein barrierefreies Zimmer im Hotel. Barrierefreies Zimmer bedeutet, dass Zimmer muss eine ausreichende Türbreite haben, damit ein Rollstuhlfahrer überhaupt ins Zimmer kommt. Die Türbreite laut DIN 18024-2 beträgt 90cm lichte Breite. Hier gehe ich von einem nicht elektrischen Rollstuhl aus. Elektrische Rollstühle sind oft breiter wie nicht elektrische Rollstühle.

Damit das Zimmer für einen Rollstuhlfahrer geeignet ist, muss auch innerhalb des Zimmers genügend Platz zum rangieren(=bewegen) mit Rollstuhl sein. Damit ein nicht elektrischer Rollstuhl wenden kann benötigt er eine Fläche von 150cmx150cm. Diese Fläche muss im Zimmer vorhanden sein. Zum Zimmer gehört ein Bad/WC in welches der Rollstuhlfahrer ohne Probleme rein fahren kann. Ein wenden im Bad/WC ist nicht zwingend nötig, da man ja mit einem Rollstuhl auch rückwärts fahren kann.

Haltegriffe im Bad/WC damit Gehbehinderte und Rollstuhlfahrer sich hoch ziehen bzw. festhalten können, werden begrüßt, sind aber nicht Voraussetzung.

Als drittes wäre es wünschenswert das Hotel hätte Behindertenparkplätze.
Rollstuhlfahrer und Menschen mit Behinderung benötigen mehr Platz um in ein Auto ein- bzw. auszusteigen. Aufgrund der körperlichen Einschränkung und der damit verbundenen eingeschränkten Beweglichkeit, muss die Autotür ganz aufgemacht werden.

Falls das Hotel keine Behindertenparkplätze hat, wird es trotzdem auf Barrierefrei-Mobil aufgenommen. Zur Not kann ein Mensch mit Behinderung auch auf zwei Parkplätze stehen um genügend Platz zum ein-und aussteigen zu haben.

Sind diese Voraussetzungen erfüllt, ist das Hotel barrierefrei und Sie dürfen mir gerne eine Mail schicken damit ich Ihr Hotel in mein Web-Portal kostenlos eintragen kann.

Nun möchte ich nochmal auf die Eingangsfrage eingehen, warum ich das überhaupt mache. Mein Web-Portal soll ein effektives Hilfsmittel sein, mit dem Menschen mit Behinderungen, möglichst schnell, barrierefreie Hotels, Gaststätten oder Kneipen finden die Ihren Wünschen entsprechen. Wenn zum Beispiel ein Rollstuhlfahrer Urlaub in der Universitätsstadt Tübingen machen möchte, soll er mit Hilfe von Barrierefrei-Mobil ein passendes Hotel für Ihn finden. Ich möchte mit meinem Web-Portal dazu beitragen, dass die Suche nach Barrierefreiheit ein Traum und kein Alptraum ist für Menschen mit Behinderungen!

Sind barrierefreie Internetseiten teurer wie „normale“ Webseiten?

Oft hört und liest man, dass barrierefreie Internetseiten zu teuer sind und sich deswegen nicht lohnen. In diesem Artikel möchte ich die Sache etwas beleuchten und zurecht rücken.

Zuerst möchte ich ein paar Überlegungen zum Begriff „Normal“ anstellen, weil ich als Mensch mit Behinderung immer wieder darüber stolpere, dass ich nicht „normal“ bin.

Oder dass es Behindertensoftware und „normale“ Software gibt. Oder es gibt barrierefreie Internetseiten und „normale“ Internetseiten.

Was ist „Normal“? Wie definiert man „Normal“. Dieser Begriff ist so „normal“, dass es recht schwierig ist im Internet eine Definition zu finden mit der man was anfangen kann!

Im Offenen Internetlexikon Wikipedia habe ich u.a. folgende 3 Kriterien gefunden:

[1] ohne Steigerung: Vorhandenen Normen entsprechend

(gesellschaftlichen, wissenschaftlichen, medizinischen, subjektiv erfahrenen)

[2] Über längere Zeiträume ähnlich ablaufenden Ereignissen entsprechend

[3] ohne Steigerung: im rechten Winkel/orthogonal (Mathematik)

Ich weiß nicht wie es Ihnen geht, aber ich finde alle 3 Erklärungsversuche nicht wirklich griffig.

Seit 2002 gibt es ein Gleichstellungsgesetz mit einem §11 Barrierefreie Informationstechnik in dem drin steht, dass staatliche Internetseiten barrierefrei sein müssen und gewerbliche sollten barrierefrei sein. Angenommen im Jahr 2011 sind alle Internetseiten barrierefrei, dann ist es plötzlich „normal“, dass Internetseiten barrierefrei sind!

Ich hoffe, ich konnte Sie etwas ins grübeln bringen, was die Verwendung des Begriffs „Normal“ betrifft. Ich spreche deswegen lieber von barrierefreien und nicht barrierefreien Webseiten.

Nun zur eigentlichen Frage: sind barrierefreie Internetseiten teurer als nicht barrierefreie?

Hier muss man unterscheiden. Wenn es darum geht eine bestehende Internetseite barrierefrei zu machen, kostet das auf jeden Fall Geld. Wie viel Geld hängt selbstverständlich vom Arbeitsaufwand hat. Das Problem bei Internetseiten ist, dass man zunächst nur die „Oberfläche“ sieht und nicht den HTML und CSS-Code der dahinter steckt. Somit ist es für einen Laien fast unmöglich den Fachmann vom Hobby-Webseitengestalter zu unterscheiden. Viele Hobby-Webseitengestalter können mit Bildbearbeitungsprogramme und Farbe sehr gut umgehen, legen aber auf eine korrekte Verwendung der HTML-und CSS-Befehle überhaupt keinen Wert. Damit eine Webseite barrierefrei ist, ist es unabdingbar, dass die HTML bzw. CSS-Befehle korrekt eingesetzt werden.

Wenn eine Webseite neu erstellt wird und von Beginn an die Richtlinien der Barrierefreiheit mit einbezogen werden, hält sich der Mehraufwand und somit auch die zusätzlichen Kosten in Grenzen. Es gibt gewisse Richtlinien, die es bei nicht barrierefreien Webseiten und bei barrierefreien Webseiten gibt, die sich nur in der Begründung unterscheiden!

Ich mache ein Beispiel. Der Alternativtext bei Bildern soll verwendet werden, damit ein Text angezeigt wird, wenn das Bild nicht geladen oder angezeigt werden kann, aus welchen Gründen auch immer. Dies steht in den nicht barrierefreien Richtlinien.

In den barrierefreien Richtlinien steht, dass der Alternativtext bei Bildern, den Bildinhalt grob beschreiben soll, damit blinde und sehbehinderte Menschen, die mit einem Screenreader surfen, wissen, dass es sich um ein Bild handelt und was auf dem Bild zu sehen ist.

In beiden Richtlinien steht das Gleiche nur die Begründung ist anders!

Ein zweites Beispiel. In den barrierefreien Richtlinien steht dass Navigationsmechanismen übersichtlich und schlüssig zu gestalten sind. In jedem guten Buch über professionelles Webdesign liest man ganz genau das Gleiche. Es gibt also in den nicht barrierefreien und den barrierefreien Richtlinien gemeinsame Punkte. Somit ist klar, dass es nicht zwei völlig unterschiedliche Ziele(Webseiten) sind.

Ein Video, zum Beispiel, in Textform zu beschreiben kostet selbstverständlich zusätzliche Zeit und Geld. Durch dieses zusätzlich investierte Geld, steigt allerdings die Zahl der Besucher der Webseite und somit kann, zum Beispiel im Fall eines Webshops, das investierte Geld wieder rein kommen.

Fassen wir zusammen:
In den Richtlinien für nicht barrierefreie Webseiten und den Richtlinien für barrierefreie Webseiten gibt es Gemeinsamkeiten. Eine nicht barrierefreie Webseite barrierefrei zu machen kostet Geld. Wie viel Geld hängt davon ab, wie Wichtig dem Web-Entwickler die Umsetzung der nicht barrierefreien Richtlinien war. Bei einer sehr guten Umsetzung der nicht barrierefreien Richtlinien, dürften die Kosten nicht sehr hoch sein. Bei einer neu erstellten Webseite ist es sehr empfehlenswert, gleich auf barrierefreies Webdesign zu achten. Durch die Gemeinsamkeiten der nicht barrierefreien und barrierefreien Richtlinien hält sich der Mehraufwand und die damit verbunden Mehrkosten in Grenzen.

Durch die umgesetzte Barrierefreiheit steigt die Zahl der Webseitenbesucher (siehe Artikel „Barrierefreiheit – wer braucht das?“ ) und somit die Beliebtheit der Webseite und im Fall eines Webshops kommt mehr Umsatz in die Kasse!

Barrierefreie Internetseiten lohnen sich!