Hiermit möchte ich der werten Leserschaft mitteilen, dass das lange Jahre brach liegende Projekt der Zugänglichkeit des Firefox unter Mac OS X in letzter Zeit frischen Wind abbekommen hat und sich im letzten Monat viel getan hat!

Hub Figuière, ein neuer Kollege im Accessibility-Team von Mozilla, der im November bei uns angefangen hat, kümmert sich zur Zeit mit Hochdruck um die Zugänglichkeit und Unterstützung für VoiceOver unter Mac OS X Snow Leopard und Lion. In den nächsten Wochen werde ich auf diesem Blog die Verfügbarkeit einer zum Testen geeigneten Version ankündigen. Diese wird eine Menge Probleme haben. Einige davon dürften uns intern schon bekannt sein, andere jedoch höchstwahrscheinlich nicht, und genau dafür würde ich mich sehr über testende Hilfe aus der Community freuen! Die Builds werden instabil sein, es wird längst nicht alles funktionieren und für einige Zeit noch nicht produktiv einsetzbar sein. Aber mit eurer Hilfe können wir das ändern und haben jetzt auch die Manpower dazu!

Diejenigen, die unsere Community schon kennen, können diesem Meta-Bug folgen, um den Fortschritt zu beobachten.

Alle anderen können gern hier ihre Unterstützung signalisieren, sei es durch testen oder einfach nur moralisch, indem sie unter diesem Beitrag einen Kommentar hinterlassen. Ich würde mich freuen!

Nein, dies ist kein weiterer Artikel, der einem Webdesigner zu erklären versucht, warum es so umständlich ist, für den Internet Explorer zu programmieren. 😉 In diesem Artikel geht es vielmehr darum, warum manche Webseiten bzw. Teile davon von Bildschirmleseprogrammen für Blinde unterschiedlich dargestellt werden, abhängig davon, ob der Anwender die Seite im Internet Explorer oder dem Firefox aufruft.

Anstoß für den Artikel gab diese Bemerkung von Heiko Kunert aus Hamburg, in der er bemerkte, dass es immer noch Seiten gibt, die im Firefox mit einem Bildschirmleseprogramm anders aussehen als im IE. Auf meine Nachfrage hin führte Heiko aus, dass er versuchte, den Play-Schalter beim Anschauen des Hamburg-Journals in der NDR Mediathek zu finden und dass JAWS 8.0 diesen zwar mit dem IE, aber nicht mit dem Firefox finden würde.

Zur Erklärung dieses Phänomens kommen in diesem Fall mehrere Faktoren zusammen:

Zum einen ist da natürlich der verwendete Browser. Im Idealfall wird HTML-Code in beiden Browsern gleich interpretiert, egal ob es jetzt um die visuelle Anzeige für Sehende oder die Darstellung durch das Bildschirmleseprogramm für Blinde geht. Jeder, der schon mal mit beidden Browsern unterwegs war, dass es selbst in JAWS 10 und 11, oder auch bei Verwendung des NVDA, immer mal wieder den einen oder anderen subtilen Unterschied gibt.

Zum anderen ist da in diesem Fall der Faktor Flash. Die NDR Mediathek verwendet eine Adobe Flash-Anwendung zur Anzeige des Videomaterials und auch zur Steuerung der Wiedergabe. Der von Heiko gesuchte Play-Schalter befindet sich also nicht im eigentlichen HTML, sondern in dieser Flash-Anwendung. Hier gibt es gerade mit älteren JAWS-Versionen teils gravierende Unterschiede in der Handhabung zwischen dem Internet Explorer und dem Firefox. Der Grund ist, dass das Flash-Plugin für den Firefox erst im Jahr 2008 von Adobe zugänglich gemacht wurde, das Plugin für den IE aber schon seit 2002 Zugänglichkeit unterstützt. Da liegen also mal lockere 6 Jahre zwischen.

Und damit kommen wir zum dritten Faktor, der verwendeten Version eines Screen Readers (unabhängig vom hersteller). Die hier verwendete Version von JAWS war die Version 8.0, die in den USA zuerst Ende 2006 veröffentlicht wurde. Die Veröffentlichung der deutschen Version fand irgendwann 2007 statt. Also wurde diese Version von JAWS ein bis zwei Jahre vor einer zugänglichen Version des Flash-Plugins für den Firefox veröffentlicht und ist somit gar nicht darauf eingestellt, dass es im Firefox überhaupt ein zugängliches Flash-Plugin geben könnte. Berechtigter Kritikpunkt: man hätte auch vorausschauend in JAWS die Möglichkeit bereits vorsehen können. Jeder, der aber schon mal mit Microsoft Active Accessibility gearbeitet hat, weiß ein Lied davon zu singen, dass auch das strikte Folgen der Dokumentation nicht immer zum gewünschten Ergebnis führt, ohne noch weitere kleine Veränderungen vornehmen zu müssen, damit es tatsächlich für den Anwender rund läuft. Dasselbe Rechenspiel gilt natürlich auch für Window-Eyes, die Flash ebenfalls von Anfang an im IE unterstützten (ich glaube sie waren sogar die ersten), mit dem Flash-Plugin in Firefox aber auch erst richtig umgehen lernen mussten, als es dann endlich mal in einer zugänglichen Version erschien. Und solche Verbesserungen werden von den kommerziellen Herstellern von Bildschirmleseprogrammen nur in den seltendsten Fällen auf ältere Versionen zurückportiert.

Wer den gerade erschienenen Firefox 3.6 einsetzt, wird übrigens schnell feststellen können, ob er eine aktuelle und damit zugängliche Version des Flash-Plugins installiert hat. Firefox weist jetzt auf veraltete Versionen des Flash-Plugins hin und fordert zur Aktualisierung auf. Auch wegen bekannter Sicherheitsprobleme ist so ein Schritt unbedingt zu empfehlen!

Beim Testen habe ich das beste Ergebnis übrigens mit der neuartigen Herangehensweise des NVDA an das Interagieren mit Flash-Inhalten erzielt. NVDA sieht nicht nur sämtliche Schalter sondern liest auch von allen Schaltern die Beschriftungen vor, erkennt die bereits abgelaufene und noch verbleibende Zeit und ermöglicht ein vollständiges Bedienen des NDR-Mediathek-Players.

Es ist also leider tatsächlich so, dass ein Bildschirmleseprogramm Inhalte von Webseiten unterschiedlich darstellen kann abhängig davon, mit welchem Browser die Seite aufgerufen wird. Seiteninhalte sind in diesem Fall aber eben nicht nur HTML-Inhalte, sondern auch externe Quellen wie Flash. Und dies erhöht die Variabilität und Fehleranfälligkeit der Anzeige.

Ich hoffe, mit diesem Artikel ein wenig Licht in das Dunkel des teilweise doch verwirrenden und komplexen Zusammenspiels der verschiedenen Komponenten gebracht zu haben! Fragen und Kommentare sind natürlich immer herzlich willkommen!

Die zweite Beta von Firefox 3.6 ist gerade erschienen, so dass es ein guter Zeitpunkt ist, mal auf die Funktionen zu schauen, die Anwender von assistiven Technologien von der neuen Version des Browsers erwarten können.

Unterstützung für die Spracheingabefunktion von Windows Vista und Windows 7

Windows Vista und Windows 7 haben eine eingebaute Spracheingabefunktion, mit der motorisch eingeschränkte Benutzer oder solche mit einer Lese-Rechtschreib-Schwäche Texte in verschiedene Programme diktieren können. Ab der Version 3.6 gehört auch Firefox zu diesen Programmen. Dies wird erreicht, indem das Microsoft Text Services Framework (TSF) unterstützt wird.

Da es sich hierbei um sehr neue Technologie handelt und es eventuell ungewollte Nebeneffekte geben kann, die erst in den nächsten Updates beseitigt werden können, ist die Unterstützung für TSF standardmäßig ausgeschaltet. Durch folgende Schritte kann sie eingeschaltet werden:

  1. Gib in die Adresszeile von Firefox die Adresse about:config ein.
  2. Bestätige den Warnhinweis mit einem Klick auf „Ich werde vorsichtig sein, versprochen!“.
  3. Gib in das Textfeld für die Filterung die Buchstaben tsf ein.
  4. Wähle in der Liste die Einstellung intl.enable_tsf_support.
  5. Führe einen Rechtsklick auf diesem Eintrag aus und wähle „umschalten“ aus dem Popup-Menü.
  6. Starte Firefox neu.

Von nun an kann in Eingabefelder wie z. B. das Eingabefeld für Blogkommentare diktiert werden.

Dies erweitert die von Firefox und der Gecko-Plattform nativ unterstützten Technologien um eine weitere und schließt somit eine weitere Gruppe von Benutzern mit einer Behinderung ein.

Die neue Taskleistenvorschau in Windows 7 ist zugänglich

In Windows 7 kann die Taskleiste bei mehreren geöffneten Fenstern oder Tabs eine Vorschau der geöffneten Tabs anzeigen, und man kann direkt in dieser Vorschau wählen, mit welchem Fenster oder Tab das Programm in den Vordergrund geholt werden soll. Diese Funktion wird ab Version 3.6 auch von Firefox unterstützt und ist mit Screen Readern wie dem NVDA auch zugänglich. Bietet Firefox mehrere Tabs zur Vorschau an, sagt NVDA beim navigieren in der Taskleiste für das Symbol des Firefox „Untermenü“ an. Jetzt kann mit den Pfeiltasten rauf und runter der gewünschte Tab ausgewählt und mit Eingabe oder Leertaste Firefox mit diesem Tab im Vordergrund der Fokus übergeben werden.

Bessere Behandlung des Eingabefokus

Dies betrifft Maus- und Tastaturbenutzer gleichermaßen, wird hier aber extra erwähnt, weil die Verbesserungen auch Benutzer von Bildschirmleseprogrammen betreffen. So gibt es jetzt ein verbessertes Navigieren auf Seiten, wo das Attribut tabindex für einige Elemente definiert ist und für andere nicht. Weiterhin wird beim Speichern von ausführbaren Dateien das Dialogfeld, das erscheint, jetzt automatisch angesagt.

Unterstützung für die Programmierschnittstelle IAccessibleTable2

Diese Erweiterung des Standards IAccessible2 ermöglicht es assistiven Technologien, exaktere Informationen über Tabellenstrukturen zu erhalten und dem Anwender mitzuteilen. Hierbei ist es unerheblich, ob es sich um eine Datentabelle im Web, eine mehrspaltige Strukturansicht wie die Lesezeichenverwaltung, ein ARIA tree grid oder ähnliches handelt. Die Informationen werden von Gecko gesammelt und über diese neue Schnittstelle transparent und konsistent zur Verfügung gestellt. Hersteller von assistiven Technologien können Firefox 3.6 somit zur Implementierung dieser neuen nSchnittstelle verwenden und ihren Anwender somit eine verbesserte Wiedergabe verschiedendster Tabellenstrukturen bieten.

Verbesserte Regeln zum Errechnen des accessible name

Der Name eines accessible Objekts, der häufig dem Bildschirmtext entspricht, ist der Hauptbestandteil dessen, was Anwendern von Bildschirmleseprogrammen beim Navigieren mit Tab oder im virtuellen Puffer angezeigt wird. Im Einklang mit dem User Agent Implementor’s Guide des WAI-ARIA-Standards haben wir das Errechnen dieses Namens verbessert, so dass der Programmcode jetzt besser wartbar, vorhersagbarer und somit robuster auch für zukünftige Implementierungen neuer Elemente z. B. aus dem HTML5-Standard geworden ist.

Unterstützung für sich ändernde Objektattribute

Für eine bessere Unterstützung von drag and drop in WAI-ARIA, aber auch im Hinblick auf HTML5, haben wir das Ereignis IAccessible2 Object Attribute Changed implementiert. Dieses wird immer dann ausgelöst, wenn der Wert eines Attributes eines HTML-Elements, der durch ein Objektattribut des entsprechenden accessibles veröffentlicht wurde, sich ändert. Diese Änderung passiert üblicherweise durch JavaScript. Bildschirmleseprogramme können hierauf reagieren und ihren Anwendern diese Änderung mitteilen und/oder ihren virtuellen Puffer aktualisieren.

…und wieder jede Menge Bugfixes

Und natürlich haben wir auch wieder an der Stabilität und Zuverlässigkeit des Firefox gearbeitet! Wenn bestehende Funktionen nicht so funktionierten wie gewünscht und dies uns von Anwendern und Herstellern assistiver Technologien gemeldet wurde, haben wir uns um schnelle Verbesserungen gekümmert. Weiterhin sind wir auch am Ball geblieben, was späte Änderungen in der Spezifizierung von WAI-ARIA anging und haben unsere Implementierungen entsprechend angepasst.

Das gesamte Accessibility Team bei Mozilla hofft, dass euch der Firefox 3.6 genauso gefällt und soviel Freude bereitet wie es uns Spaß gemacht hat, an ihm zu arbeiten und ihn zu testen!