Es ist vollbracht. An meinem privaten PC hüpft quasi nur noch das Känguru NVDA. Der Hai beißt nicht mehr recht.
Und auch an meinem Arbeitsplatz in der Firma wird der Hai allmählich zum Ersatzspieler.
Hintergrund ¶
Ich bin eigentlich ein echter JAWS-Poweruser. Während meiner Arbeit als Softwareentwickler verwende ich diesen kommerziellen Screenreader den ganzen Tag. Ich kenne alle Befehle, die ich im Alltag brauche, habe ein paar winzige Skripte hingefummelt und habe einige Anwendungen, die einem Screenreader alles abverlangen. Also gibt es doch keinen Grund fremdzugehen? Trotzdem werde ich dem Hai Stück für Stück untreu. Mittlerweile bin ich mir sicher, dass es mehr als nur ein neugieriger Ausflug wird.
Mit diesem Artikel möchte ich andere JAWS-Bemnutzer dazu ermutigen sich intensiver mit NVDA zu beschäftigen und die eigenen Möglichkeiten auszuloten. Doch beginnen wir erstmal am Anfang.
Die Chronik ¶
Alles begann damit, dass ich Software mit dem QT-Framework entwickeln musste bzw. durfte. QT ist plattformübergreifend und verwendet deshalb keine sog. nativen win32-Steuerelemente. Anders gesagt, um Anwendungen mit dem QT-Framework nutzen zu können, braucht es einen Screenreader, der auf die offiziellen Schnittstellen MSAA bzw. IAccessible2 hört. Ooops machte da der Hai – er konnte nicht mal eine simple Meldungsbox vorlesen. Bis zu diesem Zeitpunkt hatte das NVDA-Känguru als zweiter Screenreader geduldig auf dem PC sein darsein gefristet und schwups – der las denn auch anstandslos die Meldungsbox. Also den Hai für alles normale und das Känguru für QT? Eine Weile war es so und damit konnte ich die Arbeit fortführen. Damit nicht genug war es ein leichtes für meine Kollegen mit NVDA die Stellen unserer Anwendung anzupassen, wo dieser Reader noch hakte. Ein Screenreader, der sich für Entwickler wie ein kleines Hilfswerkzeug anfühlt, die Sprachausgabe auf Wunsch auf dem Schirm anzeigt, ist für viele Entwickler Motivation und Hilfe genug. Am Ende war unsere Anwendung zur Eingabe von Testfällen und Bewertung so weit angepasst, dass ein produktives Arbeiten mit NVDA damit möglich war. Das beinhaltete auch das Navigieren in Tabellen und zwischen verschiedenen Fenstern.
Ich verwende bei mir zuhause noch eine veraltete JAWS-Version, obwohl ich die entspr. Lizenz zur Verfügung hätte. Das letzte Update des gefräßigen meeresbewohners steckt mir noch in den Knochen. Jedesmal muss ich um den Treiber für mein Papenmeier Trio bangen, brauche eine Weile bis die Einstellungen umgezogen sind – und jedesmal muss ich die Brailezeile erneut auswählen. Ein Blick in die Neuigkeiten für eine neue JAWS-Version zeigen, dass es viele neue Funktionen gibt, deren Nützlichkeit ich teilweise nicht nachvollziehen kann und vor allem, dass Fehler in der Software verbleiben. Um es kurz zu machen, ich vermeide ein JAWS-Update wo immer ich kann und ich glaube nicht, dass Probleme mit einer neuen Version wirklich besser werden. Ich will nicht behaupten, dass ein JAWS-Update nicht problemlos möglich wäre, aber es bereitet mir großes Kopfzerbrechen und es gibt kaum Funktionen, auf die ich mich freuen könnte.
Ich verwende Outlook 2010 für meine E-Mails und JAWS 11 verreckt regelmäßig, wenn ich nur eine Mail mit Escape schließe. Resigniert über ein sicher erfolgloses Update bekommt wieder einmal das Känguru die Chance – und nutzt sie.
Mittlerweile lese ich mit NVDA meine Mails, lese und kommentiere Statusmeldungen auf Facebook, verkaufe Gegenstände bei Ebay, erstelle Blog-Artikel, und versuche immer mehr auf den Hai zu verzichten. Damit nicht genug kann ich mittlerweile fast alle notwendigen Anwendungen an meinem Arbeitsplatz mitNVDA nutzen, sodass ein ernsthaftes produktives Arbeiten als Softwareentwickler mit Visualstudio 2008 möglich ist. Einziger Nachteil ist, dass ich meine private Papenmeier Braillezeile nicht nutzen kann. Wieso? Während NVDA selbst Zeilen der Firma Hedo unterstützt, gibt es immer noch keinen Treiber für die Papenmeier-Zeilen. Die Lösung mit Brltty, die gerne dafür genannt wird, beißt sich mit dem Treiber von JAWS und lastet das System vollständig aus. Es spricht für sich, dass einer der größten deutschen Hardwarehersteller keinen NVDA-Treiber anbietet. Wie auch immer, dieser Nachteil geht nicht auf Kosten von NVDA.
Nachdem ich so ganz gut zurecht kam, stellte ich gleichzeitig fest, dass ich immer versucht habe, mit dem JAWS-Cursor unter NVDA die Oberfläche zu erkunden. Nachdem ich mittlerweile großes vertrauen in den freien Screenreader gewonnen hatte, war es also an der Zeit mich mit der Bedienphilosopieh näher auseinanderzusetzen. Eine gründliche Studie des deutschsprachigen Handbuchs brachte mich dem Ziel um einiges näher. Für alle Mitumsteiger hier die Unterschiede, bzw. wie man unter NVDA zurecht kommt.
- NVDA hält sich ähnlich wie Voice Over (das ist der Screenreader von Aple) strikt an die Hierarchie, die eine Anwendung vorgibt. Anstatt mit dem Jaws-Cursor das gesamte
Anwendungsfenster zu lesen und ggf. irgendwo zu klicken, navigiert man bei NVDA mit NVDA-Taste und den Ziffern des Nummernblocks durch die Objekthierarchie. Der Hai kann das auch – Homerow hieß das mal und war eigentlich nur als Werkzeug zur Skriptentwicklung bzw. Anwendungserkundung gedacht. NVDA hingegen hat dieses Werkzeug immer an der aktuellen Position. NVDA sagt also: suche zuerst das Objekt, mit dem du etwas anfangen – vielleicht auch nur es lesen möchtest und interagiere mit ihm. NVDA beherrscht etwas ähnliches wie dem JAWS-Cursor. Das nennt sich Screen-Review-Modus und wird mit Nvda+Num7 ein- und ausgeschaltet.
- Unter NVDA kann man jeder zeit mit den Tasten des Nummernblocks Zeilenweise, wortweise oder Zeichenweise im aktuellen Objekt navigieren. NVDA kennt dabei nicht die seltsamen Beschränkungsmodi, die man unter JAWS für den JAWS-Cursor auswählen kann. Der Lesebereich ist strikt auf das aktuelle Navigator-Objekt beschränkt – für alles andere braucht man den Screen-Review-Modus.
- Häufig ist es unter NVDA ausreichend, auf einem gewünschten Objekt die Eingabetaste des Nummernblocks zu drücken, um es zu aktivieren. Wenn Sie z.B. einen Link in einer Mail haben, brauchen sie weder Cursorrouting noch Klicks ausführen – navigieren sie mit dem Nummernblock oder mit den cursortasten auf den Link, und aktivieren ihn mit der Eingabetaste des Nummernblocks.
- Mit Nvda+Num/ zieht man die Maus zum Navigator-Objekt und kann dann mit Mum/ einen Linksklick ausführen. Dies hat bei mir allerdings machmal nicht zuverlässig funktioniert.
- NVDA kennt keinen Grafikbezeichner. Stattdessen liest er schlicht den Tooltip vor, wenn man sich durch die Objekthierarchie auf ein Werkzeug einer Symbolleiste bewegt. anstatt also auf dem Schirm nach dem Symbol zu suchen, verwenden sie die Objektnavigation zur Navigation zur Symbolleiste bzw. zum Werkzeug, dass sie anklicken möchten und aktivieren es mit Num-Eingabe. Das ist am Anfang vielleicht etwas umständlich, aber schon bald kennt man die Struktur der Anwendung und kann schnell navigieren.
- Die Navigation mit dem Navigator ist einfach zu merken: Die Tasten links, rechts, oben und unten zur Fünf also 4, 6, 8 und 2 Navigieren eben links, rechts, nach oben und zum ersten Kind im Objektbaum. Das klingt Theoretisch, aber wenn Sie es z.B. im Explorer ausprobieren, wird schnell klar, wie es funktioniert. Bleibt noch anzumerken, dass die Objektstruktur der Anwendung oft nichts mit der Anordnung der Objekte auf dem Schirm zu tun hat.
- NVDA verfolgt auf Wunsch die Maus, gibt ihre Koordinaten akustisch aus und man kann steuern, welche Informationen über ein Objekt vorgelesen werden, wenn man mit der Maus darüber fährt.
- Viele Fortschrittsbalken wird NVDA auf Wunsch akustisch verfolgen – unter Jaws kennt man so etwas nicht.
- Es gibt noch eine Reihe anderer Tastenbefehle, die ich mir noch nicht merken kann. Hier hilft das Handbuch und die Liste der Tastenkombinationen.
Aktueller Stand und Ausblick ¶
Die Aktualisierung von NVDA dauert nicht mehr als ein paar minuten. Dabei begleiten einen die gesamte Zeit während der Installation die zuletzt eingestellten Stimmeneinstellungen. Während unter JAWS die Scansoft Stephi Schlaftabletten verabreicht bekommt, quasselt sie munter für NVDA. Das erlaubt endlich das Verwenden einer etwas angenehmeren Stimme. Kleinigkeit, aber selbst die getunten JAWS-Stimmen, die eingeführt wurden, weil SAPI zu lahm war, haben’s unter JAWS nicht gebracht. Mittlerweile kann sich NVDA automatisch aktualisieren bzw. nach Updates suchen. Die zwei getrennten Installationspakete von NVDA wurden in einem vereinigt, was gleichzeitig für alle Sprachen lokalisiert ist.
Wenn mir unter JAWS etwas nicht gefällt, mache ich nicht mehr den Versuch dies irgendwo zu melden – es kommt vermutlich sowieso nicht an. Unter NVDA erstelle ich ein Ticket und wenn es wirklich wichtig ist, spende ich etwas für die Umsetzung Immerhin kann ich den Status jeder zeit einsehen, die Entwickler bekommen direkt bescheid und wenn der Fehler behoben ist, kann ich am nächsten Tag mit einem aktuellen Installer überprüfen, ob das Problem wirklich korrigiert ist. Ich behaupte nicht, dass NVDA ohne Fehler ist, aber es ist transparent und ich bin gerne bereit Fehler zu melden.
Ein Hindernis für die noch zögerlichen Umsteiger dürte die etwas andere Bedienphilosophie sein. Auch die Darstellung auf der Braillezeile ist gewöhnungsbedürftig. Welche Darstellung am sinnvollsten ist, vermag ich nicht zu sagen.
Während das große Rätselraten darum, ob und wann JAWS und die anderen kommerziellen Screenreader Windows 8 unterstützen werden anhält, heißt es in den News zur aktuellen Betaversion von NVDA lapidar: Support für Windows 8 Metrooberflächen. Ich weiß nicht, ob es wirklich schon funktioniert, aber dafür würde eine Mail in der Entwicklerliste reichen – es ist immerhin transparent.
Währen JAWS eine eigene Skriptsprache ohne vernünftigen Debugger verwendet, verwendet NVDA Python – jene kryptische aber mächtige Programmiersprache, die NVDA selbst gebar. Python ist verbreitet, eine interpretierte und reflexive Sprache und erlaubt eine andere Art der Programmierung. Will sagen, der Screenreader dürfte für kompetente Entwickler deutlich leichter erweiterbar sein.
Während die Lokalisierung (zumindest in früheren Versionen) von JAWS ungefähr bis zur nächsten englischen Version brauchte, wird sie unter NVDA parallel zur Entwicklung spätestens zum Release gepflegt. Und wem wirklich noch eine ausgefallene Sprache fehlt, der kann sich seine eigene Übersetzung erstellen und damit das projekt unterstützen.
Mittlerweile gehen die Anwendungen, die nur mit Screenreadern mit einem Grafiktreiber bedienbar sind stark zurück. Das ist auch gut so, denn bei der Virtualisierung von Rechnern, können diese Treiber nicht mehr korrekt installiert werden – oder es gibt Probleme dabei. Konkret muss ich lediglich mit einem Zeiterfassungsprogramm arbeiten, dass von JAWS besser vorgelesen wird als von NVDA.
Der Vorsprung des Marktführers JAWS ist arg zusammengeschmolzen und die Unterschiede sind nur noch für einige bestimmte Anwendungen am Arbeitsplatz relevant. Damit will ich nichtsagen, dass JAWS & co. überflüssig währen – Vielfalt ist immer wichtig, aber objektiv können die kommerziellen Reader den enormen Kostenaufwand immer schwerer rechtfertigen. Statt ein entspr. Update zu kaufen, sollte man überlegen, eine ähnlich hohe Spende bei NVDA zu tätigen. Legen Leute zusamen, wäre es sicher möglich, ein bestimmtes dringend benötigtes Feature umsetzen zu lassen. Und wem das nicht reicht, der kann jeder Zeit selbst Hand anlegen – allerdings braucht es einiges an Einarbeitung die komplexe Software und das Design zu versteh. Ich bedaure es sehr, dass ich nicht die Kraft habe, mich abends an der Weiterentwicklung zu beteiligen.
Nun müssen die Anwender entscheiden, welchen Weg sie gehen möchten. Vielleicht gibt es in Zukunft professionelle Schulungen für NVDA und ein Anpassungsgeschäft – was spricht dagegen, dass jemand für eine Anpassung für einen Arbeitsplatz Geld bekommt und diese im Gegenzug in das NVDA-Projekt einspeist?
