Accesibilidad en Android
Uno de los temas que posiblemente no contemplemos en nuestras aplicaciones android es el tema de la accesibilidad, tal vez por pensar que es un mercado minoritario o porque creemos que dotar de accesibilidad a la aplicación puede ser muy complicado.
Con respecto al número de usuarios que pueden necesitar la accesibilidad, debemos pensar que existen muchos tipos de necesidades especiales (usuarios con problema de visión, con problemas acústicos, usuarios de edad avanzada, situaciones especiales).
Google tiene publicado varios documentos donde se nos dan unas pinceladas acerca de cómo adaptar nuestras aplicaciones para que sean accesibles. Vamos a ver un pequeño resumen de los pasos a dar. Una vez que veamos estos pasos nos daremos cuenta de lo sencillo que es tener una aplicación accesible y que debería de ser uno de los requisitos iniciales de las aplicaciones, pues esto facilitará aún más su consecución.
Todas las guías que se dan a continuación se deben seguir cuando trabajemos con componentes estandar del framework de android. Si utilizamos vistas personalizadas, entonces tendremos que implementar la gestión de eventos de accesibilidad a través del API que nos proporciona Android y que está disponible a partir de la versión 4 de Android mediante los métodos de la clase View.AccessibilityDelegate o con más opciones desde la versión 14 a través de la interfaz AccesibilityEventSource.
Añadir textos descriptivos.
Especialmente es importante añadir textos que indiquen al usuario para qué sirve o que valor está esperando una vista. Los más habituales suelen ser ImageButton, ImageView o checkbox y EditText. En los tres primeros podemos establecer la descripción mediante el atributo android:contentDescription o el método setContentDescription si puede variar la funcionalidad de la vista. Por ejemplo, si tenemos un ImageButton con un botón play para reproducir música, este, una vez activado pasa a convertirse en un botón de pausa.
Para los editText no usamos contentDescripction si no el atributo android:hint ya que le indicaremos el contenido esperado. Si el edittext tiene valor este será el que se lea.
Es importante no añadir información a componentes que no son importantes para el desarrollo de la aplicación como pueden ser iconos de aplicación o imágenes que usemos para decoración.
Navegación correcta.
Cualquier elemento que acepte entrada de datos debe de poder alcanzarse mediante un controlador direccional. Además, la lógica de navegación entre los controles debe tener sentido.
Para indicar que un control puede tener el foco debemos activarlo mediante el atributo android:focusable o el método View.setFocusable(true).
Android utiliza un algoritmo para establecer cuál es el siguiente componente con focus más cercano al que tiene el foco actualmente y siguiendo un orden lógico. Si queremos establecer nosotros ese orden debemos utilizar los atributos android:nextFocusDown, android:nextFocusLeft, android:nextFocusRight y android:nextFocusUp.
Mensajes de audio.
Hay que tener en cuenta que la accesibilidad puede ser a nivel visual o acústico. En el caso de problemas acústicos, los mensajes de audio siempre tendrán que ir acompañados de algún otro tipo de evento visual, como una notificación, vibración, led, etc.
Testear.
Podemos testear el foco en las vistas a través del emulador utilizando los controles de dirección el botón de "Ok" como sustituo de las pulsaciones en pantalla.
Para escuchar los mensajes descriptivos podemos utilizar la aplicación talkback. Podemos descargarla desde el Google Play.
Es necesario activarla desde Ajustes->Accesibilidad->TalkBack. Desde este mismo punto podemos también configurar las opciones como el volumen de voz, eco de teclado, sensor de proximidad, vibración, etc.
Reader Comments