28 de Mayo de 2010

Desarrollo de aplicaciones accesibles con Microsoft Visual Basic

Undebarrena Canal, Artur

Resumen: Se introduce el desarrollo de aplicaciones accesibles con Visual Basic, analizando el concepto de Tecnología de Asistencia en el contexto del sistema operativo de Microsoft, revisando las propiedades de accesibilidad en los controles de Visual Basic, y describiendo cuáles son los requisitos de accesibilidad en las aplicaciones de Microsoft Windows y cómo aplicarlos con Visual Basic.

1. Introducción

Microsoft Visual Basic es uno de los entornos de desarrollo integrado o IDE (Integrated Development Environment) más utilizados para el sistema operativo Microsoft Windows. Según el ranking TIOBE de popularidad de lenguajes de programación, Visual Basic ocupa la quinta posición, sólo superado por Java, C, C++ y PHP.

Entre las ventajas de Visual Basic podemos destacar:

  • Facilidad de uso y aprendizaje. Recordemos que uno de los “padres” de la primera versión de Visual Basic fue Alan Cooper, reconocido diseñador de interacción.
  • Entorno integrado de desarrollo. Es posible diseñar interfaces gráficas de usuario sobre una ventana en tiempo de diseño, aplicando propiedades que modifican la apariencia y programando eventos que modifican el comportamiento de la aplicación.
  • Integración de diferentes lenguajes de programación en un mismo entorno de desarrollo Visual Studio (Visual Basic, Visual C++, Visual C#).
  • Posibilidad de crear aplicaciones para Microsoft Office.
  • Acceso a las funciones de la API de Windows.
  • Posibilidad de crear archivos ejecutables, librerías de clases, sitios webs con el lenguaje de programación ASP.NET, aplicaciones para dispositivos móviles, etc.
  • Creación de aplicaciones que interaccionan con la gran mayoría de Sistemas Gestores de Bases de Datos Relacionales y Orientados a Objetos (SGBDROO).
  • Posibilidad de diseñar clases, controles y componentes nuevos, y darles sus propios comportamientos y propiedades para reutilizarlos en otras aplicaciones o entornos de desarrollo.

Además, Visual Basic incorpora una serie de características que posibilitan crear aplicaciones accesibles para usuarios con discapacidad, como:

  • Posibilidad de compatibilidad e interacción de las aplicaciones con el software de Tecnología de Asistencia.
  • Posibilidad de uso exclusivo de todas las funciones con teclado.
  • Posibilidad de ampliar el tamaño de la interfaz gráfica y de cada uno de los controles que la forman.
  • Compatibilidad con las diferentes modalidades de configuración de las características de accesibilidad de Windows.

Según se expone en el sitio web de Microsoft Developer Network (MSDN), las aplicaciones que incorporan el logotipo de certificación para Windows deben cumplir los cinco requisitos de accesibilidad que se mencionan a continuación:

  • Las configuraciones establecidas en el Panel de control, por lo que respecta a tamaño, color, fuente y entrada de datos deben adoptarse de forma automática y consistente con la interfaz gráfica.
  • La modalidad de alto contraste debe ser compatible y adoptada por la interfaz gráfica de la aplicación.
  • Debe ser posible tener acceso mediante teclado a toda la funcionalidad de la aplicación.
  • En todo momento durante la ejecución de la aplicación, la interfaz gráfica debe mostrar al usuario dónde se halla el foco del teclado.
  • Si la aplicación ofrece información sonora importante, ésta debe ser accesible por otros canales.

En este trabajo se introduce el desarrollo de aplicaciones accesibles con Visual Basic, analizando el concepto de Tecnología de Asistencia en el contexto del sistema operativo de Microsoft, revisando las propiedades de accesibilidad en los controles de Visual Basic, y describiendo cuáles son los requisitos de accesibilidad en las aplicaciones de Microsoft Windows y cómo aplicarlos con Visual Basic.

2. Tecnología de asistencia

El concepto Tecnología de Asistencia (TA) hace referencia a un conjunto de aplicaciones software y de dispositivos hardware que hacen posible el uso del ordenador a perfiles concretos de usuarios con discapacidad. Entre los dispositivos hardware de TA destacan las líneas Braille y los teclados y dispositivos apuntadores alternativos. Entre las aplicaciones software de TA más significativas podemos destacar:

  • Lectores de pantalla: permiten a usuarios invidentes utilizar el ordenador a través de la salida de audio en forma de síntesis de voz. Mediante atajos de teclado pueden hacer uso de las aplicaciones cuya salida en pantalla se traduce en secuencias verbales a través de la síntesis de voz.
  • Magnificadores de pantalla: Permiten a usuarios con discapacidad visual ampliar el área del escritorio a la escala que les resulte más adecuada.
  • Software de reconocimiento de caracteres (OCR). Permite a usuarios invidentes transformar imágenes que contienen contenido textual en texto al que puedan acceder mediante lectores de pantalla.
  • Software de reconocimiento de comandos de voz. Mediante la entrada de comandos de voz, usuarios con extremidades superiores amputadas o paralizadas pueden transmitir órdenes y contenidos textuales al ordenador.
  • Opciones de accesibilidad de Microsoft Windows: Permiten configurar ciertas características de accesibilidad del sistema operativo, como son:

    Modalidad de pantalla en alto contraste.

    Ampliador de pantalla: Cuando se activa esta modalidad, la pantalla se divide en dos partes. En una parte de la pantalla se visualiza ampliado el entorno del cursor o del puntero del ratón, de forma que usuarios con discapacidad visual puedan ver lo que están haciendo de forma ampliada y de forma normal.

    Diferentes modalidades alternativas de uso del teclado y el ratón.

La gran mayoría de aplicaciones de TA utilizan un controlador de dispositivo de video que se instala entre la interfaz gráfica de dispositivo y el controlador de dispositivo de la tarjeta gráfica. Así es posible, en todo momento, detectar los eventos que ocurren en pantalla, como el cambio de foco entre controles, ventanas, cuadros de dialogo y aplicaciones, y el movimiento del cursor y del puntero del ratón.

En Microsoft Windows las aplicaciones de TA pueden tener acceso a los elementos de la interfaz gráfica de usuario a través de MSAA (Microsoft Active Accessibility), una API o interfaz de programación de aplicaciones.

3. Propiedades de los controles referidos a la accesibilidad

A continuación se revisan las propiedades de los controles de Visual Basic que permiten proporcionar prestaciones de accesibilidad:

  • AccessibilityObject: Es una propiedad de sólo lectura que contiene una instancia de la clase AccessibleObject. Esta clase implementa la interfaz IAccessible, que proporciona información acerca de:
    La descripción del control.
    Su ubicación en la pantalla.
    Las funciones de desplazamiento.
    El valor.
  • AccessibleDefaultActionDescription: Obtiene o define la descripción de la acción del control. Sólo es posible acceder a ella mediante código, no mediante el navegador de propiedades en tiempo de diseño.

    Ejemplo:

    botonCerrar.AccessibleDefaultActionDescription="Cerrar la aplicación"
  • AccessibleDescription: Obtiene o define la descripción que el desarrollador proporciona al control, descripción que será utilizada por las aplicaciones de TA.

    Ejemplo:

    botonCerrar.AccessibleDescription="Botón utilizado para cerrar la aplicación"
  • AccessibleName: Obtiene o define el nombre del control que será utilizado por las aplicaciones de TA.

    Ejemplo:

    botonCerrar.AccessibleName="Terminar"
  • AccessibleRole: Obtiene o define un rol a un control utilizado para informar de la función que desempeña dentro de la interfaz gráfica a las aplicaciones de TA.

    Ejemplo:

    botonCerrar.AccessibleRole=Windows.Forms.AccessibleRole.Default

4. Requisitos de accesibilidad de las aplicaciones Windows y su implementación con Visual Basic

Para asegurar la accesibilidad de las aplicaciones que desarrollemos debemos cumplir una serie de requisitos, descritos y analizados a continuación.

Navegación por la interfaz gráfica mediante teclado

Es imprescindible que la aplicación permita acceder y manejar todos y cada uno de los controles y funciones mediante el teclado, sin necesidad de hacer uso del ratón. Las razones son de muy diversa índole:

  • Usuarios invidentes no pueden usar el ratón, dado que no pueden percibir la situación del puntero en la pantalla y, por tanto, tampoco dónde deben hacer clic. Esto incluye también al uso del puntero mediante las funciones MouseKeys (control del puntero mediante el teclado).
  • Algunos perfiles de usuarios con discapacidad motriz: No pueden utilizar el ratón ya que los movimientos involuntarios les impiden tener la precisión requerida para apuntar en el lugar deseado. Este perfil puede utilizar las mencionadas funciones MouseKeys.
  • Personas sin discapacidad que utilizan masivamente el teclado: Existen tareas donde el uso masivo del teclado se ve interrumpido por la obligación de utilizar el ratón. Un cambio frecuente entre ratón y teclado dificulta la tarea y disminuye el rendimiento. Un buen diseño debe facilitar al máximo el uso de la interfaz mediante teclado para aprovechar al máximo el tiempo de producción. La mejor forma de implementar este requerimiento es mediante los atajos de teclado.

Por estas razones resulta imprescindible que la interfaz de la aplicación se diseñe de forma que mediante el método de tabulación sea posible navegar por todos los controles y grupos de controles de forma coherente con su posición en la interfaz. Un diseño correcto debe facilitar navegar por la interfaz de izquierda a derecha y de arriba abajo.

En el entorno de programación de Visual Basic, el orden de tabulación de los controles se define mediante la propiedad TabIndex. Dentro de una misma interfaz, a cada control se le debe asignar un índice comprendido entre 0 y n-1, donde n es el número total de controles.

Recordemos que conforme el diseñador incorpora controles al formulario, automáticamente el entorno asigna un TabIndex a cada control. Debe por tanto tenerse especial cuidado en esta numeración automática, ya que puede terminar habiendo controles cuyo TabIndex no sea el apropiado.

Relacionada con la propiedad TabIndex se encuentra la propiedad TabStop. Esta se utiliza para habilitar o deshabilitar el acceso mediante el método de tabulación. Existen controles que lo incorporan y otros que no, dependiendo de si pueden ser lógicamente accedidos por medio de la tabulación o no. Los valores posibles para TabStop son True y False.

Colores, tipo, estilo y tamaño de letra de los controles

Algunos usuarios con discapacidad visual pueden necesitar cambiar las características de la tipografía del contenido de los controles: tipo, estilo, tamaño y color. Para ello existen diferentes posibilidades:

  • Los magnificadores de pantalla son programas de TA que permiten configurar ciertos atributos de visualización de la pantalla:

    Porcentaje de ampliación del área de escritorio.

    Visualización de la pantalla en modalidad de alto contraste.

    Características de visualización y seguimiento del control que obtiene el foco.

    Posibilidad de utilizar dos monitores, con lo cual uno puede servir para situar el cursor dentro de la pantalla y el otro para visualizar la pantalla en modo ampliado.

    Dentro de una misma pantalla, existe también la posibilidad de dividir el área de trabajo en dos zonas, una ampliada y otra con visualización normal.

  • En la propia aplicación, establecer las características de visualización es posible gracias a:

    La propiedad Font: Permite configurar el tipo de fuente, estilo, tamaño y efectos. Ejemplo:
    tbnombre.Font = New Font(tbnombre.Font.Name, tbnombre.Font.Size + 1, tbnombre.Font.Style)
    En este ejemplo se fuerza a que el tamaño de tipografía del control TextBox tbnombre aumente un punto.

    Las propiedades Left, Top, width, height. Permiten posicionar y dimensionar los controles en la ventana de la aplicación. De este modo es posible que cuando el usuario requiera aumentar el tamaño de la ventana también aumente el tamaño de los controles con la reubicación e incremento de la tipografía correspondiente.

    Las propiedades ForeColor y BackColor. Permiten establecer los colores de primer plano y fondo de los controles y ventana de la aplicación. Es recomendable no establecer estos valores en la misma aplicación. La razón se debe a que los usuarios que utilizan la modalidad de alto contraste no podrán utilizar los colores establecidos en esta modalidad por defecto y tendrán problemas de visualización de los colores.


Uso exclusivo del color para identificar controles

Existen usuarios con discapacidad visual que no distinguen los colores. Por esta razón, los desarrolladores no deben basarse solo en el color para identificar un elemento, estado o acción a realizar. Por ejemplo, no deben implementarse mensajes del tipo:

"Para determinar el estado del cartucho de su impresora (Nivel de tinta restante), active el cuadro con el color correspondiente".

Independientemente de cómo se activa dicho cuadro (mediante tabulación o ratón), es evidente que usuarios invidentes o con discapacidad visual que les impida distinguir los colores, no podrán acceder a la información que les muestran estos cuadros si el desarrollador solo se ha basado en el color para distinguirlos.

Para hacer accesible este tipo de cuadros bastaría con añadir una referencia textual alternativa que describa el color correspondiente.

Teclas de acceso rápido

Las aplicaciones accesibles deben disponer de teclas de acceso rápido a las diferentes funciones y controles. Para asignar teclas de acceso rápido en Visual Basic, los controles disponen de una propiedad (AccessKeys) que permite asignar diferentes teclas de acceso rápido a un mismo control. También es posible asignar teclas de acceso rápido mediante la introducción de un carácter '&' justo delante del carácter en la propiedad Caption del control. Ejemplo:

cbCancelar.Caption = "C&ancelar", en el editor de código.
Caption: C&ancelar, en el explorador de propiedades del control cbCancelar.

De esta forma, cuando el usuario pulse la combinación de teclas alt+a, el foco se situará sobre el control Cancelar. Cuando un control asignado de esta forma adquiera el foco, las aplicaciones de TA anunciarán la combinación de teclas que el usuario debe pulsar para que vuelva a adquirir el foco en posteriores operaciones. De esta forma, el usuario puede memorizar la combinación de teclas y acceder más rápidamente a la opción deseada.

Características de los menús accesibles

Existen una serie de estándares referentes al orden en que los menús deben aparecer en la barra de menú, facilitando su uso a la mayoría de usuarios, pero especialmente a los usuarios con discapacidad visual. Se trata de ordenar los menús de la misma forma en que se ordenan en el resto de aplicaciones, como por ejemplo: Archivo, Edición, Ver, Herramientas, Ventana y Ayuda. De esta forma el usuario puede aprovechar su experiencia previa con otras aplicaciones para localizar más eficazmente el menú deseado, en vez de tener que adaptarse a una ordenación diferente por cada aplicación.

Exactamente lo mismo puede aplicarse a los atajos de teclado (o teclas de acceso directo). Las funciones semejantes deberían poder realizarse con los mismos atajos de teclado que se utilizan en la mayoría de aplicaciones. Por ejemplo, si normalmente para buscar se utiliza el atajo Ctrl+F, en nuestra aplicación deberíamos utilizar la misma combinación. Así los usuarios no tendrán que aprender nuevos atajos de teclado por cada aplicación que usen.

Hay que señalar que la misma aplicación en idiomas diferentes utiliza atajos de teclado diferentes, lo cual es útil para identificar la función con el atajo correspondiente a través de la primera letra, pero puede llevar a confusión cuando se utilizan habitualmente programas en diferentes idiomas. Por ejemplo, en programas de uso común en la versión inglesa se utiliza Ctrl+O, por la palabra 'Open', en vez de Ctrl+A de ‘Abrir’ para abrir un documento. En un programa de ofimática, como Microsoft Word, en la versión inglesa se utiliza Ctrl+A para “seleccionar todo”, no para abrir un documento, lo cual puede llevar a los usuarios con discapacidad visual a confusión. Para evitar problemas, los usuarios con o sin discapacidad deben tener muy claro en qué idioma están utilizando el programa y los atajos de teclado correspondientes.

Las aplicaciones de TA disponen de sus propios atajos de teclado reservados para el uso de aplicaciones de escritorio. Esto significa que no debe hacerse uso de estos atajos para lanzar funciones específicas en las aplicaciones que estemos diseñando.

Abreviaturas y acrónimos

Por razones de espacio, en muchas aplicaciones es común utilizar abreviaturas y acrónimos. Esto puede causar problemas a los usuarios invidentes, por la simple razón de que los lectores de pantalla pueden no interpretarlos correctamente. Esta es una cuestión que debe tratarse con mucho cuidado, ya que se desconoce a priori el idioma en el que está configurado el lector de pantalla.

En estos casos, debería definirse primero el texto sin abreviar en el idioma de la aplicación y, a continuación, la abreviatura o acrónimo original entre paréntesis. Así, los usuarios invidentes podrán obtener información completa y detallada de lo que se está mostrando en la pantalla a través de la TA.

Ejemplo:

Lenguaje de marcado de hipertexto (HTML).
Formato de Documento Portátil (PDF)
World Wide Web (WWW)

Valores que exceden el tamaño del control

En el diseño de interfaces es frecuente encontrar controles, por ejemplo tipo combobox o listbox, donde los textos de los diferentes valores sobrepasan el ancho del control. En estos casos los lectores de pantalla no pueden acceder al valor textual completo y sólo pueden hacer la locución de la parte visible, ignorando la parte del texto oculto a la derecha del extremo del control. Este problema deja a los usuarios invidentes sin la información completa acerca de la opción a escoger.

Para evitar este problema se pueden distribuir los controles de la interfaz entre diferentes pestañas para que no sea necesario ahorrar espacio y, así, alargar al máximo los controles de forma que los contenidos textuales de los valores no sobresalgan de los límites del control.

Imágenes y gráficos

Las imágenes y gráficos con un valor significativo o funcional en la interfaz, deben tener una descripción textual alternativa para que los lectores de pantalla puedan reproducir su contenido.

Uno de los métodos para añadir una imagen en Visual Basic es creando un control PictureBox. Sin embargo, no es posible hacer que este control sea accesible a la TA, ni tampoco a través del teclado por tabulación, ya que este tipo de control no posee la propiedad TabIndex.

Una posible solución es la inserción de controles tipo Label en los que se incluya el contenido textual alternativo, y que sí serán accesibles mediante TA. Si se considera que el contenido textual alternativo es fundamental para comprender el funcionamiento de la aplicación, puede sustituirse el control Label por un control TextBox de sólo lectura y, así, también estará disponible para acceder mediante teclado por tabulación. Para que el usuario invidente identifique que se trata de un texto alternativo es recomendable que el texto contenga un encabezado del tipo 'Imagen n' o 'Figura n', denotando que hace referencia a una imagen o gráfico.

El factor tiempo y las aplicaciones accesibles

Las aplicaciones accesibles no deben incorporar acciones que deban ejecutarse en un tiempo limitado. Las razones son diversas y obedecen a problemas de accesibilidad que afectan a diversos perfiles de usuarios con discapacidad:

  • Usuarios invidentes: no pueden responder a peticiones que dependan del tiempo debido a que el uso de TA les obliga a rastrear toda la ventana antes de percatarse de lo que la aplicación está requiriendo que se realice en un tiempo limitado.
  • Usuarios con discapacidad motriz: Este perfil de usuarios no puede realizar ciertas acciones en un determinado tiempo debido a que la presencia de movimientos involuntarios no les permiten actuar rápidamente y con precisión. Si los movimientos involuntarios son muy acentuados los teclados se suelen cubrir con los llamados cobertores de teclado. Estos artilugios constan de una plataforma de plástico con agujeros que coinciden con las teclas de un teclado estándar, permitiendo a los usuarios con discapacidad motriz reducir la tasa de errores.
  • Usuarios inexpertos de edad avanzada: Su eficiencia de uso suele ser menor que en el resto de usuarios.

Contenidos multimedia

Si una aplicación ofrece información significativa mediante audio, su contenido debe estar disponible alternativamente en forma textual, ya que si no es así los usuarios con discapacidad auditiva no podrán acceder a dicha información. Además, debe ser posible desactivar la reproducción de estos mensajes sonoros para que no interfieran con las aplicaciones de TA que utilizan usuarios invidentes.

El contenido textual alternativo también puede ser utilizado por usuarios invidentes con la ayuda de las aplicaciones de TA. Para ello, la reproducción del contenido textual debe poder controlarse por el usuario, con funcionalidades de avance y retroceso mediante atajos de teclado y controles botón.

Por ejemplo, en una aplicación multimedia de reproducción de audio o video, debe ser posible fragmentar la secuencia de la película de forma que el avance o retroceso de los subtítulos pueda hacerse de forma manual. Así, todos los usuarios podrán adaptar la reproducción de contenidos multimedia a sus necesidades.

Al igual que los subtítulos, también debe hacerse accesible a las aplicaciones de TA la audiodescripción para usuarios invidentes. La película debe poder fragmentarse en capítulos, de forma que los usuarios puedan acceder al capitulo que desean sin tener que reproducir todo el contenido.

Para que el avance y retroceso entre subtítulos resulte intuitivo, pueden utilizarse como atajos de teclado las teclas de cursor “Izquierda” y “Derecha”; y para los capítulos, las teclas “Avance Pagina” y “Retroceso Página”.

No intrusión de opciones de accesibilidad

Las aplicaciones accesibles no deben alterar o modificar las opciones de accesibilidad del Sistema Operativo ni de las aplicaciones de TA, ya que éstas son configuradas por los usuarios con discapacidad según sus propias necesidades.

Establecimiento de acciones de deshacer

Debe proporcionarse un método sencillo al usuario para deshacer las últimas acciones realizadas. En caso de que una acción no pueda deshacerse, se debe pedir confirmación explicita previa al usuario. En Visual Basic 2008 existe la clase MessageBox cuyo único método, Show, permite invocar la aparición de un cuadro de diálogo que hace posible solicitar al usuario su conformidad respecto a la acción a ejecutar.

Destellos y parpadeo

Los usuarios susceptibles de padecer ataques epilépticos requieren que las aplicaciones no muestren destellos ni parpadeos sobre ninguno de sus objetos, ya sean textos, imágenes o gráficos animados. Además, estos efectos visuales pueden resultar molestos también para el resto de usuarios.

5. Conclusiones

En este artículo se han introducido las líneas generales para crear aplicaciones accesibles con el entorno de programación Visual Basic. Se han expuesto las dificultades que presentan algunos perfiles de usuarios con discapacidad en el uso del ratón, y la obligación de crear interfaces gráficas que sean íntegramente manejables con el teclado.

Otro aspecto importante que se ha destacado es el de la compatibilidad de las aplicaciones con la tecnología de asistencia, ya que de no ser así algunos usuarios con discapacidad no podrán usar la aplicación.

Finalmente, se han revisado los requisitos fundamentales que una aplicación debe cumplir para asegurar su accesibilidad.

6. Bibliografia

Desarrollo de aplicaciones accesibles:
http://antares.sip.ucm.es/~luis/accesibilidadWEB08-09/aplicaciones.pdf

Visual Basic - Accessibility in Visual Basic - Ch16 Tutorials
http://www.brainbell.com/tutors/Visual_Basic/ch16.htm

Microsoft Developer Network (msdn)
http://msdn.microsoft.com/

Acerca del autor/a:

Artur Undebarrena Canal es Ingeniero Técnico en Informática de Gestión por la EUP Mataró y Master en Tecnologías Accesibles para los Servicios de la Sociedad de la Información UOC Technosite.

Ha trabajado en el Ayuntamiento de Mataró, CIMPAL, Institut Català de Tecnología y CET Odisseny - Fundació Pere Mitjans.

Tiene experiencia en las siguientes tecnologías: Microsoft Visual Basic, Oracle Web Application Server, Oracle DBMS, Apple Final Cut Studio, iMovie, QuickTime, Photoshop, InDesign, ASP y Microsoft Access.

email: a.undeba (arroba) terra.es

Citación recomendada:

Undebarrena Canal, Artur (2010). Desarrollo de aplicaciones accesibles con Microsoft Visual Basic. En: No Solo Usabilidad, nº 9, 2010. <nosolousabilidad.com>. ISSN 1886-8592

 
mini-logo nsu
No Solo Usabilidad journal - ISSN 1886-8592. Todos los derechos reservados, 2003-2012
email: info (arroba) nosolousabilidad.com