06 enero 2007

Interactuación de un ciego con el ordenador

Las interfaces

Por:
David Picón álvarez  y Juan C. Buño Suárez
Mucho se ha hablado en el pasado, se habla en el presente, y a buen seguro se hablará en el futuro sobre lo que en un alarde de no traducción, como tantas veces ocurre en informática, se ha dado en llamar la interface del usuario.

Basémonos pues en la fantástica enciclopedia libre wikipedia y veamos qué nos dice al respecto:

En rminos generales, una interfaz es el punto, el área, o la superficie a lo largo de la cual dos cosas de naturaleza distinta convergen. Por extensión, se denomina interfaz a cualquier medio que permita la interconexión de dos procesos diferenciados con un único propósito común.

Bien, de aquí podemos entresacar que, a fin de cuentas, y para lo que nos interesa, una interfaz o interface es simplemente un método de comunicar a dos entes. Hablando entonces, ciertamente de lo que nos interesa aquí, cuando de software, otro término que no hemos traducido y el cual usamos quedándonos tan anchos, se trata, la interfaz o interface es, otra vez mirando en la wikipedia:
 
(...) En sentido amplio, puede definirse interfaz como el conjunto de comandos y métodos que permiten la intercomunicación del programa con cualquier otro programa o elemento interno o externo. De hecho, los periféricos son controlados por interfaces.

Ahora y aquí vamos a dejar de lado las comunicaciones de las aplicaciones con otras aplicaciones, o del hardware con otro hardware u otras aplicaciones, y vamos a limitarnos a hablar de lo que denominamos interface del usuario o interface humana, que a fin de cuentas, es el método que tenemos de comunicarnos con las máquinas, más aún, nos vamos a introducir en el modo de cómo una persona ciega se comunica con las máquinas y cómo ésta ha ido evolucionando a lo largo del tiempo. Puede que, al finalizar este artículo, consigamos extraer algunas ideas clarificadoras que quizás no habíamos advertido nunca, o, en caso de haberlo hecho, no les habíamos dado la importancia que realmente tienen.

Un Poco de Historia Nunca Viene Mal.

En los albores de la informática, las interfaces de usuario eran tan primitivas, que cualquiera de los usuarios de interfáces Gráficos de usuario tales como Windows o gnome se aterrorizarían sólo con pensarlo. La información se introducía en los equipos mediante el conectado y desconectado de cables y la salida era obtenida mediante máquinas de escritura mecánicas que imprimían en papel. Más adelante se fueron incorporando las tarjetas perforadas para leer y almacenar información y aparecieron los monitores de tubos de rayos catódicos para ver la respuesta de los ordenadores sin malgastos de kilómetros de papel continuo, así como los teclados.

Según los ordenadores fueron haciéndose más complejos y genéricos, fue necesario crear programas instalables que facilitasen a los operadores sus tareas, por lo que se programaron sistemas operativos que controlaban las funciones básicas de los ordenadores, y diferentes aplicaciones que llevaban a cabo diferentes tareas. Cada vez tenía más importancia que lo que se viera en la pantalla fuera fácilmente interpretada por cada uno de los muy diversos operadores. Ese método de comunicación entre ordenador y hombre u hombre y ordenador es la interface de usuario de la que vamos a hablar un poco. Asimismo vamos a abandonar la prehistoria de las computadores y vamos a saltar hasta caer en los años 80, donde los microordenadores comienzan a ser más populares y, donde, por tanto, los ciegos comienzan también a poder posar sus manos sobre ellos sin que sólo sea para tocarlos y soñar con poder utilizarlos algún día caso que la buena suerte los haga recuperar la visión.

El sistema operativo doméstico más utilizado en los 80 era el MS-DOS de Microsoft y las restantes versiones del mismo: dr-DOS, PC-DOS. Estos sistemas, al igual que los Unix profesionales, se manejaban mediante la escritura de comandos u órdenes mediante el teclado recibiendo la salida mediante una pantalla de texto, al igual que hoy en día se puede seguir haciendo en las diferentes versiones de unix y de sus derivados, tales como son GNULinux.

Pues bien, en este tipo de ordenadores es donde, a mediados/finales de la década de los 80, al menos en España, los ciegos comenzaron a poder utilizar ordenadores personales mediante un sintetizador de voz en forma de tarjeta que se empotraba en uno de los slots o ranuras de expansión del pc, el cual se controlaba con un rudimentario programa lector de la pantalla que se limitaba a manejar las interrupciones del DOS para permitirnos escuchar a través de la síntesis lo que era enviado al vídeo, así como lo que era tecleado en la consola, permitiendo, también, congelar la pantalla para poder revisarla a placer.

Por cierto, ya a estas alturas de película, por el mundo mundial andaba correteando el apple I que nadie vio, y el apple II que fue un éxito de ventas, pero que ya comenzaba a utilizar una interface gráfica de usuario para la que tardaría en haber lector de pantalla, pero bueno; nos estamos adelantando a algo que vamos a ver más adelante.

Bajo estas condiciones, siendo capaces de acceder con éxito a las nuevas interfaces de menús que las diferentes aplicaciones tales como bases de datos, procesadores de textos y hojas de cálculo comenzaban a tener, Los lectores de pantalla fueron mejorando, haciéndose a su vez más complejos, pero no hasta el punto de los que poseemos hoy en día.

Los sintetizadores de voz tendieron a abaratarse y a convertirse en periféricos externos para facilitar la intercambiabilidad entre diferentes equipos para evitar problemas de compatibilidad.

Pero, cuando nos las veíamos tan felices, hete aquí que a alguien se le ocurrió que las interfaces de usuario gráficas eran mejores para nosotros y todo cambió del tirón, quedándose nuestros lectores de pantallas sin nada que poder leer. Y el problema no es este, se cambia el lector y ya está, el problema es que toda la técnica desarrollada ya no es válida. Ahora no basta con que un programa gestione las interrupciones para ver qué es lo que pasa al vídeo y proceder a leerlo con la síntesis. Ahora es requerido el control de múltiples eventos, es requerido que el lector trate de leer e interpretar qué está pasando en una pantalla en la que suceden muchísimas cuestiones a la vez, es necesario generar un modelo para interpretar los diferentes objetos que hay, se requiere que ese modelo se actualice continuamente, y, por desgracia, hay que luchar también contra la falta de estándares o, cuando estos existen, contra la no utilización por parte de las empresas que crean el software de estos estándares.

Esto significa que, en los tiempos de la interface textual, un programador o dos eran capaces de crear un muy buen producto (véase el caso del habla en España), pero ahora los lectores son tan complejos que es imprescindible que grandes empresas los programen, controlen el mercado y encarezcan el producto., que, por bueno que sea, jamás va a ser capaz de lograr un acceso total al equipo. Por desgracia, sabido es que con el advenimiento de los entornosgráficos, un ciego ya no puede ser administrador de una red de ordenadores, o, al menos, no puede serlo utilizando un sistema Windows, no así con linux o unix, dado que éstos todavía dan peso a su interface de consola, si no en aplicaciones, al menos sí en cuanto al control del sistema se refiere.

Las Interfaces, Sus ventajas y sus Inconvenientes

Bien, el manejo de una interface de usuario de esta guisa tiene algunos inconvenientes e innegables ventajas para un ciego:

El primero de ellos es que resulta necesario memorizar una suficiente cantidad de comandos u órdenes, así como algunos modificadores que extienden la funcionalidad de dicha orden.

Un segundo inconveniente es que, debido al origen de la práctica totalidad de los sistemas operativos que se usan, la sintaxis de las órdenes deriva de la lengua inglesa, lo que para muchos puede suponer una pequeña traba.

El tercero, pero que a una persona ciega le debería dar igual, es que visualmente es muy poco atractivo y demasiado soso, no olvidemos que simplemente se trata de un indicativo que nos apunta dónde se escribirá la orden y una consola de fondo negro sobre la que aparecen los textos escritos, aunque ciertas aplicaciones combinan la entrada de comandos con un sistema más visual para la salida de datos.

Las ventajas, bajo nuestro punto de vista, eran inmejorables:

En primer lugar: El proceso de entrada/salida era muchísimo más previsible, dado que las interfaces de usuario de modo texto casi no tienen eventos que puedan crear confusiones al usuario: uno da una orden, y el sistema responde según esa orden, lo cual supone que el usuario conoce los resultados de la orden dada y sabe qué y cómo va a suceder.

En segundo lugar: Las dimensiones de las pantallas están preestablecidas y son idénticas en cualquier ordenador y con cualquier tipo de hardware, no importa el modelo de la tarjeta gráfica que estemos utilizando. Esto revierte también en menos o casi ninguna posibilidad de que haya conflictos y el entorno será capaz de funcionar bajo recursos mínimos o en casos de problemas graves del equipo.

En tercer lugar: los programas de consola así como los mismos lectores de pantalla son mucho más pequeños, eficaces y ahorradores de recursos, lo que hace posible que existan menos conflictos con el total del equipo instalado en el sistema.

En cuarto lugar: y, aunque no parezca creíble, un usuario que trabaja con un entorno sólo texto, podrá ser mucho más veloz que ese mismo usuario trabajando en modo gráfico y suponiendo la misma formación y capacidad utilizando ambas interfaces. Para muestra un botón:

Imaginemos que estamos en Windows/MS-dos, queremos formatear la unidad de discos flexibles a:

a) entorno gráfico: activamos el explorador de discos. Nos posicionamos con las flechas sobre el disco a formatear. Levantamos el menú de contexto. Buscamos la opción de formateo y la activamos. Verificamos que la orden formateo es realmente la que queremos efectuar. Listo.

B) Entorno solo texto: escribimos la orden de formateo: format a:, verificamos que eso es lo que queremos hacer. Listo.

Esto creo que clarificará lo que tratamos de dejar patente, es decir, para tareas de control del sistema operativo la interface de usuario en modo texto supera por goleada a la interface gráfica... Pero, si todavía somos remisos a creérnoslo, vamos a dar otro ejemplo utilizando linux para que se vea el mismo efecto en otro sistema operativo.

Pongamos por caso que queremos copiar el archivo llamado interface.txt que está en el directorio usuario, que a su vez está dentro del directorio home , y pegarlo dentro del directorio documentos que está, a su vez, dentro del directorio root.

A) Interface Gráfica: Abrimos el explorador de discos. Entramos en el directorio home. Entramos en el directorio usuario. Buscamos el archivo interface.txt con las flechas. Pulsamos el comando de copia. Retrocedemos dos niveles de directorio. Buscamos el directorio llamado root y entramos en él. Buscamos el directorio documentos y entramos en él. Pulsamos la orden pegar. Listo.
 
B( Entorno sólo texto: escribimos la orden de copia cp /home/usuario/interface.txt /root/documentos/interface.txt. Listo. Además los interfaces de comandos tienen hoy en día capacidades como autocompletar nombres con el tabulador que nos permiten no tener que escribir las rutas enteras.

Consideramos entonces que, a igual conocimientos de ambas interfaces, el trabajo es más rápido y efectivo desde la interface textual. Pero, podríamos preguntarnos: ¿tenemos claro que un ciego sería más eficaz en el interface de texto que en el gráfico pero...: ¿y una persona vidente?

Pues, en primer lugar, aquí estamos hablando de usuarios ciegos, y en segundo lugar, consideramos que una persona con resto visual bueno o con su capacidad de ver totalmente operativa, también sería más eficaz utilizando para el control del sistema operativo la interface textual. Pero el hecho de poder utilizar un sistema sin conocerlo hace que el común de los mortales, incluyendo las personas ciegas, tiendan a utilizar las interfaces gráficas.

Bajo nuestro punto de vista, aun acercando más al usuario medio a un ordenador mediante su interface gráfica, no creemos que sea buena idea que una persona utilice un equipo sin saber hacerlo. Esto no significa que sea obligatorio ser ingeniero informático para utilizar ordenadores, pero el que cada usuario tenga un mínimo conocimiento de qué es lo que tiene entre las manos, sería una gran cosa a la hora de saber solucionar los problemas más habituales que acaecen cuando trabajamos con máquinas.

Es muy común que, en muchos casos, sobre todo a la hora de los usuarios ciegos, por nuestra experiencia, que el más mínimo de los fallos absurdos de un programa, logre que el usuario quede empantanado sin saber cómo solucionarlo, sobre todo en un entorno gráfico que responde a infinidad de eventos que el programador, que en muchas ocasiones ni siquiera ha pensado a la hora de programar que su aplicación va a ser utilizada por un usuario ciego, no es capaz de controlar. Mientras que en una interface textual, los eventos se reducen casi al 0 por ciento, y los pocos que todavía hay, son mucho más fáciles de controlar, lo cual, a la hora de la formación o del aprendizaje significan el poder decir a un usuario que cuando se escribe tal orden, las cosas van a ocurrir tal y como se le dice, y no tal como al propio interface le de la gana dependiendo del estado de ánimo de un grupo de eventos que están esperando a saltar cuando menos se los espera.

En cierta ocasión leímos en un artículo (disculpad que no lo referenciemos ya que no recordamos su título para poder buscarlo), donde hablando de lo mismo, venían a decir que en la informática de usuario, la evolución era la contraria a la ocurrida en 4000 años de evolución humana, es decir, los hombres aprendieron a representar conceptos por escrito mediante pictogramas que referenciaban cosas. Dado que ello hacía demasiado difícil el aprendizaje de dicha simbología, primero se optó por reducir los signos creando sistemas silávicos para representar los escritos. Esto todavía hacía que la dificultad de aprendizaje fuera bastante imprecisa y difícil, por lo que el siguiente paso fue generar alfabetos signográficos que se correspondiesen en mayor o menor medida a la representación de fonemas, con lo que todo un sistema lingüístico pudiera representarse con dos o tres decenas de símbolos.

Por el contrario, en el caso de los ordenadores, la tendencia es la contraria: al principio los comandos eran palabras con significado legibles por cualquier persona que las entendía, para pasar a generar idiogramas en forma de íconos o dibujitos que significan algo solamente con verlos, incluso, aunque cada signo está apoyado por un texto, en algunos casos, como por ejemplo las barras de herramientas, ya ni siquiera tienen texto, lo cual obliga al usuario a tener que aprenderse un montón de simbología que antes no necesitaba, y peor, al usuario ciego lo obliga a ser paciente y enseñar a su lector de pantalla que tal signo es tal cosa.

Visto todo esto, podríamos deducir que la mayor ventaja de una interface gráfica de usuario es, simplemente, la aparente sencillez de uso, que en realidad, significa solamente la posibilidad de utilizar ciertas partes del ordenador sin necesidad de memorizar dado que el equipo nos va a ir leyendo o mostrando aquello por donde pasamos, pero a fin de cuentas solamente significa que usamos un equipo sin saber hacerlo.

Simplificando mucho, la ventaja de las interfaces gráficas es que en vez de utilizar la capacidad que tenemos para recordar y manejar símbolos, como en el lenguaje, se utiliza la capacidad que tenemos de reconocer símbolos que ya hemos visto. La velocidad y flexibilidad son menores (cambiar el nombre de todos los archivos que empiecen por i seguida de 3 o menos números seguidos de .png es casi imposible de hacer eficientemente con un interface gráfico), pero la posibilidad de usar el sistema para un usuario novato es mucho mayor en el caso de los interfaces gráficos. Sin embargo, la mayor parte de nuestra vida la pasaremos siendo usuarios expertos, aunque sólo sea por la experiencia, y sólo con las aplicaciones que usemos, de forma que optimizar para los primeros momentos parece una mala decisión.

Para, además, hacer más complejo el invento, lo que se nos viene encima, tras haber podido acabar con los menús personalizables, es un sistema que va a intentar carecer de menús, dado que por suerte o por desgracia, los menús son la parte de una interface gráfica más sencilla de manejar y comprender, si se impone su desaparición, supondrá una dificultad más que añadir al aprendizaje de un ciego cuando utiliza su lector de pantallas. Después de todo, los menús son uno de los mecanismos más "descubribles", y una de las mejores formas de incluir más y más funcionalidad en un sistema sin tener que llenarlo todo de símbolos y metáforas, ya sean gráficas o textuales.

A todo esto, deberemos también añadir la terminología novedosa que es necesario aprender a la hora de poder identificar las diferentes partes de la interface para ser capaz de conocer en todo caso cómo poder actuár con ella. Y es que, para bien o para mal, los conocimientos de informática que necesita tener un ciego para interactuar de forma eficiente con un interface gráfico son más parecidos a los que necesita un programador o diseñador de interfaces que a los de un usuario final, y sinó preguntadle a algún vidente que es un cuadro de edición o qué diferencia hay entre una casilla de verificación y un botón, y seguramente ni sabrán de lo que habláis. Esto supone, en muchas más ocasiones de las que se puede llegar a pensar, una gran trava cuando una persona trata de aprender a trabajar con un sistema. Dicho sea de paso, que mucha de esta terminología jamás se usó en interfaces de tipo textual.

Conclusiones

Tras estas pocas líneas de desarrollo del artículo, (el tema es tan amplio y complejo que requeriría cientos de páginas y personas más entendidas que nosotros), no vamos a optar por la proposición de eliminar las interfaces gráficas, en primer lugar porque sería absurdo, y en segundo lugar porque cada usuario tiene una capacidad o una preferencia de utilización, por lo que consideramos que en todo caso debe existir la posibilidad de tener ambas maneras de poder manejar una máquina, es decir, o desde un sistema gráfico que dibuje los elementos sobre la pantalla, o con un sistema solo texto mucho más feo, pero mucho más eficaz.

Consideramos un error que sistemas operativos tales como las versiones de Windows que siguieron a Windows 98, hayan dejado de lado casi a modo residual su sistema de interface modo texto, si bien nos parece prometedor que Microsoft esté trabajando en el proyecto Monad, enfocado a resucitarla. El no poder manejar muchas partes del sistema desde el interface solo texto, hizo, a su vez, que muchas aplicaciones que podrían seguir desarrollándose para esa modalidad o, incluso, para las dos, pasasen ha hacerse solamente para el entorno gráfico, lo que acabó con la posibilidad de muchos ciegos de seguir siendo informáticos gestores de sistemas en grandes empresas, por no entrar en la posibilidad de combinar programas unos con otros de forma flexible, como aún hoy ocurre en Unix, y haciendo que cada programa sea un mundo en si mismo, sin a penas comunicación con los demás salvo por mecanismos muy pesados, con la consiguiente tendencia a grande suites que lo hacen absolutamente todo pero de forma mediocre.

Por suerte, linux o unix todavía siguen dando gran importancia a la consola, pero día a día, según más gente va accediendo a él, podemos advertir cómo los interfaces gráficos van tomando más y más fuerza. Solamente esperamos, y es posible que seamos muy pocos los que lo esperamos, que en estos sistemas operativos se mantenga la separación entre las dos interfaces sin primar a una sobre la otra, al menos para la gestión del sistema operativo en sí, lo que nos garantiza más capacidad de reacción de cara a problemas a solucionar, o de cara a sistemas que mantener.

Otros interfaces:

En este artículo no hemos hablado mucho de otro modelo de interface, que es el de GNU/Emacs y las máquinas Lisp, por dos motivos: primero, porque aunque tengan seguimiento entre los programadores casi no hay usuarios que los utilicen, aunque Emacs esté muy bien adaptado para ciegos de habla inglesa, y segundo, porque está claro que los dos interfaces imperantes son el de línea de comandos, hijo de Unix y C, y el de ventanas, iconos, menús y ratón (WIMP en inglés), hijo de SmallTalk y de Xerox, hijastro de Apple y familiar más o menos directo de Microsoft. La única razón por la que añadimos la idea de Emacs es para dejar caer que no todo está escrito sobre interfaces, y hay una clara tendencia entre expertos informáticos a preferir flexibilidad e interfaces simbólicos a la falsa simplicidad inicial de la metáfora del escritorio (después de todo, quién quiere buscar en un documento pasando páginas en vez de tener una función de búsqueda?)

Algunas referencias:

Sobre ciegos y CLI:

http://www.eklhad.net/cli.html

Sobre emacs respecto de otros editores:

http://www.faqs.org/docs/artu/ch13s03.html

Sobre emacspeak, una adaptación más o menos completa de Emacs, nada parecido a otros lectores de pantalla:

http://emacspeak.sourceforge.net/raman/aui/foreword.html

Sobre wikipedia en español:

http://es.wikipedia.org/wiki/Portada

Artículo interesante sobre interfaces y sistemas operativos:

http://biblioweb.sindominio.net/telematica/command_es/

Dos webs sobre linux y adaptaciones para ciegos, la primera en inglés y la segunda en español:

http://www.leb.net/blinux/

http://www.tiflolinux.org

Un par de webs sobre tecnología aplicada a ciegos en español:

http://www.funcaragol.org

http://www.manolo.net/

No hay comentarios: