685 Stimmen

Wie kann man programmieren, wenn man blind ist?

Das Sehen ist einer der Sinne, die die meisten Programmierer als selbstverständlich ansehen. Die meisten Programmierer würden stundenlang auf einen Computerbildschirm schauen (vor allem, wenn sie gerade in der Zone ), aber ich weiß, dass es blinde Programmierer gibt (wie T.V. Raman, der derzeit für Google arbeitet).

Wenn Sie eine blinde Person wären (oder langsam blind werden), wie würden Sie Ihre Entwicklungsumgebung einrichten, um Sie beim Programmieren zu unterstützen?

(Bitte einen Vorschlag pro Antwort. Der Zweck dieser Frage ist es, die guten Ideen an die Spitze zu bringen. Außerdem können Bildschirmleser die guten Ideen früher lesen.)

1015voto

Jared Punkte 38791

Ich bin ein völlig blinder College-Student, der mehrere Programmier-Praktika absolviert hat, also wird meine Antwort auf diesen basieren. Ich verwende Windows xp als Betriebssystem und Kiefer um mir das, was auf dem Bildschirm erscheint, in synthetischer Sprache vorzulesen. Für die Java-Programmierung verwende ich Eclipse, da es eine voll ausgestattete IDE ist, die zugänglich ist.

Meiner Erfahrung nach sind Java-Programme, die SWT als GUI-Toolkit verwenden, in der Regel zugänglicher als Programme, die Swing verwenden, weshalb ich mich von Netbeans fernhalte. Für jede .net-Programmierung verwende ich Visual Studio 2005, da es die Standardversion war, die bei meinem Praktikum verwendet wurde und mit Jaws und einer Reihe von Skripten, die entwickelt wurden, um Dinge wie den Formulardesigner besser zugänglich zu machen, sehr zugänglich ist.

Für die C- und C++-Programmierung verwende ich cygwin mit gcc als Compiler und emacs oder vim als Editor, je nachdem, was ich zu tun habe. Ein großer Teil meines Praktikums bestand aus der Programmierung für Z/OS. Ich benutzte eine rlogin-Sitzung über Cygwin, um auf das USS-Subsystem auf dem Mainframe zuzugreifen, und C3270 als meinen 3270-Emulator, um auf den ISPF-Teil des Mainframes zuzugreifen.

Ich benutze normalerweise synthetische Sprache, habe aber eine Braillezeile. Ich finde, dass ich in der Regel mit Sprache schneller arbeiten kann, aber ich benutze die Braillezeile in Situationen, in denen Interpunktion wichtig ist und kompliziert wird. Beispiele dafür sind if-Anweisungen mit vielen verschachtelten Klammern und JCL, bei denen die Zeichensetzung unglaublich wichtig ist.

Update

Ich spiele mit Emacspeak unter Cygwin http://emacspeak.sourceforge.net Ich bin mir nicht sicher, ob es als Programmiereditor verwendbar ist, da es etwas unempfindlich zu sein scheint, aber ich habe mir noch keine der Konfigurationsoptionen angesehen.

275 Stimmen

Wirklich erstaunlich. Herzlichen Glückwunsch!

31 Stimmen

Da ich einen blinden Vater hatte, der sich sehr gut mit Computern auskannte, und weiß, was er durchgemacht hat, um Windows zugänglich zu machen, erstaunt mich Ihre Einrichtung. :)

118 Stimmen

Angenommen, Sie verwenden auch Laptops: Schalten Sie jemals den Bildschirm aus, um die Akkulaufzeit zu verlängern? Denn das wäre ein großer Gewinn.

400voto

Saqib Punkte 6940

Ich bin blind und programmiere seit etwa 13 Jahren auf Windows, Mac, Linux und DOS, in Sprachen wie C/C++, Python, Java, C# und verschiedenen kleineren Sprachen. Obwohl sich die ursprüngliche Frage auf die Konfiguration der Umgebung bezog, denke ich, dass sie am besten beantwortet werden kann, wenn man sich ansieht, wie eine blinde Person einen Computer benutzen würde.

Manche Leute verwenden eine sprechende Umgebung, wie T. V. Raman und die in anderen Antworten erwähnte Emacspeak-Umgebung. Die bei weitem üblichere Lösung ist ein Bildschirmlesegerät, das im Hintergrund läuft, die Aktivitäten des Betriebssystems überwacht und den Benutzer über synthetische Sprache oder eine physische Braillezeile (die in der Regel zwischen 20 und 80 Zeichen gleichzeitig anzeigt) warnt. Auf diese Weise kann eine blinde Person jede zugängliche Anwendung nutzen.

Daher verwende ich persönlich heutzutage Visual Studio 2008 und führe es mit nur wenigen Änderungen aus. Ich schalte bestimmte Funktionen wie die Anzeige von Fehlern während der Eingabe aus, da ich dies als störend empfinde. Bevor ich zu Microsoft kam, habe ich meine gesamte Entwicklung in einem Standard-Texteditor wie Notepad durchgeführt, also auch hier keine Anpassungen.

Es ist möglich, ein Bildschirmlesegerät so zu konfigurieren, dass es die Einrückung anzeigt. Ich persönlich benutze dies nicht, da Visual Studio sich darum kümmert und C# geschweifte Klammern verwendet. Aber in einer Sprache wie Python, in der Leerzeichen wichtig sind, wäre dies sehr wichtig. Schließlich verwendet Emacspeak verschiedene Stimmen/Tonhöhen, um verschiedene Teile der Syntax (Schlüsselwörter, Kommentare, Bezeichner, usw.) anzuzeigen.

5 Stimmen

Notizblock, wow. Haben Sie jemals einen physischen Notizblock verwendet, um Code zu schreiben (z. B. mit einem Braille-Stift?) Verwenden Sie IntelliSense? Wie schnell spricht Ihr Bildschirmlesegerät?

6 Stimmen

Hallo Saqib, ich habe dein Interview auf hanselminutes genossen (in der Annahme, dass du derselbe Typ bist :) . Der ctrl-shift-escape-Tipp war neu für mich!

5 Stimmen

UpTheCreek bezieht sich auf: channel9.msdn.com/blogs/dan/

107voto

Manish Punkte 61

Ich bin blind und arbeite seit etwa 12 Jahren als Programmierer. Derzeit bin ich leitender Architekt und arbeite für die Sapient Corporation (ein in Cambridge ansässiges Beratungsunternehmen, das sowohl webbasierte als auch Thick-Client-basierte Unternehmenslösungen entwickelt). Ich verwende mehrere Bildschirmleseprogramme, aber meistens verwende ich Jaws für Windows und NVDA.

Ich habe hauptsächlich mit der Microsoft-Plattform und Visual Studio als Umgebung gearbeitet. Ich verwende auch Tools wie das MS Sql Enterprise Studio und andere für DB-Zugriff, Netzwerküberwachung usw. Ich habe versucht, einige Zeit mit Emacspeak zu verbringen, aber da meine Arbeit hauptsächlich auf der MS-Plattform basiert, habe ich nie wirklich viel Zeit damit verbracht. Ich habe auch einige Jahre mit C++ unter Linux gearbeitet - meist mit Notepad oder Visual Studio unter Windows für die gesamte Programmierung und dann mit Samba für den Austausch von Dateien mit der Linux-Umgebung. Ich habe auch Borland C für einige experimentelle Sachen benutzt. Kürzlich habe ich mit Python herumgespielt, das, wie bereits erwähnt, für einen blinden Benutzer besonders unfreundlich ist, weil es mit Einrückung als Verschachtelungsmechanismus geschrieben ist. Abgesehen davon ist NVDA, der beliebteste Open-Source-Bildschirmleser, komplett in Python geschrieben, und einige der Entwickler dieses Projekts sind selbst blind. Eine besonders interessante Frage, die mir als Architekt häufig gestellt wird, ist, wie ich mit Diagrammen umgehe - UML und Visio und Rational Rose usw. Visio ist wahrscheinlich das am besten zugängliche Diagrammwerkzeug, das es gibt. Ich konnte Jaws-Skripte schreiben, um Rational-Rose-Diagramme für mich zu lesen. Ich habe ein Tool namens T-dub (technical diagram understanding for the blind) verwendet, das von einer deutschen Universität für den Zugriff auf UML 2.0-Diagramme entwickelt wurde. Ich habe ein javabasiertes, hässliches Tool namens Magic Draw für die modellgetriebene Entwicklung verwendet und war an dem androMDA-Projekt beteiligt und half bei der Entwicklung des .Net-Codegenerators aus einem UML-Modell.

Im Allgemeinen finde ich, dass ich in einem Teamumfeld, in dem ich meine Stärken ausspielen kann, am besten gedeihe. Ein Diagramm ist zwar äußerst nützlich, um einen Entwurf zu kommunizieren/dokumentieren, aber der eigentliche Entwurfsprozess erfordert viel Nachdenken und Brainstorming, und wenn der Entwurf durchdacht ist, kann einer der Teamkollegen einem helfen, schnell ein sauber gezeichnetes Bild daraus zu machen. Fälschlicherweise wird dies als mangelnde Unabhängigkeit oder Fähigkeit missverstanden, während ich es als reine gegenseitige Abhängigkeit betrachte - ich bin mir sicher, dass der Teamkollege allein niemals auf diesen Entwurf gekommen wäre, und wenn ich wiederum auf ihn angewiesen bin, um den Entwurf zu dokumentieren, dann ist das eben so. Die meisten Hürden, mit denen ich konfrontiert werde, sind auf die Unzugänglichkeit von Werkzeugen zurückzuführen. So haben beispielsweise alle Oracle-Produkte im Laufe der Jahre an Zugänglichkeit eingebüßt (eine Schande für sie), und eine Teamumgebung bietet mir neben meinen Screenreadern und benutzerdefinierten Skripten eine zusätzliche Verteidigungsschicht gegen diese Probleme.

6 Stimmen

Sind Sie in Indien ansässig? Und wohin sind Sie verschwunden? Nach diesem einen Beitrag scheinst du verschwunden zu sein.

1 Stimmen

Als Programmierer tut es mir einfach so leid, dass ich der Barrierefreiheit nie genug Aufmerksamkeit geschenkt habe... Es tut mir so leid...

53voto

Ich bin ein blinder Entwickler und arbeite unter Windows, GNU Linux und MacOS X. Jede dieser Plattformen hat unterschiedliche Arbeitsabläufe für blinde Benutzer. Dies hängt von dem Bildschirmleseprogramm ab, das der blinde Entwickler verwendet. Die Entwicklungswerkzeuge sind für blinde Entwickler nicht vollständig zugänglich. Ich kann in allen IDEs Code eintippen und Kompilierfunktionen verwenden, aber es gibt viele Probleme, wenn ich eine Schnittstelle mit Designtools wie Interface Builder, XGlade oder anderen entwerfen muss. Als ich mit Borland Delphi entwickelt habe, konnte ich ein Steuerelement hinzufügen, z.B. eine Schaltfläche, und ich konnte jedes visuelle Attribut des Steuerelements mit dem Objektinspektorfenster ändern. Viele IDEs verwenden Objektinspektor-Fenster, um visuelle und nicht-visuelle Attribute zu ändern, aber das Problem für einen blinden Entwickler ist das Hinzufügen neuer Steuerelemente, da die Methode zum Hinzufügen eines neuen Steuerelements darin besteht, ein Steuerelement aus der Palette auf die Arbeitsfläche zu ziehen. Visual Studio 200x verwendet alternative Methoden, um dies zu tun, aber die Schnittstelle der IDE ändert sich in jeder neuen Version und das ist ein großes Problem, weil Screenreader für Windows spezielle Unterstützung benötigen, die Skripte verwendet, um jeden Bereich einiger nicht standardmäßiger Anwendungen zu identifizieren. Ein blinder Entwickler kann Visual Studio 2008 mit seinem Bildschirmlesegerät verwenden, aber wenn eine neue Version dieser IDE erscheint, muss er auf eine neue Version von Skripten für diese Version der IDE warten. Xcode mit Interface Builder hat noch keine Alternative für das Ziehen und Ablegen von Aufgaben. Ich habe Apple mehrmals darum gebeten, aber sie sind mit anderen Dingen beschäftigt. Ich habe 3 Apps im App Store veröffentlicht (Accessible minesweeper, Accessible fruitmachine und Programar a ciegas RSS) und musste die gesamte Schnittstelle per Code entwerfen. Es ist eine harte Arbeit, aber ich kann alle Funktionen der einzelnen Steuerelemente verwalten. Eclipse hat einen zugänglichen Code-Editor, aber andere Entwicklungswerkzeuge wie die Debug-Konsole, Plugins für die Gestaltung oder der Dokumentationsbereich stellen Probleme für Hilfsmittel für blinde Benutzer dar.

Dokumentationen sind auch für blinde Entwickler ein Problem. Viele Beispiele und Demonstrationen verwenden Bilder, um die Erklärung zu veranschaulichen (stellen Sie die Umgebungseinstellungen so ein, wie Sie es im Bild sehen können)

Ich denke, die Frage ist nicht, ob man blind ist. Die Frage ist, ob die Unternehmen und Entwicklungsgruppen glauben, dass Barrierefreiheit die endgültige Software betrifft, aber nicht die Entwicklungssoftware. Sie denken, dass ein blinder Benutzer ein Kunde sein sollte, aber ein blinder Benutzer kann nicht ein Entwicklungspartner sein.

Blindenverbände fordern Zugänglichkeit für Produkte und Dienstleistungen, aber sie haben blinde Entwickler vergessen. Blinde Menschen können als Anwälte, Journalisten oder Lehrer arbeiten, aber ein blinder Entwickler ist selbst für Blinde ein seltsames Konzept. Oft fühle ich mich allein, weil einige meiner blinden Freunde meine Arbeit nicht verstehen können.

Sie können meine Meinung zu diesem Thema in diesem Artikel auf Spanisch in meinem Blog lesen http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/ Es gibt ein Übersetzungswerkzeug auf der Webseite. Leider habe ich es nicht übersetzt.

47voto

Chris Punkte 4684

Emacs hat eine Reihe von Erweiterungen, die es blinden Benutzern ermöglichen, Textdateien zu bearbeiten. Sie müssen einen Experten zu diesem Thema befragen, aber Emacs verfügt über Text-to-Speech-Funktionen. Und wahrscheinlich noch mehr.

Außerdem gibt es BLinux:

http://leb.net/blinux/

Linux für Blinde. Gibt es schon seit sehr langer Zeit. Mehr als zehn Jahre, glaube ich, und sehr ausgereift.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X