www.antoniosacco.com.ar PAUTAS PARA EL DESARROLLO DE INTERFACES Y SOFTWARE PARA PERSONAS CON NECESIDADES ESPECIALES Ing. Antonio Sacco (info@antoniosacco.com.ar) Extracto del artículo homónimo presentado en el III Congreso Iberoamericano de Informática en Educación Especial, realizado en agosto de 2002 en Fortaleza, Brasil. Gran parte del software disponible en la actualidad no está preparado para ser utilizado por personas con capacidades diferentes, ni tampoco por aquellas con otras necesidades especiales, como por ejemplo quienes no disponen de computadoras con determinados recursos. Durante el desarrollo de una gran variedad de programas podrían tenerse en cuenta ciertas pautas tendientes a facilitar la utilización de éstos por parte de personas con necesidades especiales. Algunos de los aspectos que conviene considerar, si se desea que un programa sea accesible para la mayor cantidad de personas posible, son: los medios de acceso que se utilizarán, los requerimientos mínimos de hardware, la posibilidad de configurar diversos parámetros, la disponibilidad de documentación dentro del mismo programa, etcétera. Marco general Software e interfaces Comenzaré definiendo algunos de los términos que habré de usar en este trabajo. Utilizaré el término “computadora” como equiva lente a “ordenador”. Consideraré como “software” todos aquellos programas para computadoras que pueden ser utilizados directamente por el usuario final. Con el término “interfaz” me referiré a los elementos que permiten la comunicación entre el usuario y el software, tanto las ventanas y opciones que aparecen en la pantalla como los periféricos especializados que en algunos casos son necesarios. Personas con necesidades especiales Creo necesario aclarar que en el contexto de este trabajo, “personas con necesidades especiales” incluye no sólo a las personas que poseen algún tipo de discapacidad física, sino también a aquellas que, por ejemplo, no tienen un modelo de computadora nuevo, no cuentan con una conexión a Internet o están conectados a una velocidad muy baja de transmisión de datos. Página 1 de 8 www.antoniosacco.com.ar Software “común” En los últimos tiempos es sumamente habitual encontrar programas “enlatados” de masiva distribución que resuelven una amplia variedad de problemas y presentan interfaces muy similares entre sí. La gran mayoría de los programas para Windows, por ejemplo, contienen menús descolgables con determinadas opciones típicas (Archivo, Edición, Ver, etc.), independientemente de que sus fines sean muy distintos. Las opciones se seleccionan con un clic del mouse y la información suele presentarse como texto o gráficos dentro de ventanas. Esta homogeneidad de las interfaces de los últimos años conlleva una ventaja evidente: el usuario que aprende a manejar unos pocos programas es capaz de utilizar muchos otros sin demasiado entrenamiento. Sin embargo, muchas veces se pasan por alto las necesidades que puede tener un usuario que no esté dentro de la “media” general. Por qué definir pautas Es importante establecer pautas que tiendan a lograr un desarrollo de software factible de ser utilizado por la mayor cantidad de personas posible. Estas cuestiones no siempre son consideradas por las empresas y los desarrolladores particulares, en algunos casos por descuido o desconocimiento, y en otros porque la relación costo-beneficio que en ocasiones implica destinar los recursos necesarios no siempre les es favorable. Si se delinean los aspectos que debería tener en cuenta un desarrollador de software para que su producto pueda ser utilizado por personas con distintas capacidades, estos pueden ser discutidos en los ámbitos correspondientes y a partir de ellos se pueden escribir recomendaciones cuyo cumplimiento pueda ser demandado por los potenciales clientes. Por ejemplo, los Gobiernos podrían exigir a sus proveedores, así como lo hacen en otros ámbitos, que cumplan con las recomendaciones que consideren apropiadas en el desarrollo de productos informáticos, tendientes a hacerlos menos excluyentes. Además de los programas de propósito general, aquellos diseñados específicamente para personas con necesidades especiales muchas veces carecen de determinadas funciones que sería útil que fueran contempladas. Analizando diversos programas disponibles en el mercado puede observarse qué características podrían -y deberían- incluir todos o la mayoría de ellos. Este trabajo está orientado tanto a desarrolladores como a usuarios, ya que si estos últimos conocen las propiedades que podría tener el software, podrán exigirlas, con lo cual el nivel general de la oferta mejorará. Página 2 de 8 www.antoniosacco.com.ar Problemas comunes del software Grandes requerimientos de hardware Es muy común que los programas que salen al mercado en determinado período requieran una computadora con las características prevalentes de los equipos que se venden en ese momento. En algunos casos esto es necesario debido a las capacidades y requerimientos del programa, pero en muchos otros no es indispensable, sino que se debe, por ejemplo, al lenguaje de programación utilizado. Obviamente, los requerimientos de determinado hardware no obedecen a razones exclusivamente técnicas, sino que tienen una fuerte relación con cuestiones del mercado y aspectos más relacionados con el comercio que con las necesidades del usuario. El hecho de que un programa requiera determinado modelo de computadora para funcionar (digamos de los últimos tres años) imposibilita de antemano su utilización por parte de una tremenda cantidad de potenciales usuarios, como por ejemplo muchas instituciones escolares de países del Tercer Mundo que cuentan con equipos más antiguos. Por ejemplo, un programa que sólo utilice imágenes de resolución normal, sin mayor procesamiento interno, y requiera de un sistema con Windows 95 está dejando fuera a aquellos usuarios que cuenten con computadoras modelo 80386 y monitor color que, en muchos casos, podrían estar interesados en un software con esa funcionalidad. Observando cada caso en particular podremos concluir que, en algunos, esta demanda restrictiva estará justificada, pero en otros no. Limitaciones en los medios de entrada Los programas de propósito general suelen requerir como dispositivo de entrada un teclado y, en general, un mouse estándar. En algunos casos muchas funciones podrían perfectamente ser utilizadas mediante medios de acceso no tan comunes, pero no por ello menos importantes, como los switches, habitualmente usados por personas con problemas motrices. Adaptar todos los programas para que puedan ser utilizados mediante un switch es, sino imposible, poco probable en la práctica. A su vez, se pueden usar programas de “ayuda” que, precisamente, sirven para utilizar estos dispositivos de entrada con programas que no fueron pensados para ellos. Sin embargo, existen pequeñas facilidades que se pueden incluir en los programas estándar para permitir su acceso mediante diversos medios de entrada, lo cual evitará tener que ejecutar distinto software simultáneamente, con los problemas (comentados más adelante) que ello implica. Es aun más curioso encontrar programas desarrollados específicamente para personas con discapacidades, que están preparados para trabajar con algunas adaptaciones de entrada pero no con otras. Página 3 de 8 www.antoniosacco.com.ar Nuevamente, hay que tener en cuenta que esto en ciertos casos obedece a razones concretas y justificadas, pero en otros se debe a descuidos, limitaciones técnicas del desarrollador o desconocimiento. Por ejemplo, un programa que permita realizar una acción mediante un switch serial estándar pero no a través de un clic del mouse está desaprovechando una importante posibilidad, ya que hay usuarios que no contarán con una interfaz serial para switch pero sí tendrán un mouse adaptado al cual conectárselo. Programas poco configurables Mientras más opciones de configuración pueda determinar el usuario de un programa, más flexible será éste. Como contrapartida, requerir que se configuren muchas opciones puede dificultar la utilización del software por personas que no posean determinados conocimientos técnicos. La solución más lógica a esta cuestión es hacer programas altamente configurables, pero que tengan una opción que establezca los parámetros por defecto, e incluso tal vez, que se oculten al usuario las opciones que a éste no le interesen, para evitar confusiones. Algunos aspectos sobre los cuales es importante permitir al usuario que modifique la configuración del programa son: - la resolución de la pantalla, - las combinaciones de colores y contraste deseadas, - los tamaños de los elementos a utilizar, en los casos en que esto no dificulte otros aspectos funcionales. - la existencia o no de formas de realimentación redundantes, como sonido o imágenes, - el o los dispositivos de entrada que se utilizarán, - las velocidades referentes a la entrada de información, - las velocidades referentes a la salida de información, La capacidad de un programa de detectar automáticamente la configuración más apropiada para determinado sistema será muy apreciada por muchos usuarios; pero no hay que olvidar que estos procesos pueden fallar, en cuyo caso será conveniente que el software permita al usuario configurar manualmente los parámetros que considere convenientes. Por ejemplo, un programa que detecte automáticamente la resolución del monitor de la computadora sobre la que se está ejecutando aprovechará mejor el espacio de la pantalla. En este caso, el mismo software deberá ser capaz de redistribuir los objetos que aparezcan en sus ventanas de manera que en monitores de distintas resoluciones el resultado sea igualmente óptimo. En este mismo sentido, un programa que esté preparado para trabajar sólo en máquinas con una resolución de video de 800 x 600 píxeles no podrá ser utilizado en gran cantidad de equipos que no soportan esa configuración. Sin embargo, en muchos casos el problema podría ser resuelto con algunas pequeñas consideraciones, sin disminuir ni su funcionalidad ni su calidad. Página 4 de 8 www.antoniosacco.com.ar Muchas aplicaciones pueden mejorar su funcionalidad si incorporan realimentación redundante de algún tipo, pero en algunos casos esto no es conveniente. La solución sería, entonces, permitir la activación (y preferentemente selección) o no de la realimentación. Por ejemplo, un programa que en determinado momento muestre una imagen en la pantalla podrá, subsidiariamente, acompañarla por un sonido propio o definido por el usuario. Las combinaciones de colores, contrastes y tamaños suelen ser de primordial importancia para un amplio grupo de usuarios. Permitir cierta libertad en la determinación de estos parámetros suele ser muy útil para quien utilizará el programa y, en la mayoría de los casos, no requiere grandes inversiones en programación. Por ejemplo, si en vez de establecer los colores del fondo y del texto de un programa desde su código, se utilizan variables que luego puedan ser modificadas por el usuario, la cantidad de líneas de programación es prácticamente la misma que si no se brinda esta posibilidad, pero el resultado es mucho más eficiente. Tanto cuando la aplicación requiere la entrada de datos como cuando entrega una salida, suelen intervenir diversos tiempos de espera. Es indispensable permitir la configuración de estos tiempos para que distintas personas puedan aprovechar realmente la funcionalidad del software. Por ejemplo, si el programa permite el acceso mediante barrido de opciones, los intervalos del barrido (velocidad del paso, tiempo de reconocimiento de cada opción, etc.) deben ser susceptibles de ser modificados. Escasa documentación Un problema recurrente en muchos programas, particularmente destinados a grupos minoritarios, es que no vienen acompañados por toda la documentación necesaria. Y aún cuando ésta existe, sobre todo en formato escrito, suele ser insuficiente. Por ejemplo, no se describen exhaustivamente las capacidades del software, o no se explica cómo se modifican todos los parámetros, o con qué tipo de adaptaciones funciona el programa. Aunque podría suponerse que esta cuestión escapa del “desarrollo de interfaces y software” que es título de este trabajo, creo conveniente que la documentación se incluya en el programa, además de la versión impresa, en formato digital, como suele suceder con muchos de los grandes paquetes comerciales disponibles en el mercado. Posibles soluciones Intentaré en esta sección plantear algunas pautas que, de ser tenidas en cuenta, podrían contribuir para evitar algunos de los problemas mencionados anteriormente. La mayoría de los aspectos a considerar están directamente relacionados con estos problemas. Página 5 de 8 www.antoniosacco.com.ar Muchísimas de las características de un desarrollo en particular dependerán de los objetivos que se persigan, del público al que esté destinado y de otras cuestiones propias, pero hay muchos aspectos que son aplicables a la gran mayoría de los casos, y es en ellos que me centraré. Analizando los planteos que hago en este análisis, el lector podrá observar que la mayoría de las pautas a las que me refiero son en realidad aplicables a gran parte del software en general, pero se tornan indispensables cuando se pretende que los programas sean utilizados por personas con necesidades especiales. Aprovechar, no exigir Las nuevas posibilidades del hardware deben ser aprovechadas siempre que sea posible para mejorar los resultados de los programas, pero excepto cuando sea indispensable, no deben ser “exigidas”. Por ejemplo, es conveniente que el software sea capaz de representar gráficos con alta resolución cuando el monitor y la placa de video así lo permitan, pero en máquinas sin esta posibilidad debería adaptar su interfaz gráfica para poder ser utilizado bajo esas condiciones restringidas. Mejor aun sería que la detección y configuración se realizara de manera automática y, por lo tanto, transparente al usuario. Cuando existen dos posibilidades de trabajo -una con pocos requerimientos y otra con muchos requerimientos- la solución más barata y sencilla es utilizar directamente la primera. De esta forma, la aplicación funcionará tanto en computadoras con recursos moderados como en otras más modernas. Esta solución puede parecer imperfecta, ya que en algunas ocasiones no aprovechará todas las posibilidades del hardware, pero analizando cada caso tal vez encontremos que muchas veces vale la pena ponerla en práctica. Volviendo al ejemplo de la resolución de un monitor: si se diseña la interfaz de un programa para una configuración de 640 x 480 píxeles, éste podrá ser utilizado tanto en monitores que sean capaces de mostrar sólo esa cantidad de puntos como en otros configurados para 800 x 600 o más. En este último caso, todo lo que sucederá es que la ventana del programa no ocupará toda el área disponible en la pantalla. Incluso puede hacerse que la aplicación modifique automáticamente la resolución del monitor mientras se ejecuta, con lo cual se evita ese efecto indeseado. El mismo comentario vale para otras opciones de configuración como pueden ser la cantidad de colores de la pantalla o la posibilidad de utilizar sonido. A propósito de este último aspecto, resulta lógico pensar que una aplicación que permita la utilización de sonido pero no la necesite indefectiblemente, debería admitir la desactivación de esta característica y funcionar de todos modos. Sin embargo, no son pocos los programas que, ante esta situación, directamente impiden su propia instalación. Parametrizar siempre que sea posible Cuestiones como la velocidad de barrido de una serie de opciones, el tiempo de espera durante la salida de información, los colores del texto y muchas otras pueden ser tratadas básicamente de dos formas, desde la programación: Página 6 de 8 www.antoniosacco.com.ar - utilizando valores fijos utilizando parámetros configurables por el usuario La segunda opción no resulta necesariamente más compleja que la primera y contribuye a que el software sea mucho más versátil que si se establecen valores fijos desde el código mismo del programa. Incluso cuando se parametrizan estos aspectos pueden asignarse en una primera instancia los valores desde el código y luego ampliar el programa, permitiendo al usuario su determinación. Es bastante probable que coincidamos en que en general será conveniente que, por ejemplo, la tipografía utilizada sea clara, grande, y contraste con el fondo. Digo “en general” porque tal vez determinado caso particular plantee otras necesidades. Todos los aspectos que no sean factibles de ser configurados contribuirán a que, o bien el programa no pueda utilizarse con muchos usuarios que de otra manera podrían aprovecharlo, o bien se lo utilice “forzando” cuestiones debido a que no se tiene acceso a otras posibilidades Seguramente el lector coincidirá también en que, la mayoría de las veces, no es conveniente utilizar soluciones tecnológicas “generales” frente a los problemas particulares de cada persona, ya que este planteo es contradictorio en sí mismo. Sería ideal poder diseñar, desde su concepción misma, una solución específica para cada caso, pero lamentablemente esto no es posible en la práctica. Incluso alternativas que sí son posibles en algunos países desarrollados no lo son en las instituciones educativas y los hogares del Tercer Mundo. Sin embargo, mientras más “configurables” sean los programas que se diseñan, más podrá adaptárselos a cada necesidad particular, de manera que no se fuercen situaciones de uso por limitaciones en el software Conclusión Las computadoras pueden ayudar a resolver problemas de la más variada índole a una inmensa cantidad de gente. Particularmente, las personas con alguna discapacidad pueden aprovechar la tecnología para mejorar notablemente su calidad de vida. El desarrollo de la informática en los últimos años a contribuido a que se creen estándares “por defecto” en la forma de trabajar y las interfaces de programas con fines muy diferentes. Esto por un lado a contribuido a que en muchos casos los usuarios puedan manejar nuevos programas sin un entrenamiento demasiado arduo. Sin embargo, la inmensa mayoría de los programas de mayor difusión están pensados para ser operados por un usuario “medio”, con todos los problemas debidos a la generalización que esto implica. Sucede, entonces, que muchos potenciales usuarios se ven imposibilitados de aprovechar una gran cantidad del software existente debido a la forma en la que trabaja, en Página 7 de 8 www.antoniosacco.com.ar muchos casos pese a que estas personas estarían en condiciones de aprovecharlo desde el punto de vista intelectual y en función de sus necesidades. En algunos casos, contemplar determinadas necesidades puede hacer más complejo o costoso un programa, pero en numerosas ocasiones no es así. Es aquí cuando corresponde considerar las pautas expuestas en este trabajo. Muchas de las propuestas aquí planteadas no requieren invertir más tiempo de programación que el usual, cuando se ponen en práctica desde el principio del proyecto, sino más bien un cambio en la metodología de trabajo. Por el contrario, modificar y adaptar el software ya desarrollado sí requeriría una mayor o menor inversión de tiempo y, por lo tanto, de dinero. A riesgo de pecar de ingenuo he planteado aquí algunos aspectos que el lector podrá considerar insolubles debido a que se relacionan con intereses económicos muy importantes, pero creo que desde nuestro lugar podemos contribuir con nuestro granito de arena, difundiéndolos y discutiéndolos para lograr un mundo un poco más accesible para todos. Bibliografía - - “Ordenador y discapacidad”, Rafael Sánchez Montoya, Ed. CEPE (Ciencias de la Educación Preescolar y Especial), 2002, ISBN 84-7869-402-1. “Cómo abrir el curriculum de comunicación para los alumnos con dificultades del aprendizaje profundas y múltiples”, Juliet Goldbart. En Educating children with PMLD, J. Ware, D. Fulton Publishers, London, 1994. “La informática como medio para desarrollar la comunicación en alumnos con dificultades del aprendizaje profundas y múltiples”, Tina Detheridge. Widgit Software. “Informática y discapacidad”, Jarmila M. Havlik, Ediciones Novedades Educativas, 2000, ISBN 987-538-002-4. “How to create accesible Adobe PDF files”, Adobe Systems Inc., 2001. Página 8 de 8