web-dev-qa-db-fra.com

Comment pouvez-vous programmer si vous êtes aveugle?

La vue est l’un des sens que la plupart des programmeurs prennent pour acquis. La plupart des programmeurs passent des heures à regarder un écran d'ordinateur (en particulier pendant les périodes où ils sont dans la zone), mais je sais qu'il existe des programmeurs aveugles (tels que T.V. Raman qui travaille actuellement pour Google).

Si vous étiez aveugle (ou deveniez lentement), comment configureriez-vous votre environnement de développement pour vous aider à programmer?

(Une suggestion par réponse, s'il vous plaît. Le but de cette question est d'amener les bonnes idées au sommet. De plus, les lecteurs d'écran peuvent lire les bonnes idées plus tôt.)

685
MrValdez

Je suis un étudiant totalement aveugle qui a eu plusieurs stages en programmation, ma réponse sera donc basée sur ceux-ci. J'utilise Windows XP comme système d'exploitation et Jaws pour lire ce qui s'affiche à l'écran en langage synthétique. Pour la programmation Java, j’utilise Eclipse, car c’est un IDE complet qui est accessible.

En règle générale, les programmes Java qui utilisent SWT en tant que kit d’interface graphique sont plus accessibles que les programmes qui utilisent Swing, raison pour laquelle je reste à l’écart de netbeans. J'utilise Visual Studio 2005 pour toute programmation .net, car c'était la version standard utilisée lors de mon stage et elle est très accessible à l'aide de Jaws et d'un ensemble de scripts développés pour rendre plus accessible le concepteur de formulaires.

Pour la programmation en C et C++, j'utilise cygwin avec gcc comme compilateur et emacs ou vim en tant qu'éditeur, en fonction de mes tâches. Une grande partie de mon stage a été consacrée à la programmation pour Z/OS. J'ai utilisé une session rlogin via Cygwin pour accéder au sous-système USS sur le grand système et C3270 en tant qu'émulateur 3270 pour accéder à la partie ISPF du grand système.

Je me fie généralement à la parole synthétique, mais j’ai un afficheur braille. Je trouve que je travaille habituellement plus vite avec la parole, mais j'utilise l'afficheur braille dans les situations où la ponctuation compte et devient compliquée. C’est le cas, par exemple, des instructions avec beaucoup de parenthèses imbriquées et de JCL où la ponctuation est extrêmement importante.

Mise à jour

Je joue avec Emacspeak sous cygwin http://emacspeak.sourceforge.net Je ne sais pas si cela sera utilisable en tant qu'éditeur de programmation car il semble ne pas bien répondre mais je ne l'ai pas encore regardé aucune des options de configuration pour le moment.

1018
Jared

Je suis aveugle et programme depuis environ 13 ans sous Windows, Mac, Linux et DOS, dans des langages tels que C/C++, Python, Java, C # et d'autres langages plus petits. Bien que la question initiale concernait la configuration de l'environnement, je pense que la meilleure solution consiste à examiner comment une personne aveugle utiliserait un ordinateur.

Certaines personnes utilisent un environnement de conversation, tel que V. V. Raman et l'environnement Emacspeak mentionné dans d'autres réponses. La solution la plus courante consiste de loin à disposer d’un lecteur d’écran qui surveille l’activité du système d’exploitation et alerte l’utilisateur via une synthèse vocale ou un afficheur braille physique (affichant généralement entre 20 et 80 caractères à la fois). Cela signifie alors qu'une personne aveugle peut utiliser n'importe quelle application accessible.

Donc, personnellement, j'utilise Visual Studio 2008 de nos jours et je l'exécute avec très peu de modifications. Je désactive certaines fonctionnalités, telles que l'affichage des erreurs au fur et à mesure que je tape, car je trouve cela distrayant. Avant de rejoindre Microsoft, tout mon développement était réalisé dans un éditeur de texte standard tel que Notepad, donc encore une fois aucune personnalisation.

Il est possible de configurer un lecteur d'écran pour annoncer l'indentation. Personnellement, je ne l'utilise pas, puisque Visual Studio s'en occupe et que C # utilise des accolades. Mais cela serait très important dans un langage comme Python où les espaces sont importants. Enfin, Emacspeak utilise différentes voix/différentes hauteurs pour indiquer différentes parties de la syntaxe (mots-clés, commentaires, identifiants, etc.).

401
Saqib

Je suis aveugle et je suis programmeur depuis environ 12 ans. Actuellement architecte senior, je travaille avec Sapient Corporation (une société de conseil basée à Cambridge, qui crée des solutions d’entreprise basées sur le Web et sur des clients lourds). J'utilise plusieurs lecteurs d'écran mais la plupart du temps, je m'en tiens à Jaws pour Windows et NVDA.

J'ai principalement travaillé sur la plate-forme Microsoft et visual studio comme environnement. J'utilise également des outils tels que le studio d'entreprise MS SQL et d'autres outils pour l'accès à la base de données, la surveillance de réseau, etc. J'ai également passé quelques années à travailler sur C++ sur Linux - principalement utilisé Notepad ou Visual Studio sous Windows pour tout le codage, puis Samba pour partager des fichiers avec l'environnement Linux. Aussi utilisé borland C pour certains trucs expérimentaux. Nous avons récemment joué avec Python, ce qui, comme d'autres personnes l'ont noté ci-dessus, est particulièrement désagréable pour un utilisateur aveugle, car il est écrit en utilisant l'indentation comme mécanisme d'imbrication. Cela dit, NVDA, le lecteur d’écran open source le plus populaire, est entièrement écrit en utilisant python et certains des responsables de ce projet sont eux-mêmes aveugles. Une question particulièrement intéressante que l’on me pose souvent en tant qu’architecte est la suivante: comment traiter les diagrammes - UML, visio, rose rationnelle, etc. Visio est probablement l’outil de création de diagrammes le plus accessible. J'ai été capable d'écrire des scripts mâchoires pour lire des diagrammes de roses rationnelles pour moi. J'ai utilisé un outil appelé T-dub (compréhension de diagrammes techniques pour les aveugles) développé par une université allemande pour accéder aux diagrammes UML 2.0. Avoir utilisé un outil très laid basé sur Java, appelé Magic Draw, pour mener à bien un développement dirigé par un modèle. Il a joué un rôle clé dans le projet androMDA et a aidé à développer le générateur de code .Net à partir d'un modèle UML.

En général, je trouve que je m'épanouis le plus dans un environnement d'équipe où je peux travailler sur mes forces. Par exemple, bien qu’un diagramme soit extrêmement utile pour communiquer/documenter une conception, le processus de conception proprement dit implique beaucoup de réflexion et de brainstorming. Une fois la conception élaborée, l’un de vos coéquipiers peut vous aider à mettre rapidement en place une image hors de lui. Les gens interprètent à tort ce qui précède comme un manque d’indépendance ou de capacité, alors que je considère cela comme une pure interdépendance - car je suis sûr que le coéquipier seul n’aurait jamais pu concevoir ce modèle seul et en -tour, si je compte sur lui pour documenter la conception, qu’il en soit ainsi. La plupart des obstacles auxquels je suis confronté sont l'inaccessibilité basée sur des outils. Par exemple, l'accessibilité de tous les produits Oracle a progressivement diminué au fil des ans (un sentiment de honte) et un environnement d'équipe me permet en principe de renforcer la protection contre ceux-ci au-delà de mes lecteurs d'écran et de mes scripts personnalisés.

107
Manish

Je suis un développeur aveugle et je travaille sous Windows, GNU Linux et MacOS X. Chaque plate-forme dispose de flux de travaux différents pour les utilisateurs aveugles. Cela dépend du lecteur d'écran utilisé par le développeur aveugle. Les outils de développement ne sont pas complètement accessibles aux développeurs aveugles. Je peux taper du code et utiliser des fonctions de compilation dans tous les IDE, mais le fait de concevoir une interface à l'aide d'outils de conception tels qu'Interface Builder, XGlade ou autre pose de nombreux problèmes. Lorsque je développais avec Borland Delphi, je pouvais ajouter un contrôle, un bouton par exemple, et je pouvais modifier chaque attribut visuel du contrôle à l'aide de la fenêtre de l'inspecteur d'objets. De nombreux IDE utilisent des fenêtres d’inspecteur d’objets pour modifier les attributs visuels et non visuels, mais le problème pour un développeur aveugle est d’ajouter de nouveaux contrôles car la méthode pour ajouter un nouveau contrôle consiste à faire glisser un contrôle de la palette vers le canevas. Pour ce faire, Visual studio 200x utilise d'autres méthodes, mais l'interface du IDE change dans chaque nouvelle version, ce qui constitue un gros problème, car les lecteurs d'écran pour Windows ont besoin d'une assistance spéciale, à l'aide de scripts, pour identifier chaque zone de certaines applications non standard. Un développeur aveugle peut utiliser Visual studio 2008 avec son lecteur d'écran, mais lorsqu'une nouvelle version de cet IDE apparaît, il doit attendre une nouvelle version des scripts pour cette version de l'EDI. Xcode with Interface Builder n'a pas encore d'alternative pour glisser-déposer des tâches. Je l'ai demandé à Apple plusieurs fois, mais ils travaillent dans d'autres domaines. J'ai publié 3 applications dans l'App Store (dragueur de mines accessible, fruitmachine accessible et Programar a ciegas RSS) et j'ai dû concevoir toute l'interface par code. C'est un travail difficile, mais je peux gérer toutes les fonctionnalités de chaque contrôle. Eclipse dispose d'un éditeur de code accessible, mais d'autres outils de développement tels que la console de débogage, les plugins pour la conception ou la documentation présentent des problèmes pour les outils d'assistance destinés aux utilisateurs non-voyants.

La documentation est également un problème pour les développeurs aveugles. De nombreux exemples et démonstrations utilisent des images pour montrer l'explication (définissez les paramètres d'environnement comme vous pouvez le voir sur l'image)

Je pense que la question n'est pas d'être aveugle. La question est que les sociétés et les groupes de développement pensent que l'accessibilité affecte le logiciel final, mais pas les logiciels de développement. Ils pensent qu'un utilisateur aveugle doit être un client, mais qu'un utilisateur aveugle ne peut pas être un partenaire de développement.

Les associations d'aveugles demandent l'accessibilité pour les produits et services mais elles ont oublié les développeurs aveugles. Les aveugles peuvent travailler comme avocats, journalistes, enseignants, mais un développeur aveugle est un concept étrange, même pour les aveugles. Bien souvent, je me sens seul parce que certains de mes amis aveugles ne peuvent pas comprendre mon travail.

Vous pouvez lire mon opinion sur ce problème dans cet article, en espagnol, sur mon blog http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los- desarrolladores-ciegos / il existe un outil de traduction dans la page Web. Désolé mais je ne l'ai pas traduit.

53
Jonathan Chacón

Emacs a un certain nombre d'extensions permettant aux utilisateurs non-voyants de manipuler des fichiers texte. Vous devriez consulter un expert sur le sujet, mais emacs dispose de fonctionnalités de synthèse vocale. Et probablement plus.

En plus, il y a BLinux:

http://leb.net/blinux/

Linux pour les aveugles. Cela fait très longtemps que je suis là. Plus de dix ans je pense, et très mature.

47
Chris

Gardez à l'esprit que "aveugle" désigne toute une gamme de conditions. Certaines personnes juridiquement aveugles peuvent lire un moniteur de très grande taille ou avec un grossissement, et il en est de même pour celles qui n'ont aucune vision. Je me souviens d'un camarade de classe à l'université qui avait un appareil spécial pour agrandir les livres et un logiciel spécial qu'elle pouvait utiliser pour agrandir une partie de l'écran. Elle travaillait dur pour terminer ses études parce que sa vue se détériorait et allait disparaître complètement.

La programmation a également un éventail de besoins: certaines personnes savent très bien créer du code, et d'autres une meilleure vision globale et de l'architecture. J'imagine que, vu la difficulté imposée par l'interface à l'écran, la cécité peut améliorer votre capacité à obtenir une vue d'ensemble ...

43
DGM
31
Dave Ward

J'ai travaillé pendant trois ans pour la Greater Detroit Society for the Blind avec un BBS sur mesure pour les aveugles, et j'ai travaillé avec un certain nombre d'utilisateurs aveugles sur la manière de mieux répondre à leurs besoins, et avec de nouveaux utilisateurs aveugles pour les habituer au matériel et aux fonctionnalités disponibles. offres de logiciels disponibles à l’époque. Si rien d'autre, j'ai au moins appris à lire le braille comme une protection contre le cas où je me suis retrouvé dans la même situation!

La majorité des utilisateurs d’ordinateurs aveugles et des programmeurs utilisent un lecteur d’écran. Jaws en particulier est populaire. Heureusement, la plupart des applications majeures offrent de nos jours une certaine forme d’accès pour handicapés. Vous devrez peut-être ajuster légèrement votre environnement pour réduire le bavardage, par exemple. Pensez à désactiver Intellisense dans Visual Studio.

Un affichage en braille est moins courant, il est comparativement beaucoup plus cher et peut afficher 40 ou 80 colonnes de texte. Il peut être utilisé lorsque le positionnement/ponctuation exact est important. Bien qu'un lecteur d'écran puisse être configuré pour supprimer la ponctuation, de nombreuses personnes le trouvent gênant et il est souvent plus facile de s'y retrouver. Les mâchoires peuvent être configurées pour piloter l'écran, afin de ne pas jongler avec les applications d'accessibilité.

En outre, beaucoup d'utilisateurs légalement aveugles ont encore un minimum de vision à leur disposition. L'utilisation de fonds d'écran à contraste élevé et de la fonctionnalité de grossissement peut aider beaucoup de ces utilisateurs.

L'utilisation de ToggleKeys dans Windows vous permettra d'entendre lorsque vous appuyez accidentellement sur l'une des touches modales 'maj lock', 'num lock', 'scroll lock', etc.

Je connais au moins un programmeur Haskell qui utilise un lecteur d'écran et programme explicitement sans utiliser les règles de présentation de Haskell, et préfère utiliser plutôt les {;} plutôt non idiomatiques, mais pris en charge, car il est plus facile/moins distrayant pour Il demande à son lecteur d’écran de lire la ponctuation plutôt qu’il trouve l’indentation exacte conforme aux règles de disposition de Haskell. Sur la même note, quelques programmeurs aveugles ont grogné à propos du moment où ils doivent écrire Python.

En fin de compte, vous apprendrez à jouer de vos forces.

31
Edward KMETT

Je ne me souviens pas de la source, mais j'ai entendu parler d'une forme de syntaxe audible "colorer" - de sorte qu'au lieu d'une assignation de chaîne lue comme

foo est égal à cite ceci est une citation de chaîne

la partie de corde serait lue avec une hauteur ou une voix différente pour rendre la séparation des éléments plus claire.

23
Cebjyre

Je suis un étudiant de troisième cycle à Beijing, en Chine. Je me spécialise en informatique et une grande partie de mon travail consiste à programmer. Je suis né avec une vue faible, je dois utiliser des outils d'agrandissement pour voir les polices à l'écran clairement. J'utilise les outils mgnify de Microsoft sous Windows et j'utilise le plug-in Magnify de Compiz, si sous Linux. Je règle habituellement l'outil pour qu'il grossisse trois fois plus que la taille de la police d'origine. Pour moi, maginify tools va bien, le problème principal est la vitesse, je dois déplacer la souris pour que les curseurs suivent le texte que je regarde, la fonction magnify de Microsoft offre une option de "suivi automatique des points d'édition de texte", ce qui me permet de mouvement continu de la souris lors de l’édition ou du codage. Mais cela ne fonctionne pas toujours à cause du logiciel d'édition ou IDE peut ne pas le supporter. Les outils de loupe sur Linux sont difficiles à utiliser. Le KMag fourni avec KDE a un taux de rafraîchissement épouvantable qui rend mes yeux inconfortables. Les bouchons grossissants de Compiz que j’utilise actuellement sont corrects, mais n’ont aucune fonction de mise au point automatique (suivi de mise au point automatique). iOS fournit une solution tout à fait parfaite pour moi avec l'agrandissement plein écran, en particulier sur l'écran 9,7 pouces de l'ipad. leur mise au point automatique n’est pas nécessaire car je ne les utilise pratiquement pas pour coder ou pour éditer d’autres choses. Android fournit très peu de fonctions d'accessibilité, à la différence du retour de vibration, ce qui est inutile pour moi. il n'y a pas de bons outils de grossissement sur Android, sans parler de la fonction avancée comme le grossissement plein écran sur iOS. J'avais l'habitude d'étudier Qt, je veux construire un outil de grossissement utile sur Linux, même sur Android. Mais guère de progrès.

14
ifwzh

Le projet Blinux est un exemple de départ:

http://leb.net/blinux/

Ce projet décrit comment obtenir Emacspeak (éditeur avec synthèse vocale) et dispose de nombreuses autres ressources.

Je travaillais avec une personne qui avait une vision à la vue, mais qui l'empêchait d'utiliser un moniteur: ils utilisaient bien le logiciel de lecture d'écran et passaient beaucoup de temps à utiliser des applications à base de texte et Shell.

La liste de paquets de lecteurs d'écran de Wikipedia est un autre point de départ: http://en.wikipedia.org/wiki/List_of_screen_readers

14
Kyle Burton

Lorsque j'étais à l'école supérieure, un membre de notre équipe de recherche était aveugle. Il était un peu plus âgé, peut-être au milieu de la quarantaine. Il nous a raconté comment il avait programmé son premier ordinateur (ce qui était bien avant la synthèse vocale) pour afficher le contenu de l'écran en code Morse. Pour surmonter le problème évident de la poule et des œufs, il devait réécrire complètement le code à partir de zéro, jusqu'à ce qu'il fonctionne suffisamment bien pour lui permettre de le lui relire.

Maintenant, il utilise la synthèse vocale, bien qu'il planifie le code très soigneusement avant de l'écrire, pour minimiser la boucle de débogage.

Il était également assez doué pour donner des présentations PowerPoint qui, malgré son manque de vision, étaient aussi bien formatées que les présentateurs visionnaires.

13
tghw

Ce billet de blog contient des informations sur la manière dont l'équipe de Visual Studio rend son produit accessible:

Activité de la visite guidée du laboratoire d'accessibilité de l'équipe Visual Studio Core

Beaucoup de programmeurs utilisent Emacspeak:

Emacspeak --The Complete Audio Desktop

10
Arthur Vanderbilt

De retour en Nouvelle-Zélande, je connaissais quelqu'un qui avait dégénérescence maculaire et qui était donc malvoyant. Il est un programmeur très talentueux et a fini par utiliser Delphi car il pouvait travailler en reconnaissant les formes Word. C’était plus facile à faire avec une syntaxe de type Pascal qu’une syntaxe à crochets C-ish. Il a un site Web, mais ne semble pas du tout parler de dégénérescence maculaire, je ne le nommerai donc pas.

Je suis aveugle et depuis quelques mois, j'utilise VINUX (une distribution Linux basée sur Ubuntu) avec SODBEANS (une version de Netbeans avec un plug-in nommé SAPPY qui ajoute un support TTS). Cette solution fonctionne assez bien, mais je préfère parfois lancer Win XP et NVDA pour le lancement de nombreuses pages sur FireFox car Vinux ne fonctionne pas très bien lorsque vous essayez d'ouvrir plus de 3 fenêtres de FireFox ...

8
Filippo1980

Comme beaucoup l'ont souligné, emacspeak a été la solution durable pour de nombreux hackers plus âgés. Depuis, il supporte parfaitement Linux et Mac, il est devenu mon moyen préféré pour développer des projets Windows egnostic.

En ce qui concerne la définition d’une syntaxe auditive plutôt que visuelle, j’ai trouvé qu’il existe diverses techniques permettant de créer une approche proche, voire identique.

Les icônes auditives peuvent remplacer les descripteurs verbaux, par exemple. Vous pouvez définir des tons pour indiquer l’indentation d’une ligne. Plus le ton est long, plus le retrait est avancé. Comme les sons peuvent jouer en parallèle avec le texte à la parole, les informations sont transmises dans le même délai et ne sérialisent pas la communication de quelque chose d'aussi fondamental.

Le braille peut rapidement et précisément décoder pour l'utilisateur la syntaxe exacte d'une ligne. C'est quelque chose de plus utile pour les personnes qui utilisent le braille dans la vie quotidienne; Le plus gros avantage est l’accès aléatoire au contenu de l’écran. Les unités actualisables ont généralement des clés de routeur au-dessus de chaque cellule de caractère qui peuvent placer le curseur sur cette cellule. Pas de bidouillage avec les touches fléchées O(n) op vs O(1) accès.

La dimensionnalité auditive (hauteur, taux, volume, inflexion, richesse, stress, etc.) peut véhiculer un concept (mot-clé, classe, variable, erreur, etc.). Par exemple, les commentaires peuvent être lus dans une inflexion monotone ... convenant, si je puis me permettre :).

Emacs et d'autres éditeurs à moindre échelle (Visual Studio) permettent à un codeur de parcourir un programme de façon symétrique (bloc suivant, bloc de repli, défunissage, passage au format par défaut, consultation de l'arbre d'analyse, etc.). Vous pouvez très rapidement obtenir la "grande" image de la structure de tout un projet faisant cela; avec des extensions telles que Cedet, vous pouvez obtenir les avantages de VS/Eclipse/etc sur plusieurs plates-formes et dans un éditeur de texte.

Cela pourrait probablement durer encore et encore, mais en résumé, c’est la raison pour laquelle quelques-uns d’entre nous piratent dans l’industrie, dans l’adolescence ou dans nos sous-sols :).

6
user1131499

Un groupe d'étudiants de l'Université Southern Illinois, Edwardsville et l'Université d'État de Washington, travaille sur un langage de programmation pour les aveugles:

http://www.youtube.com/watch?v=lC1mOSdmzFc

5
Kyle Slattery

harald van Breederode est un expert, un formateur et un présentateur DBA Oracle néerlandais bien connu qui est aveugle. Son blog contient des conseils utiles pour les personnes malvoyantes.

5
Alexis Gil

Que serait au monde un clavier braille?

Les graveurs en braille existent, mais vous ne les utiliseriez jamais comme périphérique d’entrée pour un ordinateur.

Si vous parlez simplement d'un clavier avec les symboles en braille, ce serait également une très mauvaise idée. Vous aurez beaucoup plus de touches à atteindre lors de la frappe et ce sera encore plus lent.

La saisie tactile est PAS une compétence visuelle, une personne aveugle peut le faire aussi bien qu'une personne voyante.

2
Loren Pechtel

NVDA est un bon lecteur d’écran open source gagnant.

2
Serenade

Je pense que cela fonctionnerait bien dans une programmation extrême utilisant le principe de programmation par paires. Si vous fabriquez des logiciels pour les personnes aveugles, qui serait le mieux à même de les fabriquer, alors quelqu'un qui serait littéralement au courant des exigences de l'entreprise, alors je ne pense pas que ce soit tellement ridicule.

En ce qui concerne l'écriture de code, à moins qu'il y ait un retour quelconque, je pense qu'une personne peut avoir des difficultés avec la syntaxe. Les commentaires audio peuvent aider à un point cependant.

2
Odd

Il existe une variété d’outils pour aider les personnes aveugles ou malvoyantes, notamment le retour de parole et les claviers braillie. http://www.rnib.org.uk/Pages/Home.aspx est un bon site pour obtenir de l'aide et des conseils sur ces questions.

1
Ed Heal

Une fois que j'ai rencontré Sam Hartman, il est un développeur célèbre de Debian depuis 2000 et aveugle. Sur this interview, il parle de l'accessibilité pour un utilisateur Linux. Il utilise Debian et gnome-orca comme lecteur d’écran, il fonctionne avec Gnome et "parle relativement bien Iceweasel/Firefox et Libreoffice".

Spécifiquement parlant de programmation, il dit:

Bien que [gnome-orca] parle gnome-terminal, il n’est pas suffisant de parler les programmes terminaux pour que je sois à l’aise. Donc, je lance Emacs avec le paquet Emacspeak. Dans ce cadre, j'utilise l'émulateur de terminal Emacs et, dans ce cadre, j'ai tendance à utiliser Screen. Pour plus de plaisir, je lance souvent des instances supplémentaires d’Emacs dans les écrans internes.

1
Eduardo

Qu'en est-il d'inventer une sorte de périphérique que vous branchez sur un port USB et qui serait essentiellement une "feuille de caoutchouc" qui se modifierait pour montrer le code de votre code, permettant aux aveugles de le lire au lieu de l'entendre?

1
Wildhorn