Das Problem mit ssh und den Screenreadern
In der heutigen Zeit ist es nicht mehr ungewöhnlich für bestimmte Dienste oder Anwendungsfelder einen eigenen Home- oder root-Server zu betreiben, auf dem Linux als Betriebssystem eingesetzt wird. Egal ob es um die heimische Medienzentrale oder den eigenen VServer für die eigene Website und die privaten Mailpostfächer geht, früher oder später möchte oder muss man auf die Maschine, die oft über keinen eigenen Monitor oder keine eigene Tastatur verfügt oder sogar nichtmal in den eigenen Räumlichkeiten steht, zugreifen, um auf einer Shell z.B. bestimmte Konfigurationsarbeiten durchzuführen. Das Mittel der Wahl für diesen entfernten Zugriff ist ssh, welches einerseits durch die Verwendung einer verschlüsselten Verbindung für die nötige Sicherheit während des Zugriffs sorgt, und andererseits auch mit vielen Tools z.B. zum Austausch von Dateien daher kommt.
So nützlich ssh für entfernte Zugriffe auf Linux-Server auch ist, so problematisch ist aber unter Umständen leider auch die Nutzung für blinde oder sehbehinderte Personen, die einen Screenreader für ihre Arbeit am Computer benötigen. Je nachdem, welches Betriebssystem und welcher Screenreader auf dem Client, also auf dem Rechner von dem aus der Zugriff stattfinden soll, eingesetzt wird, ist das Arbeiten auf der entfernten Maschine und die Nutzung von Programmen auf dem Server daher schwierig bis unmöglich.
Der Hauptgrund für diese Schwierigkeiten ist die Tatsache, dass der lokal auf dem Client installierte Screenreader nicht die benötigten Informationen oder Bildschirmattribute über die Programme auslesen kann, die auf dem entfernten Server ausgeführt oder genutzt werden. Für das lokal installierte Bildschirmleseprogramm läuft lediglich ein ssh-Client, was jedoch innerhalb der Verbindung, die mit Hilfe dieses ssh-Clients aufgebaut wurde, genau stattfindet, bleibt dem Screenreader verborgen. Es wird lediglich die ganz normale Bildschirmausgabe vorgelesen, also die Dinge, die während der Verbindung auf dem Bildschirm angezeigt werden, ob aber z.B. ein Menüpunkt in einem Programm, das auf dem entfernten Linux-Server gestartet wurde, angezeigt oder hervorgehoben dargestellt wird, kann das lokal installierte Bildschirmleseprogramm nicht erkennen und somit auch nicht entsprechend verarbeiten und deshalb dann z.B. auch nicht mehr richtig den Cursor verfolgen, Menüeinträge entsprechend vorlesen, etc.
Prinzipiell kann festgestellt werden, dass Screenreader, die für grafische Betriebssysteme wie Windows oder Mac OS konzipiert wurden, schlechter für Aufgaben funktionieren, für die per ssh auf entfernte Maschinen zugegriffen werden muss. Dies liegt, wie oben bereits angesprochen, daran, dass die Bildschirmleseprogramme nicht an die benötigten Informationen kommen bzw. nicht die verschiedenen Schnittstellen zum Betriebssystem auslesen können, die sie für eine gute Aufbereitung des Bildschirminhaltes benötigen. Wird auf dem Client jedoch ein textbasiertes Betriebssystem mit einem dafür verfügbaren Screenreader eingesetzt, also z.B. ebenfalls ein Linux, dann ist das Arbeiten mit ssh oft ohne Probleme möglich.
Im folgenden sollen kurz die Zugriffsmöglichkeiten von verschiedenen Client-Systemen aus aufgeführt und die damit einhergehenden Vor- und Nachteile angesprochen werden.
Linux
Linux ist schon seit langer Zeit auch für blinde und sehbehinderte Menschen gut mit screenreader nutzbar. Für die textbasierte Umgebung, die sog. Konsole, Shell oder das Terminal, gibt es mehrere Bildschirmleseprogramme, die hervorragend funktionieren und ein produktives Arbeiten ohne Einschränkung mit Hilfe einer Braillezeile, einer Sprachausgabe oder einer Kombination aus beiden ermöglichen. Die am meisten verbreitetsten Screenreader für eine textbasierte Linux-Umgebung sind brltty, OpenBlinux (ehemals Sbl) oder eSpeak. Möchte man als blinder Anwender in einer grafischen Benutzeroberfläche unter Linux arbeiten, so kann zur Zeit als Screenreader nur Orca mit der grafischen Benutzeroberfläche Gnome bzw. einigen Abkömmlingen dieser grafischen Oberfläche eingesetzt werden.
Bezüglich des Zugriffs per ssh gilt für linux-Clients, dass von einer textbasierten Umgebung völlig problemlos und ohne Einschränkungen ein Arbeiten auf entfernten Systemen mit Hilfe des von der jeweiligen Distribution mitgelieferten ssh-Clients möglich ist. Alle Bildschirminhalte werden angezeigt, in den auf dem entfernten System gestarteten Programmen funktioniert in der Regel die Cursorverfolgung, etc.
Wird Orca als Screenreader für die grafische Oberfläche Gnome verwendet, so kann innerhalb eines Terminal-Fensters ebenfalls der standardmäßig installierte ssh-Client der Distribution genutzt werden, allerdings kann es hier, wie bei der Arbeit mit anderen grafischen Betriebssystemen auch, zu den bereits oben angesprochenen Problemen mit der richtigen Interpretation des Bildschirminhaltes und zu Problemen mit der Verfolgung des Cursors kommen :-(.
Mac OS
Mac OS kann von blinden Menschen mit Hilfe des Screenreaders VoiceOver genutzt werden. VoiceOver wurde vorrangig für die Verwendung innerhalb der grafischen Bedienungsoberfläche von Mac OS konzipiert, es lassen sich damit aber auch rudimentäre Arbeiten im Text Terminal, das sich innerhalb des Dienstprogramme-Ordners in den Applikationen befindet, durchführen.
Wird ein Text Terminal gestartet, so steht auf jedem Mac OS System ein normaler ssh-Client für die Kommandozeile zur Verfügung. Weiterhin können über den App Store oder aus dem Internet diverse alternative ssh-Clients geladen und installiert werden, wobei ich hier noch keinen gefunden habe, der besser mit VoiceOver arbeitet, als der vom System standardmäßig mitgebrachte ssh-Client für die Kommandozeile.
Wird ein Text Terminal gestartet, so liest VoiceOver den Inhalt des Fensters ganz gut und problemlos vor, solange keine komplizierteren oder größeren Ausgaben erfolgen. Dabei kann zeilenweise in der Bildschirmausgabe navigiert werden, indem die Pfeiltasten zusammen mit der VoiceOver-Tastenkombination genutzt werden.
wird jedoch einmal viel Text im Terminal ausgegeben, so ist der Screenreader schnell überlastet und funktioniert selbst nach dem Umschalten in ein grafisches Fenster oft erstmal nicht mehr richtig. Werden auf dem entfernten Rechner Programme gestartet, so kommt es auch mit VoiceOver leider zu den bereits oben angesprochenen Problemen und der Cursor-Fokus geht verloren, hervorgehobene Bildschirminhalte werden nicht erkannt, etc. Selbst Programme, deren Oberfläche recht einfach aufgebaut ist, können mit VoiceOver nicht zuverlässig auf dem entfernten Server genutzt werden.
VoiceOver macht also nur für kleinere Arbeiten auf entfernten Systemen Sinn, mal einen Dienst durchstarten oder etwas im Log suchen geht ganz gut, sobald jedoch eine Datei mit Hilfe eines Editors bearbeitet werden soll, beginnen bereits die Schwierigkeiten und das Arbeiten auf dem entfernten System wird problematisch und ist nur mit viel Übung und Geduld möglich :-(.
Windows
Auf Windows-Systemen ist standardmäßig kein ssh-Client vorhanden, sodass dieser erst installiert werden muss. Der wohl am häufigsten eingesetzte ssh-Client für Windows, der mit einer grafischen Benutzeroberfläche daher kommt und alle für ssh benötigten Features beinhaltet, ist Putty.
Obwohl die Oberfläche von Putty selbst mit den gängigsten Windows-Screenreadern gut bedienbar ist, treten bei den ssh-Sitzungen leider auch hier die Probleme mit der schlechten Cursorverfolgung usw. auf, wie sie weiter oben bereits beschrieben wurden. Je nach eingesetztem screenreader und je nach der Menge der eigenen Geduld und Übung ist mit Putty zwar schon ein einigermaßen sinnvolles Arbeiten möglich, wirklich komfortabel ist die Lösung jedoch nicht.
Alternativ kann unter Windows auch der ssh-Client des Cygwin-Projekts eingesetzt werden. Das Cygwin Projekt versucht viele nützliche Tools, die es so nur auf Linux-Systemen gibt, auch für Windows lauffähig zu machen, u.a. natürlich auch ssh.
Über diesen Link kann ein zip-File mit allen ausführbaren Dateien und Bibliotheken, die ein funktionsfähiger ssh-Client aus dem Cygwin Projekt für die Verwendung unter Windows benötigt, heruntergeladen werden. Nachdem das Archiv gespeichert und entpackt wurde, befinden sich alle Dateien in einem Ordner namens „cygwinssh“. Die ausführbahren Dateien, also z.B. ssh.ex oder scp.exe, sind reine Tools für die Kommandozeile, d.h. sie müssen in einer Dos-Box unter Windows verwendet werden.
Meine Erfahrung ist, dass der Zugriff per ssh auf entfernte Systeme mit dem ssh-Client von Cygwin besser funktioniert, als wenn Putty verwendet wird., ich muss aber auch dazu sagen, dass ich selten unter Windows mit ssh arbeite und daher bestimmt nicht alle Tricks und Kniffe kenne, die ein komfortableres Arbeiten z.B. mit Putty ermöglichen. Trotzdem ist es vielleicht für den einen oder anderen einen Versuch wert, auch mal den ssh-Client von Cygwin auszuprobieren :-).
Fazit
Meine ganz persönliche Meinung für das Arbeiten per ssh auf entfernten Systemen mit Hilfe eines Screenreaders ist, dass dies wirklich komfortabel und produktiv nur mit einem textbasierten Linux-Client durchgeführt werden kann. Alle anderen Varianten, also ssh via Putty oder Cygwin von Windows aus, oder mit dem ssh-Client im Terminal unter Mac OS, kommen nur für kleinere Tätigkeiten wie das Durchstarten eines Dienstes o.ä. in Frage, bei größeren Arbeiten, wie z.B. das Editieren längerer Konfigurationsdateien oder das Erstellen von Skripten, stößt man auf Grund der mangelnden Unterstützung des Bildschirmleseprogramms schnell an Grenzen. Natürlich ist die Einarbeitung und die Installation und Konfiguration eines linux-Systems, das für diese Arbeiten verwendet werden soll, aufwändig und zeitintensiv, doch benötigt man ssh wirklich häufig und auch für umfangreichere Arbeiten, lohnt sich dieser Aufwand.
Persönlich verwende ich entweder ein dirrekt auf meinem Laptop installiertes Debian Linux mit dem Screenreader OpenBlinux bzw. sbl, oder eine virtuelle Maschine mit der gleichen Kombination aus Debian und OpenBlinux unter Mac OS.