Question Comment pouvez-vous programmer si vous êtes aveugle?


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

Si vous étiez une personne aveugle (ou deveniez lentement aveugle), comment définiriez-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.En outre, les lecteurs d'écran peuvent lire les bonnes idées plus tôt.)


685
2017-09-29 14:22


origine


Réponses:


Je suis un étudiant totalement aveugle qui a eu plusieurs stages de programmation donc ma réponse sera basée sur ceux-ci. J'utilise Windows XP en tant que mon système d'exploitation et Mâchoires lire ce qui apparaît sur l'écran à moi dans le discours synthétique. Pour la programmation java, j'utilise eclipse, car c'est un IDE complet qui est accessible.

Dans mon expérience en règle générale, les programmes java qui utilisent SWT comme la boîte à outils GUI sont plus accessibles que les programmes qui utilisent Swing, c'est pourquoi je reste loin de netbeans. Pour toute programmation .net, j'utilise Visual Studio 2005 car c'était la version standard utilisée lors de mon stage et elle est très accessible avec Jaws et un ensemble de scripts qui ont été développés pour rendre les choses telles que le concepteur de formulaires plus accessibles.

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

Je m'appuie habituellement sur un discours synthétique mais j'ai un affichage Braille. Je trouve que je travaille habituellement plus vite avec la parole, mais j'utilise l'affichage Braille dans des situations où la ponctuation est importante et compliquée. Des exemples de ceci sont des instructions avec beaucoup de parenthèses imbriquées et JCL où la ponctuation est incroyablement importante.

Mettre à 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 être quelque peu ne répond pas, mais je n'ai pas encore regardé l'une des options de configuration.


1018
2018-01-17 18:17



Je suis aveugle et j'ai programmé pendant environ 13 ans sur Windows, Mac, Linux et DOS, dans des langages de C / C ++, Python, Java, C # et diverses autres langues en cours de route. Bien que la question initiale portait sur la configuration de l'environnement, je pense que la meilleure réponse serait de voir comment une personne aveugle utiliserait un ordinateur.

Certaines personnes utilisent un environnement parlant, tel que T. V. Raman et l'environnement Emacspeak mentionné dans d'autres réponses. La solution la plus courante est de disposer d'un lecteur d'écran qui surveille l'activité du système d'exploitation en arrière-plan et alerte l'utilisateur via un discours synthétique 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 ces jours-ci, et je l'exécute avec très peu de modifications. J'éteins certaines fonctionnalités comme afficher des erreurs que je tape depuis que je trouve cela distrayant. Avant de rejoindre Microsoft tout mon développement a été fait dans un éditeur de texte standard comme Notepad, donc encore une fois pas de personnalisation.

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


401
2017-09-23 03:48



Je suis aveugle et j'ai été programmeur pendant les 12 dernières années. Je suis actuellement architecte senior et 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 des clients lourds). J'utilise plusieurs lecteurs d'écran mais je reste principalement avec Jaws pour Windows et NVDA.

J'ai surtout travaillé sur la plate-forme Microsoft et le studio visuel en tant que mon environnement. J'utilise également des outils comme le studio d'entreprise MS Sql et d'autres pour l'accès à la base de données, la surveillance du réseau, etc. J'ai essayé de passer du temps avec emacspeak mais comme mon travail reposait principalement sur la plate-forme MS, je n'y ai jamais vraiment passé beaucoup de temps. J'ai également passé quelques années à travailler sur C ++ sur Linux - principalement sur le bloc-notes ou le studio visuel sur Windows pour tout le codage, puis sur Samba pour partager des fichiers avec l'environnement Linux. Aussi utilisé borland C pour certains trucs expérimentaux. Ont récemment joué avec python, qui, comme d'autres personnes l'ont noté ci-dessus est particulièrement hostile 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 contributeurs de ce projet sont eux-mêmes aveugles. Une question particulièrement intéressante que je reçois fréquemment en tant qu'architecte est de savoir comment traiter les diagrammes - UML et visio et rationnelle rose etc. Visio est probablement l'outil de dessin le plus accessible. J'ai été capable d'écrire des scripts de mâchoires pour lire des diagrammes de roses rationnels pour moi. J'ai utilisé un outil appelé T-dub (compréhension du schéma technique pour les aveugles) développé par une université allemande pour accéder aux diagrammes UML 2.0. Avoir utilisé un outil laid basé sur Java appelé dessiner par magie pour faire un développement piloté par un modèle et était un communicateur sur 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 prospère le plus dans un environnement d'équipe où je peux travailler sur mes forces. Par exemple, si un diagramme est extrêmement utile pour communiquer / documenter une conception, le processus de conception implique beaucoup de réflexion et de remue-méninges et lorsque le design a été pensé, un de vos coéquipiers peut vous aider à assembler rapidement image hors de celui-ci. Les gens interprètent incorrectement ce qui précède comme un manque d'indépendance ou de capacité alors que je vois cela comme une pure interdépendance - comme je suis sûr que le coéquipier seul n'aurait jamais pu concevoir ce design seul et en -Tour, si je dépends de lui pour documenter le design, qu'il en soit ainsi. La plupart des obstacles auxquels je suis confronté sont l'inaccessibilité basée sur l'outil. Par exemple, tous les produits oracle ont progressivement décliné en accessibilité au fil des années (honte à eux) et un environnement d'équipe me permet fondamentalement une couche supplémentaire de défense contre ceux-ci au-delà de mes lecteurs d'écran et scripts personnalisés.


107
2017-09-23 04:00



Je suis un développeur aveugle et je travaille sous Windows, GNU Linux et MacOS X. Chaque plate-forme a des workflows 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 il y a beaucoup de problèmes si je dois concevoir une interface en utilisant des outils de conception comme Interface Builder, XGlade ou autre. 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 en utilisant 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 à glisser et déposer un contrôle de la palette sur le canevas. Visual Studio 200x utilise des méthodes alternatives pour cela, mais l'interface de l'EDI change dans chaque nouvelle version et cela pose un gros problème car les lecteurs d'écran pour Windows nécessitent un support spécial, utilisant des 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 EDI apparaît, il doit attendre une nouvelle version des scripts pour cette version de l'EDI. Xcode avec Interface Builder n'a pas d'alternative pour faire glisser et déposer des tâches pour le moment. Je l'ai demandé à Apple plusieurs fois mais ils travaillent dans d'autres choses. J'ai publié 3 applications dans l'App Store (dragueur de mines accessible, machine à fruits 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 comme la console de débogage, les plugins pour la conception ou la documentation présentent des problèmes pour les outils d'assistance pour les utilisateurs aveugles.

Les documentations sont é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 dans l'image)

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

Les associations aveugles demandent l'accessibilité pour les produits et services, mais ils 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. Je me sens souvent seul parce que certains de mes amis aveugles ne peuvent pas comprendre mon travail.

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


53
2017-09-23 03:49



Emacs a un certain nombre d'extensions pour permettre aux utilisateurs aveugles de manipuler des fichiers texte. Vous devriez consulter un expert sur le sujet, mais emacs a des capacités de synthèse vocale. Et probablement plus.

En outre, il y a BLinux:

http://leb.net/blinux/

Linux pour les aveugles. Été autour depuis très longtemps. Plus de dix ans je pense, et très mature.


47
2018-01-27 20:03



Gardez à l'esprit que "aveugle" est une gamme de conditions - il y en a qui sont légalement aveugles qui pourraient lire un très grand écran ou avec l'aide de grossissement, et puis il y a ceux qui n'ont aucune vision du tout. Je me souviens d'une 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 empirait et allait disparaître complètement.

La programmation a également une gamme de besoins - certaines personnes sont douées pour créer beaucoup de code, et certaines personnes sont plus à même de regarder la grande image et l'architecture. J'imagine que vu la difficulté imposée par l'interface de l'écran, la cécité peut améliorer votre capacité à avoir une vue d'ensemble ...


43
2017-09-29 15:16



Hanselman avait un podcast très intéressant avec un développeur aveugle récemment.


31
2017-09-23 03:49



J'ai travaillé pour la Greater Detroit Society pour les aveugles pendant trois ans en dirigeant un BBS sur mesure pour l'accès aveugle et j'ai travaillé avec un certain nombre d'utilisateurs aveugles sur la meilleure façon de répondre à leurs besoins. les offres logicielles qui étaient disponibles à ce moment. Si rien d'autre, j'ai au moins appris à lire le braille comme une couverture 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 de quelque sorte. Mâchoires en particulier est populaire. Heureusement, la plupart des applications majeures offrent aujourd'hui une forme d'accès handicapé. Vous devrez peut-être ajuster légèrement votre environnement pour réduire le bavardage, par ex. envisagez de désactiver Intellisense dans Visual Studio.

UNE Affichage Braille est moins commun et est comparativement beaucoup plus cher et peut montrer 40 ou 80 colonnes de texte, et peut être utilisé lorsqu'un positionnement / ponctuation précis est important. Bien qu'un lecteur d'écran puisse être configuré pour déclencher la ponctuation, beaucoup de personnes trouvent cela distrayant, et il est souvent plus facile de se frayer un chemin à travers. Les mâchoires peuvent être configurées pour piloter l'affichage, donc vous ne jonglez pas avec les applications d'accessibilité.

En outre, beaucoup d'utilisateurs légalement aveugles ont encore un minimum de vue à leur disposition. L'utilisation d'arrière-plans à fort contraste et la fonctionnalité de grossissement peuvent aider beaucoup de ces utilisateurs.

L'utilisation de ToggleKeys dans Windows vous permet d'entendre lorsque vous appuyez accidentellement sur l'une des touches modales «majuscule», «verrouillage numérique», «défilement par défilement», etc.

Je connais au moins un programmeur Haskell qui utilise un lecteur d'écran et qui programme explicitement sans utiliser les règles de mise en page de Haskell, et opte plutôt pour l'utilisation plutôt non-idiomatique, mais supportée {;}est à la place, parce qu'il est plus facile / moins distrayant pour lui d'obtenir que son lecteur d'écran lise la ponctuation que pour lui de trouver l'indentation exacte qui est conforme aux règles de disposition d'Haskell. Sur cette même note, j'ai entendu des grognements de la part de quelques programmeurs aveugles sur le moment où ils doivent écrire Python.

En fin de compte, vous apprendrez à jouer sur vos points forts.


31
2018-01-27 21:54



Je ne peux pas me rappeler la source, mais j'ai entendu / lu sur une forme de syntaxe audible "colorier" - de sorte qu'au lieu d'une attribution de chaîne étant lu comme

foo est égal à citation c'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
2017-09-23 03:48



Un point de départ est le projet Blinux:

http://leb.net/blinux/

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

Je travaillais avec une personne qui ne voyait pas du tout, mais je les empêchais d'utiliser un moniteur - ils se débrouillaient bien avec le logiciel de lecture d'écran et passaient beaucoup de temps à utiliser des applications textuelles et le shell.

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


14
2017-09-23 04:01



Je suis un étudiant de troisième cycle à Beijing, en Chine. J'ai une majeure en informatique et une grande partie de mon travail est la programmation. Je suis né avec la vue basse, j'ai besoin d'utiliser des outils grossissants pour voir les polices à l'écran clairement. J'utilise les outils mgnify de Microsoft sur windows et j'utilise le plugin magnify de compiz si sur linux. En règle générale, je règle l'outil à grossir trois fois plus que la taille de la police d'origine. Pour moi les outils maginify sont ok, le problème principal est la vitesse, je dois déplacer la souris pour garder les curseurs suivre le texte que je regarde, le grossissement de microsoft offre une option de "suivre automatiquement les points d'édition de texte", mouvement continu de la souris lors de l'édition ou du codage. Mais cela ne fonctionne pas toujours à cause du logiciel d'édition ou l'IDE ne peut pas le supporter. Les outils d'agrandissement sur Linux sont difficiles à utiliser. Le KMag livré avec KDE a un taux de rafraîchissement terrible qui rend mes yeux inconfortables, les prises grossissantes de compiz que j'utilise maintenant sont OK, mais n'ont pas de fonction de mise au point automatique (suivi auto focus). iOS fournit une solution tout à fait parfaite pour moi avec un agrandissement en plein écran, en particulier sur l'écran de 9,7 pouces de l'iPad. la mise au point automatique n'est pas nécessaire car je ne les utilise quasiment pas pour coder ou faire d'autres choses d'édition. Android fournit très peu de fonctions d'accessibilité, seulement comme secouer les commentaires, ce qui est inutile pour moi. il n'y a aucune sorte de bons outils grossissants sur android, sans parler de la fonction d'avance comme agrandissement en plein écran sur iOS. J'ai l'habitude d'étudier Qt, je veux construire un outil utile de grossissement sur Linux, même sur Android. Mais à peine quelques progrès.


14
2017-09-23 03:46