Pregunta ¿Cómo puedes programar si estás ciego?


La vista es uno de los sentidos que la mayoría de los programadores dan por hecho. La mayoría de los programadores pasarían horas mirando el monitor de una computadora (especialmente durante los momentos en que están en la zona), pero sé que hay programadores ciegos (como T.V. Raman que actualmente trabaja para Google).

Si fueras una persona ciega (o poco a poco se volviera ciega), ¿cómo configurarías tu entorno de desarrollo para ayudarte a programar?

(Una sugerencia por respuesta, por favor. El propósito de esta pregunta es llevar las buenas ideas a la cima. Además, los lectores de pantalla pueden leer las buenas ideas antes).


685
2017-09-29 14:22


origen


Respuestas:


Soy un estudiante universitario totalmente ciego que ha tenido varias pasantías de programación, por lo que mi respuesta se basará en estas. Yo uso Windows XP como mi sistema operativo y Mandíbulas para leer lo que aparece en la pantalla para mí en el habla sintética. Para la programación java utilizo eclipse, ya que es un IDE con todas las funciones al que se puede acceder.

En mi experiencia, como regla general, los programas Java que usan SWT como GUI toolkit son más accesibles que los programas que usan Swing y por eso me mantengo alejado de netbeans. Para cualquier programa de .NET utilizo Visual Studio 2005 ya que era la versión estándar utilizada en mi pasantía y es muy accesible usando Jaws y un conjunto de scripts que se desarrollaron para hacer que cosas como el diseñador de formularios sean más accesibles.

Para la programación C y C ++ utilizo cygwin con gcc como mi compilador y emacs o vim como mi editor, dependiendo de lo que necesite hacer. Una gran parte de mi pasantía involucró la programación para Z / OS. Utilicé una sesión rlogin a través de Cygwin para acceder al subsistema USS en el mainframe y al C3270 como mi emulador 3270 para acceder a la porción de ISPF del mainframe.

Por lo general, confío en el habla sintética, pero tengo una pantalla Braille. Encuentro que generalmente trabajo más rápido con el habla, pero uso la pantalla de Braille en situaciones donde la puntuación importa y se complica. Ejemplos de esto son declaraciones con muchos paréntesis anidados y JCL donde la puntuación es increíblemente importante.

Actualizar

Estoy jugando con Emacspeak bajo cygwin http://emacspeak.sourceforge.net No estoy seguro de si esto se podrá usar como editor de programación, ya que parece que no responde en absoluto, pero aún no he analizado ninguna de las opciones de configuración.


1018
2018-01-17 18:17



Estoy ciego y he estado programando durante aproximadamente 13 años en Windows, Mac, Linux y DOS, en lenguajes de C / C ++, Python, Java, C # y varios idiomas más pequeños a lo largo del camino. Aunque la pregunta original fue acerca de la configuración del entorno, creo que es mejor responder al mirar cómo una persona ciega usaría una computadora.

Algunas personas usan un entorno de conversación, como T. V. Raman y el entorno Emacspeak mencionado en otras respuestas. La solución más común de lejos es tener un lector de pantalla que se ejecute en segundo plano monitoreando la actividad del sistema operativo y alertando al usuario a través de voz sintética o una pantalla braille física (generalmente mostrando entre 20 y 80 caracteres a la vez). Esto significa que una persona ciega puede usar cualquier aplicación accesible.

Por lo tanto, personalmente uso Visual Studio 2008 en estos días y lo ejecuto con muy pocas modificaciones. Desactivo ciertas funciones, como mostrar errores mientras escribo, porque me parece una distracción. Antes de unirme a Microsoft, todo mi desarrollo se realizaba en un editor de texto estándar como el Bloc de notas, por lo que una vez más no hubo personalizaciones.

Es posible configurar un lector de pantalla para anunciar una sangría. Personalmente no uso esto, ya que Visual Studio se encarga de esto, y C # usa llaves. Pero esto sería muy importante en un lenguaje como Python, donde el espacio en blanco importa. Finalmente, Emacspeak hace uso de diferentes voces / tonos para indicar diferentes partes de la sintaxis (palabras clave, comentarios, identificadores, etc.).


401
2017-09-23 03:48



Estoy ciego y he sido programador durante los últimos 12 años más o menos. Actualmente soy arquitecto sénior y trabajo con Sapient Corporation (una empresa de consultoría basada en Cambridge que crea soluciones empresariales tanto basadas en web como en clientes gruesos). Uso varios lectores de pantalla, pero sobre todo me quedo con Jaws para Windows y NVDA.

Principalmente trabajé en la plataforma de Microsoft y en el estudio visual como mi entorno. También utilizo herramientas como el estudio empresarial MS Sql y otras para acceso a bases de datos, monitoreo de red, etc. Traté de pasar un tiempo con emacspeak pero dado que mi trabajo se basaba principalmente en la plataforma MS, nunca pasé mucho tiempo allí. También he pasado un par de años trabajando en C ++ en Linux, la mayoría usaba bloc de notas o estudio visual en Windows para toda la codificación y luego samba para compartir archivos con el entorno de Linux. También usé Borland C para algunas cosas experimentales. Recientemente, he estado jugando con Python, que, como han señalado otras personas, es especialmente desagradable para un usuario ciego porque está escrito con sangría como mecanismo de anidamiento. Habiendo dicho eso, NVDA, el lector de pantalla de código abierto más popular, está escrito completamente usando Python y algunos de los que cometen ese proyecto son ciegos. Una pregunta particularmente interesante que me hacen con frecuencia como arquitecto es cómo trato con los diagramas: UML, visio y rational rose, etc. Visio es probablemente la herramienta de diagramación más accesible que existe. Pude escribir scripts de mandíbulas para leer diagramas de rosas racionales para mí. Utilicé una herramienta llamada T-dub (comprensión del diagrama técnico para ciegos) desarrollada por alguna universidad alemana para acceder a los diagramas UML 2.0. He usado una herramienta fea basada en Java llamada draw mágico para hacer un desarrollo basado en modelos y fui un commiter en el proyecto androMDA y ayudé a desarrollar el generador de códigos .Net a partir de un modelo UML.

En general, creo que prospero más en un entorno de equipo en el que puedo trabajar en mis puntos fuertes. Por ejemplo, aunque un diagrama es extremadamente útil para comunicar / documentar un diseño, el proceso de diseño real implica mucha reflexión e intercambio de ideas, y cuando el diseño ha sido pensado, uno de sus compañeros de equipo puede ayudarlo a armar un dibujo prolijamente elaborado. imagen fuera de ella. Las personas malinterpretan erróneamente lo anterior como falta de independencia o habilidad, mientras que yo veo esto como una interdependencia pura, ya que estoy seguro de que el compañero de equipo en solitario nunca podría haber ideado ese diseño por sí mismo y en -Gire, si dependo de él para documentar el diseño, que así sea. La mayoría de los obstáculos que enfrento son inaccesibilidad basada en herramientas. Por ejemplo, todos los productos Oracle han ido disminuyendo progresivamente en accesibilidad a lo largo de los años (la culpa es de ellos) y un entorno de equipo básicamente me permite una capa adicional de defensa contra estos por encima de mis lectores de pantalla y scripts personalizados.


107
2017-09-23 04:00



Soy un desarrollador ciego y trabajo en Windows, GNU Linux y MacOS X. Cada plataforma tiene flujos de trabajo diferentes para usuarios ciegos. Esto depende del lector de pantalla que use el desarrollador ciego. Las herramientas de desarrollo no son completamente accesibles para desarrolladores ciegos. Puedo escribir código y usar funciones de compilación en todos los IDEs, pero hay muchos problemas si tengo que diseñar una interfaz usando herramientas de diseño como Interface Builder, XGlade u otro. Cuando estaba desarrollando con Borland Delphi, podía agregar un control, un botón por ejemplo, y podía modificar cada atributo visual del control usando la ventana del inspector de objetos. Muchos IDE usan ventanas de inspector de objetos para modificar atributos visuales y no visuales, pero el problema para un desarrollador ciego es agregar nuevos controles porque el método para agregar un nuevo control consiste en arrastrar y soltar un control de la paleta al lienzo. Visual Studio 200x utiliza métodos alternativos para hacer esto, pero la interfaz del IDE cambia en cada nueva versión y este es un gran problema porque los lectores de pantalla para Windows necesitan un soporte especial, utilizando scripts, para identificar cada área de algunas aplicaciones no estándar. Un desarrollador ciego puede usar Visual Studio 2008 con su lector de pantalla pero cuando aparece una nueva versión de este IDE tiene que esperar una nueva versión de scripts para esta versión del IDE. Xcode con Interface Builder no tiene alternativa para arrastrar y soltar tareas todavía. Se lo pregunté a Apple muchas veces, pero están trabajando en otras cosas. Publiqué 3 aplicaciones en la App store (Buscaminas accesible, fruitmachine accesible y Programar a ciegas RSS) y tuve que diseñar toda la interfaz por código. Es un trabajo duro pero puedo administrar todas las características de cada control. Eclipse tiene un editor de código accesible, pero otras herramientas de desarrollo como la consola de depuración, los complementos para el diseño o el área de documentación presentan problemas para las herramientas de asistencia para usuarios ciegos.

La documentación también es un problema para desarrolladores ciegos. Muchas muestras y demostraciones usan imágenes para mostrar la explicación (establezca la configuración del entorno como pueda en la imagen)

Creo que la pregunta no es ser ciego. La pregunta es si las empresas y los grupos de desarrollo piensan que la accesibilidad afecta al software final, pero no afecta al software de desarrollo. Creen que un usuario ciego debe ser un cliente, pero un usuario ciego no puede ser un compañero de desarrollo.

Las asociaciones de ciegos solicitan acceso a productos y servicios pero se olvidaron de los desarrolladores ciegos. Las personas ciegas pueden trabajar como abogados, periodistas, profesores, pero un desarrollador ciego es un concepto extraño incluso para los ciegos. Muchas veces me siento solo porque algunos de mis amigos ciegos no pueden entender mi trabajo.

Puedes leer mi opinión sobre este tema en este artículo, en español, en mi blog http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/ hay una herramienta de traducción en la página web. Lo siento pero no lo traduje.


53
2017-09-23 03:49



Emacs tiene una serie de extensiones para permitir a los usuarios ciegos manipular archivos de texto. Tendría que consultar a un experto sobre el tema, pero emacs tiene capacidades de texto a voz. Y probablemente más.

Además, está BLinux:

http://leb.net/blinux/

Linux para ciegos. He estado aquí por mucho tiempo. Más de diez años, creo, y muy maduro.


47
2018-01-27 20:03



Tenga en cuenta que "ciego" es una variedad de condiciones: hay quienes son legalmente ciegos que pueden leer un monitor realmente grande o con ayuda de aumento, y luego están aquellos que no tienen visión alguna. Recuerdo a un compañero de clase en la universidad que tenía un dispositivo especial para ampliar libros, y un software especial que podía usar para ampliar una parte de la pantalla. Ella estaba trabajando duro para terminar la universidad, porque su vista empeoraba y se iba a ir completamente.

La programación también tiene un espectro de necesidades: algunas personas son buenas para producir muchos códigos, y algunas personas son mejores para ver el panorama general y la arquitectura. Me imagino que dada la dificultad impuesta por la interfaz de la pantalla, la ceguera puede mejorar su capacidad de obtener una visión general ...


43
2017-09-29 15:16



Hanselman tenía un podcast realmente interesante con un desarrollador ciego recientemente.


31
2017-09-23 03:49



Trabajé para la Greater Detroit Society for the Blind durante tres años ejecutando un BBS adaptado para acceso a ciegas y trabajé con un número de usuarios ciegos en cómo satisfacer mejor sus necesidades, y con usuarios recién ciegos para aclimatarlos al hardware disponible y ofertas de software que estaban disponibles en ese momento. ¡Si nada más, al menos aprendí a leer el Braille como una protección contra el caso en el que alguna vez terminé en la misma situación!

La mayoría de los usuarios y programadores de computadoras ciegas usan un lector de pantalla de algún tipo. Mandíbulas en particular es popular. Afortunadamente, la mayoría de las principales aplicaciones en estos días ofrecen algún tipo de acceso para discapacitados. Es posible que deba ajustar su entorno ligeramente para reducir la vibración, p. considere deshabilitar Intellisense en Visual Studio.

UN Braille display es menos común y es comparativamente mucho más costoso y puede mostrar 40 u 80 columnas de texto, y se puede usar cuando la posición / puntuación exacta es importante. Si bien un lector de pantalla se puede configurar para que no se escuche la puntuación, muchas personas lo consideran una distracción y, en muchos casos, es más fácil seguir su camino a través de él. Las mordazas se pueden configurar para manejar la pantalla, por lo que no está haciendo malabares con las aplicaciones de accesibilidad.

Además, muchos usuarios legalmente ciegos aún tienen un poco de vista que les queda. El uso de fondos de alto contraste y la funcionalidad de ampliación puede ayudar a muchos de estos usuarios.

El uso de ToggleKeys en Windows le permitirá escuchar cuando accidentalmente toca una de las teclas modales 'mayúsculas', 'bloqueo numérico', 'bloqueo de desplazamiento', etc.

Conozco al menos a un programador de Haskell que usa un lector de pantalla y que programa explícitamente sin usar las reglas de diseño de Haskell, y opta por usar el que no es idiomático, pero que es compatible {;}'s en su lugar, porque es más fácil / menos molesto para él hacer que su lector de pantalla lea la puntuación que para determinar la sangría exacta que cumple con las reglas de diseño de Haskell. En la misma nota, escuché algunas quejas de un par de programadores ciegos sobre cuándo tienen que escribir Python.

En definitiva, aprendes a jugar con tus puntos fuertes.


31
2018-01-27 21:54