Muy buenas, me llamo Miguel y hoy les traigo otro artículo.
Índice
¿Cómo podemos implementar la accesibilidad en Android?
Como parte de las Pautas de diseño de materiales, Android agregó ayuda para que los desarrolladores y diseñadores mejoren la accesibilidad en las aplicaciones de Android. El tema de la accesibilidad se ha vuelto muy importante en las aplicaciones web, debido a que la indexación en los motores de búsqueda mejora cuando las aplicaciones siguen las mejores prácticas de accesibilidad. Como esto no se ha aplicado tanto en las aplicaciones móviles, a menudo olvidamos que es clave para la inclusión y la experiencia del usuario. La accesibilidad en Android es muy importante y lo aprenderemos en esta publicación.
Accesibilidad vs usabilidad
Antes de profundizar en los detalles de la accesibilidad en Android, me gustaría aclarar la distinción entre accesibilidad y usabilidad. Estos dos términos se usan generalmente indistintamente, pero se refieren a cosas diferentes.
- Accesibilidad: se trata de una experiencia de usuario equivalente para personas con discapacidad. Si lo implementamos correctamente, pueden interactuar con las herramientas sin problemas.
- Usabilidad: está relacionada con la experiencia del usuario (UX). Esto es para todos nuestros usuarios, no específicamente para usuarios con discapacidades. Lamentablemente, no todas las prácticas de usabilidad incluyen a los usuarios que necesitan accesibilidad.
Para obtener una explicación más amplia sobre este tema, consulte este artículo del W3C.
Una cosa importante a tener en cuenta es que las discapacidades no son necesariamente condiciones permanentes. Si, por ejemplo, uno de sus usuarios se rompe un brazo, desea ayudarlo a seguir usando su producto mientras se recupera.
Accesibilidad en Android y Google
Google tiene varias pautas con respecto a la accesibilidad, Android como un producto de código abierto de ellos no se queda atrás. Si quieres echar un vistazo a la Guía de accesibilidad de Material Design, puedes acceder a ella aquí.
Android basa su guía de accesibilidad en tres principios fundamentales:
Claridad
Este no es solo un tema de accesibilidad. En general, las prácticas de UX de los primeros días se han trasladado a interfaces claras. Esto puede significar varias cosas, pero veamos tres ejemplos claros:
- Las cosas se distribuyen lo suficiente por la pantalla para que los elementos no se superpongan.
- Las etiquetas de los botones tienen un significado que se asemeja a las acciones que ejecutan.
- Jerarquía visual, para que sus ojos se guíen por el contenido en función de en qué debe enfocarse.
Robustez
Tomaré la definición del diccionario de Cambridge para esto:
La cualidad de ser fuerte y saludable o con pocas probabilidades de romperse o fallar.
https://dictionary.cambridge.org/us/dictionary/english/robustness
Cuando se habla de aplicaciones, las últimas tres palabras son clave: es poco probable que se rompa o falle . En este caso, es poco probable que una aplicación robusta se rompa cuando los usuarios requieren funciones de accesibilidad, y no fallan a los usuarios con estas necesidades. Esto significa incorporar suficientes herramientas para cumplir con estos objetivos. Afortunadamente, la mayoría de las cosas ya están incluidas en el sistema operativo Android, y solo necesitamos seguir las guías.
Especificidad
Esto se refiere a la plataforma que está utilizando. Si está desarrollando aplicaciones para teléfonos Android, normalmente piensa en métodos de entrada, como pantalla táctil, teclado y tal vez un mouse; pero también debe mirar cosas como la entrada a través de comandos de voz.
Accesibilidad para desarrolladores de Android
Lo que hemos comentado hasta ahora es la base de la accesibilidad en el diseño, la interfaz y el desarrollo. Pero veamos cómo los desarrolladores implementan esto para que las aplicaciones sean accesibles.
La primera recomendación general es agregar una descripción de contenido a todos los elementos XML.
android:contentDescription="@string/descriptionOfElement"
Solo hay una excepción a esto, TextView, no necesita una descripción.
Además, tenga en cuenta que a veces solo agrega elementos para el espaciado o un propósito no relacionado con el contenido visual. En este caso, debe establecer contentDescription, pero con un valor de nulo.
Accesibilidad en botones
Los botones son una parte importante de cualquier aplicación móvil. A menudo he escuchado a personas quejarse de que es difícil usar sus teléfonos debido a los «dedos gordos». Por esta razón, y para ayudar a los usuarios con discapacidad, es importante considerar la tamaño objetivo de un botón.
Android recomienda un mínimo de 48 dp x 48 dp para cualquier botón que esté utilizando. Esto se puede lograr no solo mediante el cuerpo del botón en sí, sino también mediante el relleno alrededor del botón. Por ejemplo, puede tener un botón con un ancho de 32 dp y un relleno de 8 dp a cada lado.
<Button android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:minWidth ="32dp" android:paddingRight="8dp" android:paddingLeft="8dp" ... />
Accesibilidad en Editar texto
1. Elementos enfocables
<EditText android:id="@+id/accessibility_edit_text" android:inputType="textPassword" android:layout_height="wrap_content" android:layout_width="wrap_content" android:focusable="true"> </EditText>
En el código anterior, la forma de agregar accesibilidad es a través de la última propiedad. Cuando usa su teléfono a diario, la forma normal de acceder a un texto de edición es a través del tacto, que se maneja automáticamente. Al agregar el enfocable, le está diciendo a los dispositivos de accesibilidad que este es un elemento editable y, si navega con un teclado u otro dispositivo, el usuario puede interactuar (enfocarse) en él.
2. Sugerencias
También se recomienda agregar sugerencias en textos que sean editables. Estas sugerencias deben tener ejemplos de entradas válidas para que los usuarios puedan seguirlas.
3. Asociar cada EditText con una etiqueta
He visto muchas aplicaciones, incluso las que desarrollé, que usan la sugerencia de un EditText como etiqueta. El problema con esto es que cuando el usuario ingresa el texto, ya no sabe para qué sirve el campo.
Se recomienda emparejar siempre cada EditText con una etiqueta. Android Studio sugiere que cada vez que crea un diseño, se marca como una advertencia, no como un error. Para aclarar la relación, debe utilizar la propiedad android: labelFor.
<TextView android:id="@+id/thisLabelDescribesTheEditText" android:labelFor="@+id/thisIsTheEditText" .../> <EditText android:id="@+id/thisIsTheEditText" ... />
Otro dato importante a recordar es que el texto de cada etiqueta debe ser único, de lo contrario el usuario no sabrá a cuál te refieres. Por ejemplo, para un usuario con un lector de pantalla, la posición de los elementos visualmente no da una pista y no sabrá la diferencia entre elementos con el mismo nombre.
Diseños accesibles
Al igual que los EditTexts que se pueden enfocar a través de métodos de entrada, los grupos de vistas también se pueden enfocar. Para los lectores de pantalla, es bueno saber qué elementos están agrupados, de esa manera al leer el contenido, pueden mencionar todos los elementos dentro de un diseño como parte del mismo grupo. Puede definir esto con el siguiente código.
<LinearLayout android:id="@+id/this_is_a_container" android:screenReaderFocusable="true" ...>
Terminando
Estas son las líneas de código más importantes para la accesibilidad en Android. Como puede ver, no es mucho código para agregar, pero ¿ha considerado la gran diferencia que podría suponer para algunos usuarios? ¡Espero que agregue esto a su próximo proyecto! Déjame saber en los comentarios a continuación si tienes alguna pregunta.
Añadir comentario