Boot to Gecko el nacimiento de un sistema operativo con carencias de accesibilidad

El grupo Mozilla, creadores de Firefox y Thunderbird, han comenzado un proyecto denominado Boot to Gecko. Este proyecto persigue crear un nuevo sistema operativo para tablets y smartphones utilizando tecnologías y recursos de software libre. Quiere competir con otras plataformas como Android o iOS.

El proyecto se encuentra en una fase inicial pero ya presenta una carencia muy importante. En ninguna de sus páginas de presentación o documentación mencionan la accesibilidad. Aunque la tecnología para crear interfaces será HTML5 no sabemos si se incorporarán productos de apoyo o el método para mostrar los diversos interfaces del sistema proporcionará alguna capa de accesibilidad que permita a un producto de apoyo acceder a la información.

Enmendando el error

Es un problema conocido que muchos de los desarrolladores y profesionales del software desconocen las necesidades de los usuarios con discapacidad y los requisitos de la accesibilidad. Somos los usuarios, con y sin discapacidad, los que debemos avisar del problema para que pueda darse solución. Una de las ventajas de los proyectos de software libre es que todo el mundo, en principio, puede participar en ellos. Es nuestra labor la de participar en este proyecto pidiendo y colaborando para que el proyecto siga unas pautas de accesibilidad que garanticen el acceso a todos los usuarios.

Conceptos básicos de accesibilidad en interfaces

Cualquier aplicación, independientemente del lenguaje de programación utilizado o plataforma para la que se destina la aplicación, posee un interfaz gráfico para el usuario. Este interfaz emplea una serie de controles que le permiten al usuario interactuar con la aplicación, los datos gestionados por la misma y las diversas funciones que ofrece la aplicación.

En el diseño de interfaces gráficas de usuario hay multitud de guías, conceptos y tendencias. El problema es que la accesibilidad aún no es una norma obligatoria en ellas aunque existen leyes en países y regiones que solicitan que las interfaces de las aplicaciones incorporen características de accesibilidad.

En este artículo hablaremos de algunos conceptos básicos que podemos incorporar en nuestras interfaces gráficas para incrementar el nivel de accesibilidad de las mismas.

Identificación de controles

Las interfaces gráficas, en su mayoría, presentan controles que permiten al usuario introducir, seleccionar o modificar información así como activar funciones de la aplicación. Estos controles son botones, cuadros de edición, listas de selección, casillas de verificación, etc.

Un usuario necesita identificar para qué sirve cada control de la interfaz y qué información hay que introducir o seleccionar en cada caso. Para ello debemos proporcionar una etiqueta que, de forma visual, identifique la funcionalidad del control o la información que el usuario debe introducir. Esta identificación debe hacerse, preferentemente, a través de un texto ya que si utilizamos imágenes, estas pueden resultar confusas para el usuario (no todo el mundo interpreta de la misma manera los pictogramas) o resultar inaccesibles (no todos los usuarios pueden acceder a la información visual).

La etiqueta debe estar en un sitio coherente con respecto al control. Lo más habitual, para los idiomas occidentales, es situar la etiqueta a la izquierda del control o arriba de este. De esta forma, el usuario puede asociar la etiqueta a su control.

Distribución de los controles

Un interfaz gráfico, al igual que un escrito o cualquier estructura de información, debe ofrecer una estructura o distribución de los controles que resulte comprensible para el usuario. Por ejemplo, lo más habitual es presentar, por ejemplo, los datos de un contacto siguiendo el orden de nombre, apellidos, número de teléfono, correo electrónico y dirección postal. Esta estructura es comprensible para la mayoría de usuarios y el orden de los campos es predecible para él por lo que el usuario se siente cómo a la hora de utilizar la aplicación. Esto repercute en la experiencia de usuario de nuestra aplicación.

A la hora de diseñar cada ventana o formulario de nuestra aplicación debemos estudiar la distribución de los controles de forma global y relacional prestando especial atención a que la presentación resulte comprensible y conocida para el usuario final de nuestra aplicación.

Sencillez de interfaz

Las interfaces gráficas más modernas persiguen la sencillez debido a varias razones: pantallas más pequeñas, mejora de la usabilidad y experiencia de usuario y división de subinterfaces por funcionalidad. Para ello se han creado métodos para mostar distintos niveles de información en una misma superficie. Para ello se utilizan pestañas que nos permiten cambiar entre vistas de información o botones que muestran una nueva ventana de la aplicación.

Esta posibilidad de mostrar varias subinterfaces en nuestra aplicación nos permite diseñar nuestra interfaz general de forma que podamos definir subgrupos según funcionalidades o secciones de información. Todo esto persigue mostrar el mínimo número de controles necesario por pantalla. Un usuario, sobre todo si es un nuevo usuario de una aplicación, se mostrará confuso y desconfiado ante una interfaz con demasiados controles en pantalla. Una sensación similar podemos experimentarla al observar el tablero de mandos de un helicóptero o un avión antiguo, los cuales podemos observar en muchas películas de cine bélico o de acción. Esas interfaces de vehículos complejos muestran, en poco espacio, multitud de relojes, botones, conmutadores y niveles que resultan incomprensible para alguien que no sepa pilotar dicho artilugio.

Debemos vigilar no mostrar demasiados botones o campos de información en cada una de las ventanas de nuestra aplicación. Dependiendo de la complejidad de la misma y el perfil de usuario a la que vaya dedicada nuestra aplicación este número máximo de controles oscilará entre 3 y 15 controles. Estos valores son orientativos, por supuesto.

Cerrando espacios en Mission control con VoiceOver

Parece ser que uno de los principales errores en accesibilidad de la primera versión de OSX Lion, el sistema operativo de Apple para ordenadores de sobremesa y portátiles, es la falta de documentación en VoiceOver y otros productos de apoyo.

En un artículo anterior de este blog comenté que VoiceOver era incapaz de cerrar un espacio en Mission control. El problema es que si el usuario desconoce el comando, VoiceOver no da la información y la información no está disponible en la documentación interna del producto pues sólo lo sabrá el personal de la propia Apple. Esto ha pasado con el comando que nos permite llevar a buen término esta tarea.

Creando y cerrando espacios en Mission control

Para crear espacios con VoiceOver es muy sencillo. Simplemente debemos ir a Mission control y buscar el botón para crear un nuevo espacio.

Para cerrarlo debemos ir a la lista de espacios en Mission control y colocarnos sobre el espacio que queramos cerrar. Una vez sobre él pulsaremos la combinación de teclas Control+Opción+Comando+F2 o VO+Comando+F2. Con esto nos saldrá un mensaje indicando que pulsemos la tecla Enter para aceptar la acción o Escape para cancelar.

Errores de actualización en OSX por la caché

Hace un tiempo mi amigo @Evarelac me comentó que tenía un problema con las actualizaciones de OSX, el sistema operativo de Apple para ordenadores portátiles y equipos de sobremesa. El problema consistía en que al intentar descargar o ejecutar una actualización utilizando el sistema de actualizaciones de software incluido en OSX le daba un mensaje de que la descarga estaba corrupta y no se podía actualizar el sistema.

El problema puede deberse a varias causas pero la solución es común a todas ellas

Forzar al olvido

A veces un fichero de actualización se queda atascado en el sistema y ni puede borrarse ni ejecutarse por el sistema de actualización. La solución pasa por eliminarlo de la caché del sistema. Para ello debemos ir a la carpeta Librería de nuestro usuario y eliminar todo el contenido de la carpeta cache que se encuentra dentro de la misma. Con esto borraremos cualquier archivo atascado en el sistema de actualización.

Permisos y archivos

OSX, con el tiempo y la actividad del usuario, va acumulando cambios de carpetas y archivos, así como de permisos de las carpetas. Este sistema de permisos es el que preserva a nuestro equipo de que un usuario o programa toque donde no debe. De vez en cuando y tras la instalación de una aplicación pesada debemos restaurar los permisos del disco. Es una operación que tomará unos minutos y es muy sencilla de realizar.

En la carpeta aplicaciones encontraremos una carpeta llamada Utilidades, dentro de ella encontraremos la aplicación Utilidades de disco. Esta aplicación nos permite gestionar distintos aspectos de nuestros discos y volúmenes.

Para restaurar los permisos de nuestro disco debemos seleccionar nuestro disco en la tabla de discos que aparece la aplicación. En la pestaña I ayuda hay un botón para restaurar los permisos del disco.

Solución polifacética

Estas dos actividades solucionan muchos problemas comunes del sistema de actualizaciones de OSX, Safari y otras aplicaciones.

controlar tu iPhone o iPad con voiceOver y un teclado bluetooth

En las últimas versiones de iOS, el sistema operativo de Apple para dispositivos móviles, se ha incorporado el soporte para conectar un teclado inalámbrico al iPhone, iPad o iPod touch y que, mediante una serie de atajos de teclado, podamos utilizar voiceOver, el lector de pantallas de iOS, sin necesidad de tocar la pantalla de nuestro dispositivo.

No todos los teclados bluetooth del mercado son compatibles con iOS. Deben soportar un protocolo de comunicación específico y poseer las teclas Control, ALT y Windows(o comando si es un teclado MacOS X compatible).

El proceso de conexión y emparejamiento de nuestro dispositivo con un teclado bluetooth es bastante sencillo. Simplemente debemos ir a Ajustes/general/bluetooth activar la conexión bluetooth, activar la visibilidad del teclado y tocar en la pantalla de nuestro dispositivo el teclado que se haya detectado. Habrá que meter un código numérico en el teclado, este código lo especifica el dispositivo con iOS. Una vez hecho esto ambos dispositivos quedan emparejados y comunicándose. Si tenemos voiceOver activado podremos controlarlo desde el teclado sin problemas.

Navegando entre controles

VoiceOver para iOS nos permite, desde el teclado, navegar por los diversos elementos de la pantalla de nuestro dispositivo. Para la mayoría de los atajos de teclado deberemos usar la combinación Control+ALT+otra tecla. A la combinación Control+ALT se le denomina VO keys.

Para ir al elemento anterior o posterior deberemos usar las combinaciones VO+izquierda y VO+derecha. Para ir al elemento anterior o posterior indicado por el rotor usaremos VO+arriba y VO+abajo. Para activar el elemento focalizado pulsaremos VO+espacio.

Para saltar entre campos de texto usaremos la tecla tabulador y mayúsculas+tabulador.

Para leer toda la pantalla usaremos el atajo de teclado VO+B. Para leer desde la posición actual hasta el final usaremos VO+a.

Para ir al primer elemento de la pantalla usaremos Control+arriba. Para ir al último elemento de la pantalla pulsaremos Control+abajo.

Para ir una página arriba o una página abajo están las combinaciones ALT+arriba y ALT+abajo. Las combinaciones ALT+izquierda y ALT+derecha nos permiten ir a páginas o pestañas en disposición horizontal.

Modo de navegación rápida

Al igual que sucede con el voiceOver para MacOS X, existe un modo de navegación rápida. Este modo se activa o desactiva pulsando las teclas de izquierda y derecha a la vez.

Con el modo de navegación rápida activado podremos ir al elemento anterior o posterior usando las flechas izquierda y derecha. Con las flechas arriba y abajo iremos al elemento anterior o posterior del rotor. Para seleccionar qué elemento de rotor queremos usar para saltar debemos pulsar las combinaciones izquierda-arriba o derecha-arriba. Si queremos hacer un click en el elemento focalizado pulsaremos las teclas arriba-abajo.

Barra de estado y botón de inicio

La barra de estado no es accesible a través del salto entre elementos incorporado por voiceOver. Para poder acceder a la información de la barra de estado debemos usar la combinación VO+m.

Podemos emular la pulsación del botón de inicio de nuestro dispositivo, para cerrar un programa, acceder al listado de aplicaciones abiertas o similar, pulsando la combinación VO+h.

Configuración de voiceOver desde teclado

No todos los teclados Bluetooth permiten pulsar más de 3 teclas a la vez por lo que algunas de las combinaciones siguientes no serán compatibles con el teclado Bluetooth que utilicemos.

VoiceOver nos permite personalizar ciertas opciones de verbalización. Para ir a la opción anterior o siguiente pulsaremos VO+Comando+izquierda y VO+Comando+derecha. La tecla Comando equivale a la tecla Windows. Una vez hayamos seleccionado una opción podemos cambiar su valor pulsando VO+Comando+arriba o Vo+Comando+abajo.

Podemos activar o desactivar la voz pulsando VO+S.

La cortina de pantalla, para evitar que vean nuestra pantalla del dispositivo, se activa y desactiva pulsando VO+Mayúsculas+S.

Edición de textos

VoiceOver incorpora algunas combinaciones de teclas para movernos entre un texto.

Para ir a la palabra anterior o siguiente están las combinaciones ALT+izquierda y ALT+derecha.

Con las flechas arriba y abajo iremos a la línea anterior o posterior.

Con las combinaciones Comando+izquierda y Comando+derecha iremos al principio o final de la línea de texto.

Para ir al principio del texto deberemos pulsar comando+arriba. Para ir al final la combinación es comando+abajo.

Para seleccionar texto deberemos usar las flechas del cursor dejando pulsada la tecla de mayúsculas. Para seleccionar todo el texto pulsaremos Comando+a.

Para Cortar está la combinación Comando+x, para copiar es comando+c y para pegar es comando+v.

Para deshacer o rehacer una acción se deben utilizar las combinaciones Comando+z y comando+Mayúsculas+Z.

Ayuda de voiceOver

Podemos explorar las teclas y combinaciones de nuestro teclado activando la ayuda de voiceOver. Para ello pulsaremos VO+k. Para salir de la ayuda se debe pulsar la tecla Escape o VO+Escape.

Cada vez que pulsemos una combinación de teclas reconocida por voiceOver se nos describirá para qué vale la combinación de teclas.

Mission control y VoiceOver,experiencia agridulce

Con la aparición de OSX Lion, el sistema operativo de Apple para ordenadores de sobre mesa y portátiles, se ha impuesto un nuevo método para gestionar escritorios virtuales y ver las aplicaciones abiertas en el sistema. Este nuevo método consiste en utilizar la aplicación Mission control.

Mission control integra Dashboard, Exposé y cualquier tema relacionado con escritorios virtuales que ya podíamos utilizar en anteriores versiones de OSX.

Mission control, al activarla, muestra visualmente y de una sola vez todos los espacios virtuales y aplicaciones abiertas. Incluso muestra la actividad del Dashboard. Mission control nombra a los escritorios virtuales como espacios. Esta nueva forma, visualmente, es clara y permite a alguien que pueda ver la pantalla saber qué hay abierto en el sistema y dónde se encuentra.

¿y la accesibilidad?

En Mission control sigue funcionando el Zoom y se respeta las configuraciones de alto contraste pero parece que Apple se ha olvidado, en parte, de que existen más productos de apoyo.

Con VoiceOver, el lector de pantallas de Apple, podemos acceder a Mission control y veremos 3 elementos: la lista de espacios, un botón para agregar un nuevo espacio y la lista de aplicaciones abiertas en el espacio que nos encontramos. Hasta ahí todo bien, podemos activar el botón para agregar un nuevo espacio y entrar en los grupos de espacios y aplicaciones e irnos a cualquiera de los elementos.

Toda esta parte de Mission control resulta accesible para VoiceOver gracias a la integración de la accesibilidad que se hace en Cocoa, las librerías de programación de OSX. De esta forma, cualquier desarrollador puede hacer fácilmente un interfaz compatible con VoiceOver. El problema aparece cuando se hacen usos no estandarizados de los controles visuales de Cocoa, como veremos más adelante.

El primer problema evidente que nos encontramos es: ¿Dónde está el botón para eliminar un espacio?. Apple ha proporcionado a los usuarios la posibilidad de eliminar un espacio de Mission control colocando el foco del ratón sobre el espacio que queremos eliminar, un icono con una equis (X) aparecerá sobre el espacio. Un método muy intuitivo pero no es nada accesible con VoiceOver. Los usuarios ciegos no podemos cerrar espacios ya que no han proporcionado ninguna alternativa al método de focalización y aparición de un icono emergente.

Podemos arrastrar aplicaciones de un espacio a otro gracias a las nuevas funciones de arrastrar y soltar de VoiceOver. El problema es que el desarrollador no ha incluido eventos de notificación de la API de accesibilidad para que el usuario ciego sepa dónde está la aplicación, a qué espacio va y si la operación se ha realizado con éxito.

Grandes desarrollos, grandes problemas

Estos problemas ya habían sido reportados a Apple en las versiones beta de OSX Lion pero parece que Apple no ha tenido tiempo para solucionarlos y no ha querido retrasar la fecha de publicación.

Junto a estos problemas se reportaron más problemas relacionados con Launchpad y otras partes nuevas de OSX Lion. Todo esto nos hace pensar que el equipo de desarrolladores de las partes nuevas de OSX es distinto al que trabajaba en Snow leopard, la versión anterior de OSX, ya que esa versión presentaba todos los nuevos interfaces con mínimos problemas de accesibilidad.

Desgraciadamente este hecho demuestra que Apple no obliga a todos sus desarrolladores a seguir las guías de diseño de aplicaciones de forma completa, incluyendo el apartado de accesibilidad.

Es necesario que los usuarios con discapacidad ejerzamos nuestro derecho a protestar, esto lo podemos hacer enviando un correo electrónico, en inglés, al departamento de accesibilidad de Apple notificando todos los errores y problemas que encontremos en OSX Lion relacionados con la accesibilidad.

También debemos solicitar, en mi opinión, que Apple reconozca la necesidad de que todas las aplicaciones, tanto las propias como las de terceros, sean accesibles o proporcione mecanismos en sus tiendas on line para saber si una aplicación es accesible o no.