Download DESARROLLO DE APLICACIONES ACCESIBLES PARA WINDOWS

Document related concepts
no text concepts found
Transcript
DESARROLLO DE
APLICACIONES
ACCESIBLES
OBJETIVOS
Entender
como funcionan las ayudas
técnicas en entornos Windows Y
Linux.
Saber
qué características debe tener
una aplicación para que sea
Accesible.
DEFINICIÓN DE TÉRMINOS
Accesibilidad
Ayuda
Técnica
DEFINICIÓN DE TÉRMINOS

Un entorno, producto o servicio se dice que
es accesible cuando cumple una serie de
condiciones que le hacen ser
comprensible, utilizable y practicable por
todas las personas.

Un contenido es accesible cuando puede
ser usado por alguien con discapacidad.

Una aplicación es accesible cuando ofrece
a un usuario con discapacidad la
posibilidad de acceder a toda la
información necesaria.
DEFINICIÓN DE TÉRMINOS

Una Ayuda Técnica para personas con
discapacidad es "cualquier producto,
instrumento, equipo o sistema técnico
utilizado por una persona con
discapacidad, creado específicamente
para ello o de uso general, que sirva
para prevenir, compensar, supervisar,
aliviar o neutralizar la discapacidad".
Tipos de Aplicaciones Accesibles
 Aplicaciones
 Desarrollo
dirigidas
de aplicaciones accesibles.
 Adaptación
de las ayudas técnicas para
hacer accesibles las aplicaciones
comerciales.
APLICACIONES DIRIGIDAS
 Aplicación
no comercial diseñada
especialmente para un entorno
determinado de usuarios.
 Son
accesibles por sí mismas, no
requieren de ayudas técnicas.
APLICACIONES DIRIGIDAS
 Sólo
es accesible la aplicación, no el
entorno.
 Debe
convivir con la ayuda técnica
instalada.
APLICACIONES DIRIGIDAS
 Debe
cumplir los criterios generales de
desarrollo de aplicaciones accesibles.
 Dificultades
-
Mayor esfuerzo.
Gestión completa de las ayudas técnicas.
APLICACIONES DIRIGIDAS
 Ejemplos.
- Diccionarios.
- Juegos
Tecnologías usadas
por las ayudas técnicas.
 Driver
de vídeo:
La mayor parte de ayudas técnicas que
funcionan sobre sistemas operativos con
tecnología NT de Microsoft instalan un
driver de vídeo entre el GDI (Graphics
Device Interface) y el driver real de la
tarjeta. De esta forma obtiene información
de lo que está sucediendo en la pantalla.
Tecnologías usadas
por las ayudas técnicas.
 MSAA
Son unas librerías que forman parte del sistema
operativo MS Windows, que facilitan a las
ayudas técnicas obtener información de las
ventanas y elementos existentes en cada
momento. Gran parte de esta información la
obtiene automáticamente MSAA. Además el
desarrollador de la aplicación puede agregar
información a MSAA utilizando el SDK
proporcionado por Microsoft,.
Tecnologías usadas
por las ayudas técnicas.
 AT-SPI
(Assistive Technology Service
Provider Interface)
Es una plataforma API neutral que define
como deben interactuar las ayudas
técnicas (como Orca) con las
aplicaciones.
Tecnologías usadas
por las ayudas técnicas.
 ATK
(Accessibility ToolKit)
Es una librería que describe un conjunto
de interfaces que soportan el AT-SPI en el
lado del GUI de la aplicación. Estas
interfaces son independientes del toolkit, y
pueden ser escritas para cualquier
conjunto de controles (GTK, Motif, QT).
Tecnologías usadas
por las ayudas técnicas.
 GAIL
(GNOME Accessibility
Implementation Library)
Es una librería donde se encuentran
implementadas las interfaces de ATK para
el toolkit de GTK (utilizado principalmente
en el escritorio GNOME).
Tecnologías usadas
por las ayudas técnicas.
 Java
Access Bridge (GNOME Java
Bridge)
Se trata de una librería Java que permite
la comunicación entre la API de
accesibilidad de Java y AT-SPI.
Tecnologías usadas
por las ayudas técnicas.
 Java
Access Bridge (para la plataforma
Windows).
Java Access Bridge hace posible que las
ayudas técnicas en Windows (como JAWS o
Window-Eyes) puedan llegar e interactuar con la
API de accesibilidad de Java. Se trata de una
DLL que ofrece a las ayudas técnicas una serie
de métodos nativos que facilitan la
comunicación con las utilidades de accesibilidad
de JAVA y la API de accesibilidad de Java
presentes en la máquina virtual.
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 La
accesibilidad debe ser un requisito
inicial en cualquier desarrollo de una
aplicación.
 La
aplicación debe poder utilizar la
configuración propia del sistema operativo
(tamaño de fuente y combinación de
colores más adecuados, etc.).
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 Se
debe evitar el uso de temporizadores
que obliguen al usuario a realizar una
acción en un tiempo determinado.
 La
aplicación debe permitir al usuario
gestionar las ventanas (modificar el
tamaño y posición, minimizar, maximizar,
cerrar la ventana, etc.).
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 Se
recomienda que la aplicación disponga
de una barra de menú desde la que se
pueda acceder a sus principales
funcionalidades.
 Las
opciones de uso más frecuente no
deben estar en posiciones muy profundas
del menú.
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 Desde
el teclado se debe poder acceder a
cualquier elemento de la interfaz de la
aplicación.
 La
aplicación debe responder a los
comandos de teclado estándar del gestor
de ventanas en el que se esté ejecutando
en cada momento.
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 La
aplicación debe ser completamente
funcional utilizando sólo como dispositivos
de entrada el teclado.
 La
aplicación debe incorporar teclas
abreviadas y teclas rápidas que faciliten
su manejo.
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 Se
recomienda que la aplicación permita
la configuración sencilla de sus teclas
rápidas por si en un momento dado éstas
interfirieran con las teclas propias de las
ayudas técnicas utilizadas por el usuario.
 Dentro
de una ventana, se debe mantener
un orden lógico de tabulación entre los
diferentes elementos.
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 Se
recomienda que la navegación entre
los diferentes elementos de una ventana
sea circular.
 Se
recomienda evitar que un control que
no está visible pueda recibir el foco.
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 Se
recomienda que siempre que se
muestre un área de texto, y sea posible,
se pueda recorrer mediante teclado.
 Todos
los controles (cuadros de edición,
listas, cuadros combinados…) deben
tener una etiqueta asociada que describa
su propósito.
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 La
disposición de los controles y las
etiquetas asociadas en la ventana es de
suma importancia para que una ayuda
técnica pueda relacionar la etiqueta con el
control.
 Se
debe evitar que haya elementos que
se solapen entre sí.
PAUTAS PARA EL DESARROLLO
DE APLICACIONES ACCESIBLES
 Una
aplicación no debería ofrecer
información que dependiera de colores.
 Evitar
utilizar objetos que provoquen
parpadeos, movimientos de contenido o
cambios en períodos regulares.
¿Cómo evaluar el nivel de
accesibilidad de una aplicación?
Pruebas de accesibilidad
 Instalar
una ayuda técnica y probar la
aplicación
 En
caso de usar lector de pantallas se
recomienda:
Desconectar
el ratón
Apagar la pantalla.
Herramientas
 Inspect32
Herramienta que muestra la información
que tiene MSAA del objeto en el que está
el foco actualmente.
Herramientas
Herramientas
Herramientas
 ACCExplorer
Herramienta que para una ventana permite ver
la información disponible en MSAA de dicha
ventana. Permite desplazarse de forma cómoda
a los objetos hijos, hermanos, padre y consultar
también la información disponible.
Herramientas

Java Accessibility Helper
La herramienta Java Accessibility Helper ayuda a los
desarrolladores a hacer accesibles sus programas
basados en JFC, para personas con discapacidad. Esta
herramienta genera un informe que incluye una lista
prioritizada de los problemas y problemas potenciales
de accesibilidad que pueda tener la aplicación que se
está probando. Por ejemplo, Helper verifica que todos
los campos de entrada de un diálogo puedan ser
accesibles mediante teclado. No es necesario disponer
del código fuente de la aplicación, y funciona para
aplicaciones basadas en Swing o AWT.
Herramientas

Accerciser

Accerciser es un explorador interactivo de accesibilidad
basado en Python para el escritorio de GNOME. Utiliza
AT-SPI para inspeccionar y controlar los componentes
gráficos de un GUI, para permitirle verificar si una
aplicación está proporcionando la información correcta a
las ayudas técnicas y a los sistemas autómatas de
pruebas. Es posible la creación de plugins para
Accerciser y así personalizar la vista de la información
de accesibilidad que éste muestra.
Herramientas
Herramientas
Herramientas
 AT-Poke
Se trata de una herramienta que nos
permite conocer la información de
accesibilidad de una aplicación que se le
está proporcionando a las ayudas
técnicas mediante el uso de AT-SPI.
Scripts
Se trata de pequeños "programas" que indican a un
lector de pantalla como debe comportarse ante
determinados eventos.
Hoy en día los lectores de pantalla más usados permiten
su programación mediante el uso de scripts, y están
basados en estos scripts, proporcionando un conjunto
de scripts por defecto que indican a la ayuda técnica
como responder y presentar al usuario la información de
los componentes estándares de una aplicación.
Desgraciadamente no todas las aplicaciones en la
actualidad son accesibles o diseñadas con este
requisito, y aquí es donde los scripts son de gran ayuda.
Incluso hay situaciones, en las que aún siendo accesible
la aplicación es necesario aplicar un script para mejorar
la experiencia del usuario con la aplicación en cuestión.
Enlaces de interés

ONCE-CIDAT
http://www.once.es/cidat

Tiflolinux
http://www.tiflolinux.org

Freeedom Scientific (Jaws)
http://www.freedomscientific.com

ORCA
http://live.gnome.org/Orca
Enlaces de interés

Java Accessibility Helper
http://java.sun.com/developer/earlyAccess/jaccesshelper/

Accerciser
http://live.gnome.org/Accerciser

AT-Poke
http://svn.gnome.org/viewvc/at-poke
Enlaces de interés

Proyecto de accesibilidad en Gnome
http://developer.gnome.org/projects/gap

Microsoft Active Accessibility
http://msdn2.microsoft.com/en-us/library/ms697707.aspx
http://msdn2.microsoft.com/en-us/library/ms788733.aspx

Pautas de accesibilidd en java:
http://www-03.ibm.com/able/guidelines/java/snsjavag.html