Schlagwort-Archiv: NVDA

NVDA bläst zum Sturm auf Ofice

Es ist noch nicht lange her, als ich in einem Artikel für die “Gegenwart” über NVDA berichtet hatte. Damals war klar, dass NVDA den anderen Screenreadern im Bereich Microsoft Office unterlegen war. Für viele Anwender war das sicher ein Grund bei ihrem bisherigen Screenreader zu bleiben.

Nun ist der erste Release Candidate von NVDA 2014.3 veröffentlicht worden. Die Liste der Neuerungen enthält fast ausschließelich Verbesserunen für Microsoft Office. Damit dürfte der Vorsprung der Konkurrenten wie JAWS und Kobra weiter dahin schmelzen.

Hier ist der Link zur Testseite von NVDA. Von dort kann man sowohl die Neuerungen einsehen als auch den Release Candidate herunterladen.

Erwägen Sie bitte auch eine Spende für dieses großartige und freie Projekt, denn es wäre sehr ärgerlich, wenn die Weiterentwicklung an der Finanzierung scheitern würde.

Hier nun der Link:
http://community.nvda-project.org/wiki/Test

Gute Berufsmöglichkeiten für blinde Java-Entwickler

In den vergangenen Wochen habe ich mich intensiv in die Entwicklung komplexer Anwendungen mit Java eingearbeitet. Das man mit einem Editor und den Kommandowerkzeugen javac und java gut mit einem Screenreader arbeiten kann, ist nichts Neues.
Die Entwicklungsumgebung Eclipse ist auch schon lange für seine gute Zugänglichkeit bekannt. Wo ist hier also die Überraschung?

Bei der Entwicklung von Mehrschicht-anwendungen sind eine ganze Reihe von Editoren und Werkzeugen notwendig, die nicht automatisch bei der Entwicklung kleinerer Desktop-anwendungen benutzt werden müssen. Da es nur wenige blinde Java-Entwickler gibt, war nicht klar, ob alle diese Werkzeuge genauso gut zugänglich sind, wie man es von den Standardansichten in Eclipse gewohnt ist. Die gute Zugänglichkeit von Eclipse basiert zum Großteil darauf, dass keine Swing-Steuerelemente verwendet werden, sondern native Steuerelemente des Betriebssystems. Dadurch verhält sich das ganze wie jede andere Windows-Anwendung auch. Allerdings ist die Zugänglichkeit genau dann vorbei, wenn es notwendig ist, ein Steuerelement mit anderen Mitteln zu realisieren – z.B. weil es kein entspr. natives Steuerelement auf allen Plattformen gibt. Wie uns auf einer Tagung der BFG IT vor Jahren kompetent erläutert wurde, ist es in solchen Fällen sehr schwer und aufwendig, die Zugänglichkeit einzubauen. Tatsächlich zeigte sich relativ früh ein solches Objekt. Beim Generieren von Entitätsklassen aus den Tabellen einer Datenbank kann man die Spalten und deren Eigenschaften nicht ändern. Glücklicherweise kann man wenigstens alles übernehmen und im Nachhinein im Code bearbeiten.

Ein weiteres Problem tritt auf, wenn man Unittests ausführen will. Hier werden die Ergebnisse (erfolgreich oder fehlgeschlagen) über Icons im Baum angezeigt. JAWS-Anwender können hier die Grafiken beschriften, aber NVDA-Benutzer sehen diese Icons nicht. Das gilt übrigens für alle Icons, die an Bäumen in Swing-Anwendungen hängen. Im Gegensatz zu Eclipse sind sie in Swing-Anwendungen auch für JAWS nicht mehr auslesbar. Hier wäre es wohl notwendig, die Zugänglichkeitsschnittstellen so zu erweitern, dass Objekte zusätzlich zu den Status wie angehakt, ausgewählt etc. auch anwendungsspezifische Status haben können. In Java kann man hierfür jedem Bild einen Alternativtext geben, der als Statustext verwendet werden könnte.

In einigen Projekten ist es notwendig eine ältere Version von Eclipse z.B. Eclipse Juno zu verwenden. Hier fällt auf, dass beim Navigieren im Baum zunächst immer der zuvor ausgewählte Eintrag vorgelesen wird und anschließend der nun selektierte. daran kann man sich zwar gewöhnen, es kostet auf die Dauer aber viel Zeit. Die Lösung für das Problem war verblüffend einfach. Bei neuen Versionen von Eclipse tritt das Problem nicht auf, aber dafür in allen Java-Anwendungen, die einen Baum verwenden. Es fiel auf, dass NVDA für die ältere Eclipse-Version wie für die Java-Anwendungen javaw.exe als Anwendungsnamen identifiziert, während es in der aktuellen Eclipse-Version eclipse.exe ist. für Eclipse gibt es im NVDA-Quellcode eine eclipse.py die mit wenigen Zeilen Code die erste Meldung ausschaltet und damit den Fehler, der eigentlich in der Java-Zugänglichkeitsschnittstelle steckt ausbügelt. Das Kopieren dieser Datei in javaw.py in eigenen Erweiterungsverzeichnis von NVDA behebt das Problem für das alte Eclipse und alle Java-Anwendungen. Herausgefunden habe ich das nicht alleine, sondern durch den Austausch mit James Teh dem zweiten NVDA-Hauptentwickler.

Der Vorfall zeigt auf, dass für Java die bisherigen Konzepte zur Erweiterung von Anwendungen nicht mehr greifen, denn die haben sich immer am Anwendungsnamen orientiert – und dieser ist für alle Java-Anwendungen java.exe oder javaw.exe.

Das Debuggen in Client und Server inkl. dem Verfolgen des Callstacks oder das Inspizieren von Objekten war leicht möglich. Durch die Tastenkürzel für die üblichen Schritt- und Haltepunktaktionen kann man schnell und effizient arbeiten.

Eine echte Barriere war der Installer des Glassfish-Servers, der vollkommen unzugänglich ist. Zum Glück kann man den Server auch als Zip-Datei herunterladen. Das Oracle es nicht schafft, einen zugänglichen Installer bereitzustellen spricht allerdings für sich.

Alles in Allem ist die Erprobung mit verblüffend wenig Hindernissen verbunden gewesen. Dinge wie die oben beschriebenen Steuerelemente und Statusbilder sind zwar ärgerlich, aber keine wirkliche Barriere. Da die Applicationserver wie Glassfish oder Websphere alle über eine Weboberfläche zur Administration verfügen und die verwendeten Plugins in Eclipse sich in den meisten Fällen aus den bereits verwendeten Steuerelementen bedienen, treten auch hier relativ wenig Probleme auf. Ein Hindernis war z.B. das Bedienen des Subversion-Plugins mit dem man den Code gegen die Versionsverwaltung synchronisiert. Vermutlich wird man sich Änderungen und Konflikte über den klassischen Subversion-Client ansehen müssen.

Die Erprobung wurde vollständig mit NVDA durchgeführt. JAWS dürfte wohl ähnliche Ergebnisse liefern, weil spätestens bei Swing-Anwendungen die Zugänglichkeitsschnittstelle in Java das Nadelöhr ist. Was sie nicht liefert sieht keiner der Screenreader und das auslesen der angelieferten Attribute ist keine Herausforderung für einen Screenreader. Ein Offscreenmodell, wie es in Windows-Anwendungen sonst üblich ist, müssten sich die Reader hier mühsam anhand der gemeldeten Positionsangaben der Zugänglichkeitsobjekte zusammenbauen. Bis dahin ist man auf die Tastaturnavigation der Anwendung festgenagelt, oder man muss sich durch den Objektbaum hangeln. Wehe, wenn ein wichtiges Steuerelement für die Arbeit keinen Hotkey oder Menübefehl hat. Apropos: Eclipse ist u.a. deshalb so gut zugänglich, weil es tonnenweise Tastenkürzel gibt.

OK, und was ist, wenn ein Projekt nicht mit Eclipse entwickelt wird? Das kann sehr unterschiedlich sein. Da gibt es z.B. IntelliJ von http://www.jetbrains.com. Die Anwendung ist vollkommen unzugänglich – man kann NICHTS lesen. Auf eine Supportanfrage wurde ich mit “It is a known issue” auf einen Bugeintrag verwiesen. Der Inhalt ist rasch erklärt: Der Autor ist mir über die NVDA-Entwicklerliste bekannt und er hat alles versucht um nach Kräften zu unterstützen, aber seit dem der Fehler vor einem Jahr angelegt wurde, sind keine Kommentare des Herstellers eingefügt worden. Selbst wenn es einen Fix gäbe, würde s wohl noch lange dauern, bis eine solche Umgebung hinreichend zugänglich ist.

Als dritte IDE gibt es noch NetBeans von http://www.netbeans.org. Hier fällt positiv auf, dass Zugänglichkeit dort ein Thema ist, dass auf den Seiten diskutiert wird. Das Stichwort heißt hier A11Y. Ein Schnelltest zeigte zwar, dass die Menüs und Editoren zwar grundsätzlich zugänglich sind, aber dass es doch noch an vielen Stellen hakt. Z.B. wird beim Navigieren in einem Java-Editor der Screenreader in einen Baum gerufen, während der Fokus im Editor verbleibt. Beim Versuch die Anwendung im Detail zu justieren, konnte ich den Optionen-Dialog nicht öffnen. Ich vermute aber, dass es sich hier um Details handelt, die man mit dem Hersteller klären könnte.

== Fazit ==
Die Entwicklung komplexer Mehrschicht-Anwendungen ist für blinde Menschen im professionellen Umfeld gut möglich. Es gibt zwar einige Hindernisse und Stolperfallen, aber die sind bei der Komplexität der Anwendungen wohl normal. Es kommt wie immer auf die Details an, ob der Einsatz in allen Projektbereichen möglich ist. Da das Eis wie beschrieben sehr dünn sein kann, habe ich den Rettungsanker schon bereitgelegt: Ich arbeite mich in Python und das Objektmodell von NVDA ein, um im Notfall die benötigten Änderungen umsetzen oder zumindest initiieren zu können. Es ist wohl nur eine Frage der Zeit, bis ich aktiv den Weg freiprogrammieren muss.

Ich hoffe, dass ich mit diesem Artikel anderen blinden Entwicklern ein paar hilfreiche Erfahrungen mitgeben konnte.

Weltweite Konferenz zu NVDA

Am letzten Wochenende fand die zweite NVDA user conference statt. Dafür musste man weder ein Hotel buchen oder verreisen. Es genügte eine leicht zu bedienende Chatsoftware.

Aufgrund der Beteiligung rund um den Globus fand die Konferenz ab 18:00 bis ca 03:00 früh statt.

Neben Informationen und Fragen zur weiteren entwicklung von NVDA stand auch eine Session zur Entwicklung von Erweiterungen bzw. anpassungen auf dem Programm. Eine dritte Sitzung wurde den Umsteigern von JAWS gewidmet.

OK, schön das ich über Vergangenes berichte. Was haben Sie nun davon? Die Konferenz wurde aufgezeichnet und alle Informationen sind unter folgendem Link zu finden:
http://www.nvda-kr.org/en/nvdacon.php

QT 5.3 und 5.4 bringen große und positive Veränderungen für die Zugänglichkeit

Offenbar wird in QT weiterhin fleißig an der Verbesserung der Zugänglichkeit gearbeitet. Das bedeutet auch, dass es neben Java ein weiteres plattformunabhängiges GUI-Framework gibt, für das eine gewisse Zugänglichkeit vorhanden ist.

Der folgende Blog-Artikel beschreibt die Änderungen in QT 5.3 und 5.4, die für diesen Bereich zu erwarten sind:
[[http://blog.qt.digia.com/blog/2014/05/14/accessibility-in-qt-5-3/]]
Dies betrifft vorallem zwei Dinge:
# QT-Anwendungen werden unter Mac OS deutlich zugänglicher
# Die Infrastruktur wird ab QT 5.4 nicht mehr als Plugins sondern direkt im Kern bereitgestellt. Das heißt, dass Software nicht mehr ohne die Schnittstellen ausgeliefert werden kann. Java hat diesen Schritt bereits vollzogen und es uns damit erheblich leichter gemacht.

Wir können also wohl positiv auf die weitere Entwicklung bei QT hoffen.

Einige Autoren von Anwendungen meinen, dass die Zugänglichkeitsschnitstellen in QT instabil seine und liefern sie teilweise deshalb bewusst nicht aus. Der Autor von Caliber sei hier beispielhaft genannt. Aber in Wahrheit sind die Schnittstellen nur eine Art Softwaretest. Durch die Verwendung eines Screenreaders werden viele Anfragen an das Datenmodell der Anwendung gestellt und wenn es kleine Fehler hat, dann stürzt die Anwendung gnadenlos ab. Verhindern können das die Anwendungen nur, wenn sie ein sauberes und stabiles Datenmodell erstellen. Diese Aussage ist keine graue Theorie, sondern erlebte Praxis. Eine Anwendung von uns stürzte mit Screenreaderverwendung solange ab, bis wir das Modell robuster und korrekter im Sinne der QT API gemacht haben. Und schwups, läuft die Anwendung problemlos mit NVDA.

Also: Ich freue mich sehr über diese Entwicklung.

Mein Hai geht in Teilzeit

Ich habe schon lange auf den Tag gewartet, da NVDA an meinem Arbeitsplatz das Kommando übernimmt. Nich aus Gehässigkeit gegen die kommerzielle Lösung, sondern es sich schon lange abgezeichnet hat. Folgende Ereignisse haben diesen Tag nun wahr werden lassen:
* Immer mehr unserer verwendeten Webanwendungen lassen sich besser mit Firefox und damit auch mit NVDA verwenden.
* Der Zugriff auf das Internet ist nur noch via Firefox möglich – und weil viele Dokus dort liegen, bin ich quasi drauf angewiesen.
* Ich habe endlich das Problem gelöst, dass NVDA bei der Verwendung von Outlook immer eingefroren ist. “schuld” war eine Software namens advanced security for Outlook, die für Catlok verwendet wird. Das ist eine sehr zugängliche Anwendung um die eigenen und die Termine von Kollegen zu überblicken. Nach deinstallation des “Schuldigen” lief NVDA ohne Probleme und dem ständigen Einsatz stand nichts mehr im Weg.

Allerdings brauche ich JAWS noch zum Debugging in Visualstudio und vermutlich auch noch für andere Anwendungen.

Wie auch immer: Ich bin froh, dass es wirklich gelungen ist, als Softwareentwickler produktiv den ganzen Tag mit NVDA zu arbeiten. Das beste daran: Wenn irgendwas zu klemmen scheint, Drücke ich die NVDA-Kombination und die Software wird durchgestartet.

Ich wünsche mir, dass die kommerzielle Konkurrenz wie JAWS endlich aus den Fehlern lernt und Screenreader baut, die stabil laufen und das Abdecken, was die Anwender brauchen. Ich habe den Eindruck, dass oft Funktionen am Bedarf vorbei eingebaut werden.

Einstieg in NVDA für JAWS-Anwender – eine Starthilfe

== Einleitung ==
JAWS war lange Zeit der dominierende Screenreader auf dem Markt. Mit ihm können viele blinde und sehbehinderte Anwender ihren Beruf ausüben oder ihren privaten Interessen am PC nachgehen.

Im Schatten dieser Software und anderen kommerziellen Konkurrenten ist die Open-Source-Alternative NVDA zu einer freien und starken Konkurrenz herangewachsen. War er am Anfang hauptsächlich Vehikel um JAWS wieder flott zu bekommen, ist NVDA jetzt auf Augenhöhe mit der kommerziellen Konkurrenz angekommen.

Grund genug möglichen Anwendern den Einstieg in NVDA durch eine gezielte Anleitung zu erleichtern. Ich spreche bewusst von Ein- und nicht Umstieg, denn die zusätzliche Nutzung von NVDA bedeutet nicht ,dass sie ihr geliebtes JAWS einmotten müssen.

== Warum sollte ich NVDA statt JAWS nutzen? ==
* Sie können sich evtl. die Lizenzen für die Updates sparen und stattdessen für NVDA spenden, wenn Sie denken, dass dies gerechtfertigt ist. Auch wenn die Kosten der Updates übernommen werden, bleibt immer noch jedes Mal der Papierkrieg.
* Wenn JAWS Ihnen regelmäßig abstürzt, probieren Sie doch mal einen Screenreader, der sich selbst neu startet, wenn etwas schiefgeht bzw. bei seinem aufruf einen Neustart veranlasst.
* Sie hoffen bei jeder neuen Version von JAWS, dass Sie am Ende alle Skripte etc. am gewohnten Ort wiederfinden? NVDA wird ihre eigenen Einstellungen unangetastet lassen und auch während der Installation von Updates benutzen.
* Sie möchten einen Screenreader auf einem USB-Stick haben und ihn z.B. bei Bekannten etc. verwenden, ohne dort eine Installation vornehmen zu müssen.
* Sie möchten Windows 8 mit einem Touchscreen verwenden? Zugegeben: Das soll auch mit JAWS 15 möglich sein.
* Sie haben nur eine alte Version Ihres Screenreaders und möchten ein aktuelles Betriebssystem benutzen?
* …

Na, neugierig geworden? Das ganze kostet Sie nur ihre eigene Zeit und ein paar Bytes auf Ihrer Festplatte.

== NVDA herunterladen ==
Sie finden die aktuelle Version von NVDA auf der seite
http://www.nvda-project.org
Die Seite ist allerdings in Englisch. Alternativ können Sie die Seite
http://www. http://nvda.handytech.de/
aufrufen. Sie ist in Deutsch und NVDA kann direkt gestartet werden.
Derzeit ist NVDA in Version 2013.2 verfügbar, aber es gibt bereits eine Betaversion von 2013.3. Sie finden den Ankündigungsartikel hier:
http://community.nvda-project.org/blog/NVDA2013.3rc1Released

== Absichern des Weges zu JAWS ==
Sie werden, nach den ersten Erfahrungen in NVDA diesen beenden und JAWS erneut starten wollen – weil Sie sich noch dort besser auskennen. Deshalb sollten Sie zu Beginn JAWS einer Schnelltaste zuweisen. Selektieren Sie dafür den Eintrag JAWS auf dem Desktop und öffnen Sie die Eigenschaften mit Alt+enter. Gehen Sie nun ins Feld “Tastenkombination” und geben Sie Strg+Alt+j ein. Anschließend verlassen Sie den Dialog mit OK. Sie können nun JAWS jederzeit mit Strg+Alt+j starten.

== NVDA installieren ==
NVDA verwendet eine sprechende Installation. Deshalb sollten Sie JAWS direkt vor dem Start der Installation beenden, damit nicht zwei Stimmen mit Ihnen sprechen. Wählen sie nach dem Akzeptieren der Lizenzbedingungen “NVDA auf diesem Computer installieren” aus. Der Rest läuft quasi von selbst und es sind keine besonderen Aktionen notwendig.
ACHTUNG: Falls Sie eine Firewall wie Threadfire verwenden, meldet diese möglicherweise eine Bedrohung, weil sich ein Teil von NVDA im System registriert. Lassen Sie diese Änderung zu. Ggf. brauchen Sie hierfür sehende Hilfe, weil Z.B. Threadfire nur mit erweiterten Funktionen von NVDA bedient werden kann.

Nach der Installation ist NVDA gestartet und hat sich dabei die Tastenkombination Strg+Alt+n zugewiesen. Sie brauchen hier also keine Sicherung einzubauen.

== Sprachausgabe und Braillezeile einrichten ==
=== Sprachausgabe ===
Okay, Okay, Sie hatten gehofft, dass diese grauenhafte Stimme nur bei der Installation mit Ihnen spricht, aber sie ist geblieben? Was soll das für ein Screenreader sein, der eine solche Stimme verwendet? Keine Panik! Die eingebaute Sprachausgabe ist nicht auf guten Klang optimiert und ähnlich wie die allseits beliebte Eloquence synthetisch. Damit es etwas erträglicher wird, tun sie folgendes:
* Öffnen Sie mit Einfügen+n das NVDA-Menü. Analog zur JAWS-Taste wird die Einfügetaste unter NVDA NVDA-Taste genannt.
* Wählen Sie im Menü Einstellungen den Punkt Stimmeneinstellungen.
* Gehen Sie in das Feld Variante und probieren Sie die möglichen Stimmvarianten aus.
* Stellen Sie im Feld Geschwindigkeit die für Sie angenehmste Sprechgeschwindigkeit ein.

Sicher umwerfend sind die Stimmen nicht, aber sie haben alle Vorteile einer synthetischen Sprache. Der Autor hat bei Espeak vor allem Sprachen unterstützen wollen, für die es noch keine Sprachausgabe gab.

Falls Sie bereits eine SAPI 4 oder SAPI 5 Stimme auf dem PC installiert haben, können Sie über das o.g. Menü Einstellungen den Punkt Sprachausgabe aktivieren und dort Microsoft Speech Api Version 4 oder 5 auswählen. Anschließend können Sie über den o.g. Dialog für Stmmeneinstellungen die gewünschte SAPI Stimme auswählen.
Im Gegensatz zu JAWS kann NVDA flüssig mit SAPI-Stimmen sprechen und verzögert das System nicht.

Alternativ kann man auch Eloquence anbinden. Dies ist allerdings illegal sodass ich nicht auf die Einrichtung eingehen werde. Google oder einschlägige Mailinglisten können hier sicher abhilfe schaffen. Ich persönlich finde, das NVDA nicht wie JAWS klingen muss und würde daher die Eloquence nicht verwenden.

Weiterhin kann die Microsoft Speech Platform verwendet werden, die ab Windows 7 verfügbar ist.

Auch NVDA kann die vocalizer-Stimmen verwenden, die mit JAWS ausgeliefert werden. Damit ist ein breites Spektrum an möglichen stimmen verfügbar. Die Details zu den Sprachausgaben finden sie im Benutzerhandbuch.

=== Braillezeile einbinden ===
NVDA unterstützt nahezu alle aktuellen Braillezeilen. Da die Installation der Treiber hier sehr geräteabhängig ist, muss ich Sie auf das NVDA-Benutzerhandbuch verweisen. Sie finden die Braillezeilen im Kapitel 12. Das Handbuch erreichen Sie ebenfalls über das NVDA-Menü im Untermenü Hilfe. Es ist vollständig lokalisiert – sprich auf deutsch und passend zur NVDA-Version.

Ist die Braillezeile angebunden, dann können Sie im Menü Einstellungen im Punkt Brailleeinstellungen – wo Sie auch die Zeile eingestellt haben, die Übersetzungstabelle auswählen. Darüber wird auch die Kurzschrift eingeschaltet – es ist nur eine andere Übersetzungstabelle. Der Rest der Einstellungen zur Braillezeile dürfte selbsterklärend sein – sie sind sehr ähnlich zu JAWS.

Noch ein wichtiger Hinweis, der mich viel Zeit gekostet hat. Manchmal scheint es, dass das Cursorrouting der Braillezeile nicht funktioniert. Das hat einen simplen Grund: Sie können die Zeile entweder an die Anzeige – den NVDA-Navigator koppeln (dann geht das Cursorrouting nicht wie erwartet, sondern führt einen Klick aus. Sie können alternativ die Braillezeile an den Fokus koppeln – dann wird der Cursor an die richtige Stelle gerufen.

Das Benutzerhandbuch gibt auch die Tastaturbelegung der Braillezeilen an, damit Sie effizient arbeiten können.

== Erste Schritte in NVDA ==
Die grundlegenden Funktionen sind sehr ähnlich zu JAWS. Das Abrufen von Fenstertiteln, das Abrufen der Uhrzeit funktionieren wie gewohnt. Allerdings gibt es unter NVDA deutlich weniger Tastaturkürzel. Wie bei JAWS können sie mit NVDA+1 (Ziffernleiste) die Tastaturhilfe ein- und ausschalten. Dann können Sie erproben, welche Tastaturkürzel welche Aktion auslösen. Es gibt eine getrennte NVDA-Befehlsreferenz in der die Tastenkombinationen kompakt aufgelistet sind. Sie finden Sie ebenfalls im Menü Hilfe.

NVDA folgt den Systemfokus und kann in vielen Situationen daher intuitiv bedient werden. Das gilt auch für die Navigationstasten im Browser. Auch hier müssen Sie nicht groß umlernen. Allerdings wird Firefox statt Internetexplorer für NVDA empfohlen. Die NVDA-Firefox-Kombination gilt auf modernen Webseiten als leistungsstärker, als die JAWS-Internetexplorer-Kombination.
== Unterschiede zu JAWS ==
Diese Starthilfe wäre unnötig, wenn alles wie in JFW funktionieren würde. Wo müssen Sie also beginnen zu lernen bzw. sich umzustellen?

=== Der JAWS-Cursor ===
Die Irritationen fangen an, wenn man versucht, mit dem JAWS-Cursor zu navigieren. NVDA tut überhaupt nicht das, was Sie erwarten. Es gibt allerdings einen NVDA-Cursor und er ist dem JAWS-cursor sehr ähnlich. Er wird über den Nummernblock gesteuert.
* Die Reihe mit den Nummerntasten 7, 8 und 9 navigiert zeilenweise.
* die Reihe mit 4, 5 und 6 navigiert wortweise.
* Die Reihe mit 1, 2 und 3 navigiert zeichenweise.
* Die linke Taste geht eine Zeile, etc. zurück, die mittlere Taste liest die aktuelle Zeile etc. vor und die rechte Taste entspr. eine Zeile etc. weiter.
* Mit NVDA+Num7 (Nummernblock) Schalten Sie zum nächsten Darstellungsmodus. Mit NVDA+Num1 schalten Sie einen Darstellungsmodus zurück. Es gibt die Darstellungsmodi
* Objektdarstellung
* Dokument
* Bildschirm
Unter JAWS ist dies JAWS+r und heißt beschränkung. Die Angabe Bildschirm bedeutet hier die gesamte Anwendung.
* NVDA kennt kein Umschalten zwischen den Cursorn – Sie können jederzeit mit dem NVDA-Cursor navigieren. Er kann vom Systemfokus abgekoppelt werden, falls Sie parallel zum Schreiben einen Bereich lesen möchten.

Der NVDA-Cursor funktioniert leider nicht in allen Situationen so wie man es vom JAWS-Cursor gewohnt ist. In modernen Anwendungen, die Ihre Informationen nur über Schnittstellen wie IAccessible2 etc. herausgeben, kennt NVDA nicht die Darstellung der Anwendung auf dem Bildschirm. JAWS ist hier mit den Grafikinformationen über den eingebrachten Treiber klar im Vorteil.

=== Anwendungsspezifische Einstellungen ===
Ab NVDA 2013.3 kann NVDA ähnlich zu JAWS Einstellungen für Anwendungen speichern. Allerdings ist das Konzept hier etwas flexibler. Man kann Profile erstellen in denen sich alle Einstellungen von NVDA ändern lassen und diese Profile entweder manuell aktivieren oder für eine Anwendung aktivieren. Damit können Sie ein Profil für mehrere ähnliche Anwendungen verwenden. Der Ablauf ist in etwa so:
* Sie aktivieren mit NVDA+Strg+p den Dialog für Konfigurationsprofile. Alternativ finden Sie einen entspr. Punkt direkt im NVDA-Menü.
* Sie erstellen über den Schalter Neu ein neues Profil und weisen einen Namen zu.
* Sie weisen einen Auslöser hinzu:
entweder manuelle Aktivierung – Sie schalten es dann ein, wenn Sie es benötigen. Aktuelle Anwendung – wenn Sie für die aktive Anwendung spezielle Einstellungen vornehmen möchten. Alles lesen – wenn Sie z.B. beim Vorlesen langer Texte eine andere Sprachausgabe oder eine andere Geschwindigkeit oder was auch immer wünschen.
* Sie bestätigen, dass der Auslöser ggf. auf das neue Profil umgelegt wird und aktivieren die Bearbeitung des neuen Profils.
* Nun stellen Sie das in NVDA ein, was Sie im neuen Profil wünschen – z.B. Espeak statt SAPI.
* Sie öffnen erneut den Dialog zur Einstellung der Profile und deaktivieren das neue Profil, damit weitere Änderungen nicht im neuen Profil landen.
* Sie testen den Auslöser.

Versuchen Sie es – Sie werden begeistert sein.

=== NVDA auf Webseiten ===
Bis auf Details können Sie mit NVDA genauso auf Webseiten navigieren, wie Sie es von JAWS kennen. Ein paar Unterschiede:
* NVDA kennt keine Webseitenspezifische Einstellungen
* NVDA kennt nur eine Liste, in der Schalter, Links und Überschriften aufgelistet werden.
* Um auf einer Webseite über NVDA zu suchen, müssen Sie Strg+NVDA+f drücken – unter JAWS reicht Strg+f

=== In Microsoft Office ===
Das Office-Paket ist mit JAWS sehr gut bedienbar. NVDA bringt hier noch nicht so viel Konfort mit. Allerdings befinden sich gerade in der neuesten Version 2013.3 einige neue Funktionen für Word und Excel, die das Arbeiten deutlich erleichtern.

=== Die Armee der Hilfsprogramme ===
NVDA kennt fast keine der in JAWS bekannten Hilfsprogramme. Viele funktionen werden anders umgesetzt:
* Die Einstellungsverwaltung wird in NVDA durch das Ändern von Einstellungen und die o.g. Konfigurationsprofile umgesetzt. Das gleiche gilt auch für den Sprach- und Soundmanager.
* Es gibt keinen Skriptmanager. Es gibt zwar Skripte, aber keine mitgelieferte Entwicklungsumgebung. Man kann z.B. Eclipse nutzen, wenn man für NVDA programmiert, aber das ist ein externes Programm und die Skripte können auch mit einem Texteditor erstellt werden. Die Pythonkonsole ist das einzige Entwicklungswerkzeug, das NVDA an Bord hat.
* Der Tastaturmanager wird in gewisser Weise durch den Einstellungsdialog Eingaben ersetzt. Die Zuweisungen von Tastenkombinationen zu Skripten finden jedoch direkt im Python-Code statt.
* Es gibt keinen Grafikbezeichner in NVDA. Weder einen manuellen noch einen automatischen. Der Grund dafür ist, dass NVDA keinen Zugriff auf die grafische Darstellung der Anwendung hat und damit Grafiken nicht erkennen kann. Allerdings erkennt NVDA Werkzeugleisten korrekt, wenn sie als einzelne Knöpfe in einer Werkzeugleiste programmiert sind. In diesem Fall kann man die Werkzeuge über die unten beschriebene Navigation erreichen.
* Um Fensterklassen zuzuweisen, muss man ein wenig Python-Code schreiben. Das ist nicht wirklich schwer, aber nicht ganz so komfortabel wie die Klassenzuweisung in JAWS. Da man solche Zuweisungen in NVDA recht selten braucht, werde ich hier nicht näher darauf eingehen.
* Es gibt keinen Rahmenbetrachter und auch kein Erstellen von Prompts. Das mit dem Prompts lässt sich vermutlich recht gut über Python-code regeln.
* Die Aussprache von Wörtern kann ähnlich wie in JAWS über einen Dialog eingestellt werden.
* Es gibt keine Möglichkeit, Farben in Braille zu markieren.
* NVDA unterstützt keinen Remotedesktop. Man kann natürlich auf dem entfernten System den Sound aktivieren und dort ein NVDA starten, kann dann aber die Braillezeile nicht verwenden. Auch für Cytrix gibt es derzeit keine Unterstützung.
=== Die Statuszeile Lesen ===
Um die Statuszeile auszulesen, betätigt man in NVDA NVDA+Pos-Ende (also beides im sechserblock). Dies funktioniert wie in JAWS nur dann, wenn die Statuszeile als solche kenntlich gemacht ist.

== Die Navigation in NVDA ==
Ich habe jetzt schon mehrfach die geheimnisvolle Navigation in NVDA angesprochen. Was hat es damit auf sich? Sie funktioniert ähnlich dem in JAWS bekannten Home-Row-Modus. Sie kennen Ihn nicht? Nun, er wird unter JAWS meist zum intensiven Erkunden von Anwendungen eingesetzt, um sie skripten zu können. Bei dieser Navigation bewegt man sich durch die Objekte der Anwendung, mit der Sie gerade arbeiten. Das inzwischen bekannte VoiceOver von Apple verwendet einen sehr ähnlichen Ansatz. Statt den ganzen Schirm einer Anwendung zu sehen, bewegt man sich zwischen Objekten, steigt in sie hinab oder aus ihnen heraus. Genauso verhält es sich in NVDA.

Mit NVDA+ Num4 (Nummernblock) gehen sie ein Objekt zurück, mit NVDA+Num6 ein Objekt vorwärts. NVDA+Num5 liest das aktuelle Objekt vor. NVDA+Num8 steigt aus einem Objekt nach oben. NVDA+Num2 steigt in das aktuelle Objekt hinein. Mit NVDA+Numenter (lange senkrechte Taste rechts auf dem Nummernblock) führt die Standardaktion auf dem aktuellen Objekt aus – meistens ein Klick.

Versuchen Sie es und bewegen sich z.B. durch diesen Artikel mit den o.G. Navigationsbefehlen.

NVDA+Numminus (oben rechts auf dem Nummernblock) zieht den Navigator zum Fokus – falls sie sich mal mit dem Navigator verlaufen haben.
NVDA+Numstern (zweite von rechts oben im Numernblock) zieht den Navigator zur Maus. Das kann z.B. hilfreich sein, wenn Ihnen jemand etwas zeigen möchte und die Maus auf die interessante Stelle bewegt hat.
NVDA+Numschrägstrich (direkt neben der Numlocktaste oben im Nummernblock) zieht die Maus zum aktuellen Navigator. Mit NVDA+Numminus und anschließend NVDA+Numschrägstrich können Sie so die Maus zum Fokus navigieren.

Wir können zusammenfassend sagen, dass NVDA ein JAWS mit gleichzeitig aktivem PC-Cursor, JAWS-Cursor und Home-Row-Modus ist.

== NVDA skripten und anpassen ==
Und was ist mit Skripting? NVDA kann wie JAWS mit Skripten an Anwendungen angepasst werden. Die Schwierigkeit liegt dabei weniger in der Sprache Python, die in NVDA verwendet wird als in den Funktionen die NVDA zum Skripting bereitstellt. Hier muss man sich wie in JAWS intensiv einarbeiten. Die Skripte liegen in einem benutzerspezifischen ordner, oder können an einen gemeinsamen Ort für alle Benutzer eines PC erstellt werden. Außerdem gibt es Plugins, die NVDA um allgemeine oder anwendungsspezifische Funktionen erweitern. Auf der Webseite des Projekts finden Sie einen Verweis auf ein Verzeichnis solcher Plugins. Eines davon richtet eine OCR ein, sodass Sie ein grafisches Bild mit Text erkennen lassen können.

== Fazit ==
Es gibt nur relativ wenig Situationen, bei denen NVDA JAWS deutlich unterlegen ist. Dies sind vor allem solche, in denen die grafischen Bildschirminformationen wichtig sind. Z.B. verwenden einige Anwendungen verschiedene Grafiken um den Zustand von Schaltern oder Einträgen darzustellen.
Weiterhin ist NVDA in der Unterstützung für MS Office noch nicht auf dem Stand von JAWS. Aber die grundlegenden Funktionen lassen sich bereits gut nutzen.

Ich möchte an dieser Stelle ausdrücklich für Spenden an das NVDA-Projekt werben. Eine solche Software ist zwar kostenlos, aber sie zu entwickeln kostet viel Geld und Zeit. Dabei sind auch kleine Spenden hilfreich. Ohne Spenden steht ein solches Projekt vor dem aus und es gäbe keine Alternative zu kommerziellen Screenreadern. Zum Spenden können Dienstleister wie Paypal genutzt werden. Dabei müssen Sie nur den Betrag mit einem Auswahlschalter wählen und sich bei Paypal anmelden. Wer kein Paypal hat oder sich das nicht zutraut, kann sich an einschlägige Mailinglisten für NVDA wenden – manchmal wird dort eine Spendenaktion durchgeführt und sie können das Geld in Deutschland überweisen.

Vom Hai zum Känguru – von der Zwangsabgabe zur freiwilligen Spende

Es ist vollbracht. An meinem privaten PC hüpft quasi nur noch das Känguru [[http://www.nvda-project.org | 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 kleiner 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. Die Verwendung der nativen Win32-API ist bei solchen Frameworks sinnlos, weil sie alle Oberflächenelemente selbst zeichnen. 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? Außerdem war NVDA immer zur Stelle, wenn sich JAWS mal wieder aufgehängt hatte und beendet werden musste. 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. Außerdem konnte ich mit NVDA weitgehend einen Elterngeldantrag von [[http://www.elterngeld.de/pages/elterngeld.html]] ausfüllen. Hier sind lediglich die Kontrollkästchnen nicht immer klar mit ihrem Status erkennbar. Das ist sicher ein gravierendes Problem, aber für mich zählt, dass ich die Eingabefelder lesen und editieren konnte und alle Elemente gut lesbar waren.

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.
Diese Form der Navigation kann dadurch unterstützt werden, indem Entwickler konsequent alle Steuerelemente (auch Groupboxen) mit Zugänglichkeitsattributen ausrüsten. Hier erhält der Anwender schnell die Information in welchem Bereich er sich gerade befindet.
NVDA beherrscht etwas ähnliches wie dem JAWS-Cursor. Das nennt sich Screen-Review-Modus und wird mit Nvda+Num7 ein- und ausgeschaltet. Diese Navigationsform ist dann sinnvoll, wenn die Objekthierarchie nicht zum gewünschten erfolg führt oder die optische Anordnung innerhalb der Anwendung wichtig ist.
# 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. Apropos cursorrouting: Dies wird unter NVDA auch unterstützt, reagiert aber manchmal etwas anders als von JAWS gewohnt. Unter dem Hai ist das Cursorrouting ein Klick an die passende Stelle in der Anwendung. Unter NVDA wird für das Objekt, in dem das Routing ausgeführt wird, die Standardaktion ausgeführt. Das muss nicht immer ein Klick sein. Beim Bearbeiten von Texten ist dies kein Unterschied, aber wenn man z.B. in Visualstudio ein Fenster durch einen Klick aktivieren möchte, funktioniert Cursorrouting nicht. Es handelt sich eben um eine andere herangehensweise.
# Mit Nvda+Num/ zieht man die Maus zum Navigator-Objekt und kann dann mit Num/ einen Linksklick ausführen. Dies hat bei mir allerdings manchmal 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. Dazu muss jeweils die NVDA-Taste gedrückt werden. 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. Eine Auflistung der Navigations-Tastenkombinationen erspare ich mir hier – das ist bereits im Handbuch und der Kurztastenreferenz so wie in der Tastaturhilfe geschehen. Die Tasten des Nummernblocks ohne NVDA-Taste lesen übrigens den Text Zeilen- Wort- oder Zeichenweise je nach Reihe des Blocks.
# 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.
# Auf Webseiten muss man eingebettete Objekte wie Flash-Filme zunächst z.B. mit der Leertaste aktivieren. Fortan ist man in diesem Objekt “gefangen” und kann zwischen den Schaltern etc. navigieren. Zum Verlassen des objekts drückt man Strg+NVDA+Leertaste. Das klingt konsequent und führt aus meiner Sicht zu einer besseren Zugänglichkeit der eingebetteten Objekte.
# NVDA kennt nicht das große (und für mich unübersichtliche) Arsenal an Hilfsprogrammen unter JAWS. Vielleicht ein Nachteil, aber dem steht die Programmierung über Python (siehe unten) gegenüber.
# 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 Installation oder Aktualisierung von NVDA dauert nicht mehr als ein paar minuten. Dabei begleiten einen die gesamte Zeit während der Installation die zuletzt eingestellten Stimmeneinstellungen. Seit Version 2012.1 beherrscht NVDA ein automatisches Aktualisieren und zwar je nach dem, ob eine Release- Beta- oder sog. Snapshotversion verwendet wird.
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.
Allerdings ist mir auch aufgefallen, das die Verwendung einer Handytech-Braillezeile die Performance irgendwie reduziert. Das ist nur mein ganz persönlicher Eindruck. Kleinigkeit, aber irgendwie bekommt JAWS auf der Arbeit deshalb ab und an wieder seine Chance, weil ich irgendwie nicht schnell genug arbeiten kann.

Apropos Braillezeile: Auch hier verhält es sich etwas anders als unter JAWS. NVDA verwendet eine Art strukturierten Modus (so heißt das unter JAWS) und zeigt neben der aktuellen Zeile auch Informationen der übergeordneten Fenster auf der Zeile an. Ob das so wirklich hilfreich ist, kann ich nicht beurteilen. Mir persönlich ist der Flächenmodus lieber, aber das kann man unter NVDA nicht einstellen.

Die zwei getrennten Installationspakete von NVDA wurden in einem vereinigt, was gleichzeitig für alle Sprachen lokalisiert ist. Das bedeutet: Man packt das einmal auf seinen USB-Stick und kann sich spontan entscheiden, ob man die portable Version z.B. bei einem Kumpel verwenden möchte, oder ob eine dauerhafte Installation sinnvoll 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 Highlight von NVDA ist sicher der Plugin-Mechanismus mit denen man ähnlich wie unter JAWS spezielle Anwendungsunterstützung oder Erweiterungen für allgemeine Funktionen installieren kann. So gibt es z.B. ein Plugin um auf einem Objekt eine optische Zeichenerkennung (OCR) auszuführen. Damit zieht NVDA mit JAWS 13 gleich. Eine Seite für solche Plugins findet man unter [[http://www.stormdragon.us/nvda/]]

Ein Hindernis für die noch zögerlichen Umsteiger dürfte die etwas andere Bedienphilosophie sein. Auch die Darstellung auf der Braillezeile ist gewöhnungsbedürftig.

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. Apropos Entwickler: Es gibt eine Bibliothek, die man in Anwendungen einbinden kann, um direkt mit NVDA zu kommunizieren. Wer will kann also, an allen üblichen Wegen vorbei eine Anwendung programmatisch zugänglich machen. Das ist sicher nicht ganz einfach, aber wenn die verwendeten Frameworks etc. nicht die notwendige Unterstützung für Screenreader bereitstellen, kann dies ein vergleichsweise einfacher Weg 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?

== Nachtrag ==
* Mitlerweile funktioniert die Papenmeier Trio gut mit NVDA.
* Der Treiber der Zeile wird auch nicht mehr bei einem JAWS-Update beschädigt.
* Outlook 2010 kann ich zwar zu hause mit NVDA nutzen, am Arbeitsplatz friert NVDA aber bei einer geöffneten Mail ein. Woran das liegt konnte ich noch nicht ergründen. Das hält JAWS immer noch im Spiel.
* Ich musste nur deswegen von JAWS 12.0 auf JAWS 14.0 kostenpflichtig aktualisieren, weil JAWS 12.0 in einer Eingabeaufforderung unter Windows 7 keinen Pfeilrauf (die Taste) verträgt. Ich finde es eine unverschämtheit, dass solche Blocker nicht kostenfrei korrigiert werden.

Unterstützung für Windows 8 schon länger in NVDA

Offenbar ist die Unterstützung von Windows 8 schon länger in NVDA (Non Visual Desktop Access geplant. Bereits in der letzten Version 2011.3 wurden erste Fixes vorgenommen. Ein Test steht freilich noch aus. Es ist gut, wenn ein Freeware-Screenreader sich an der Front auch mit solchen neuen Systemen messen lassen kann. Immerhin gibt es von Freedom Scientific noch keine äußerung zu Windows 8. Window Eyes soll auch unter Windows 8 laufen. Das berichtet ein Podcast auf www.blindcooltech.com
Hier nun der Link zum Blog-Beitrag der auf die Windows 8 Unterstützung in NVDA hinweist:

NV Access – Blog: NVDA 2011.3 Released.

Screenreadervergleich ist keine Entscheidungshilfe

Auf der Seite www.dlinfo.de gibt es einen Vergleich von Screenreadern.

Screenreader werden von blinden und sehbehinderten Menschen verwendet, um den Inhalt des Bildschirms am PC zu erfassen.

Aufbau des Vergleichs

Der Vergleich findet zwischen fünf Screenreadern statt, die man getrost als die am häufigsten verwendeten Reader bezeichnen kann. Die Auswahl umfasst dabei einen kostenlosen (NVDA), einen zum Betriebssystem gehörenden (Voiceover) und drei kommerzielle Produkte.
Der Vergleich findet mit den Anwendungen Windowsexplorer, Outlook express, Excel und dem Browser statt. Außerdem wird das Erkunden eines Dialogs mit einem virtuellen Cursor demonstriert.

Tiefe und Vergleichbarkeit

Die Auswahl der Anwendungen entspricht der absoluten Einstiegsklasse. Man könnte Autos auch vergleichen, in dem man sie geradeaus oder um eine Kurwe fahren ließe. Das Ergebnis des Vergleichs fällt auch hier entspr. ähnlich aus. Leider werden nicht einmal die originalstimmeneinstellungen der Reader verwendet, sodass man nicht einmal die Stimmen miteinander vergleichen kann. Alle Reader bis auf Voiceover beherrschen SAPI 4 und 5, sodass man problemlos die Stimme seiner Wahl nachrüsten kann. Der vergleich vergleicht verschiedenes. Beim Explorer und bei Outlookexpress werden mit den verschiedenen Readern verschiedene Funktionen der Anwendungen vorgeführt. Das Ergebnis wäre bei gleichen Arbeitsschritten nicht deutlich anders – geradeausfahren können immerhin alle Autos, aber das Vorgehen deutet auf ein nicht durchdachtes Konzept hin. Der Explorer berücksichtigt auch keine Funktionen von Windows 7 sondern es wird offenbar Windows XP verwendet, dass nun immerhin schon zwei Windowsgenerationen hintenliegt.

Bewertung der Ergebnisse

Der Vergleich überlässt es vollständig dem Anwender, die gehörten Ergebnisse zu bewerten. Das fällt um so schwerer, weil einige Teile des Vergleichs als rasselnder Stimmensalat auf einen herniederregnen. Ja, alle können problemlos den Schnellsprechwettbewerb gewinnen! Aber wie gesagt, das besorgt die unabhängige Stimme. In Excel patzt NVDA beispielsweise dadurch, dass Zellenadresse und Zelleninhalt vermischt bzw. zusammen vorgelesen werden. Aus A1 Inhalt 12 wird damit A112. Das ist ein Knockout-Kriterium für die Arbeit mit NVDA in Excel. Soetwas sollte man bei einem Vergleich kommentieren. Vielen dürfte dieses Problem nicht auffallen, und wer dann glaubt: NVDA liest Excel prima vor, der hat hinterher ein langes Gesicht.

Fazit

Der Vergleich beantwortet keine Fragen zu Unterschieden der Reader. Es werden fast keine Readerkommandos verwendet, die die Unterschiede wirklich deutlich machen können. Wenn ein Hersteller den Autor des Vergleichs zudem noch als Screenreadertitam preist, muss man sich fragen, welcher Maßstab hier angelegt wird. Sicher ist die Firma Dräger & Lienert sehr bewandert im Bereich der Screenreader, aber dann sollte man das auch wirklich zeigen und sich deutlich mehr Zeit für einen Vergleich nehmen. Dazu gehören Stressituationen in Anwendungen, Anpassungen etc. Eben alles, wo die Reader wirklich gefordert sind. Es fällt außerdem auf, dass Cobra offenbar deutlich träger reagiert, als die Konkurrenten – einmal vorausgesetzt, dass die gleiche Hardware im Test genutzt wurde.