Home » Análisis » Análisis: Las nuevas funciones de accesibilidad de iOS, watchOS, macOS y tvOS
Banner Accesibilidad: Análisis de las nuevas funciones en iOS, watchOS, macOS y tvOS

Análisis: Las nuevas funciones de accesibilidad de iOS, watchOS, macOS y tvOS

La accesibilidad es hacer un sistema usable para todos sin importar sus necesidades. Un tema que Apple se toma muy en serio y donde destaca especialmente frente a otros sistemas. Apple divide la accesibilidad en sus sistemas en cuatro grandes focos: motor, visión, audición y aprendizaje.

La accesibilidad motora son funciones del sistema que permiten a personas con problemas motores manejar los dispositivos, como personas con discapacidad que solo pueden pulsar una superficie o que no controlan con precisión su motricidad (como enfermos de Parkinson). Las características de visión son las que permiten manejar los sistemas Apple a invidentes o personas con diferentes niveles de discapacidad visual. Las opciones de accesibilidad para audición son funciones para personas con problemas auditivos de diferente grado, que incluyen en algunos casos la integración con dispositivos externos que se adaptan al iPhone, como teletipos (TTY) o audífonos. Y el último grupo, el del aprendizaje, engloba posibilidades para personas que tienen dificultades en su capacidad de aprender cosas en diferentes grados, como aquellas que sufren dislexia o autismo.

Si queréis saber más, os invito a escuchar el episodio 2×03 de nuestro podcast pulsando aquí donde hicimos una muy interesante entrevista a Jonathan Chacón (desarrollador invidente) y a Jose María Ortiz (consultor de accesibilidad web y apps). En ella podréis aprender cómo hacer accesible vuestra app, algo que Apple tiene muy en cuenta a la hora de valorar la calidad de los desarrollos.

Novedades en tvOS 10

Para ayudar a todos estos grupos, existen una serie de herramientas básicas y tipos de control de los dispositivos, como el uso de Switch Control o el asistente de voz. Por ejemplo, Switch Control permite que aquellas personas que no pueden tocar el iPhone porque solo pueden tocar una superficie táctil sin tocar elementos específicos, puedan controlar el dispositivo. Switch control es un cuadro que se mueve cada poco tiempo entre las diferentes filas para que, cuando la persona con la discapacidad vea que el “cursor” (o cuadro) pasa por la fila que le interesa, apriete. En ese momento empieza a moverse por los iconos de la fila. Al pasar por aquel que quiere pulsar, volvería a pulsar y entraría. Así funciona básicamente.

Opciones de Switch Control en tvOS 10

Y en iOS 10, Switch Control ha llegado a tvOS, permitiendo que personas que no tengan la capacidad de controlar Siri Remote con eficiencia (o usen un dispositivo externo conectado por Bluetooth) puedan usar la interfaz en modo “rastreo” cambiando entre las diferentes opciones y pudiendo permitir su manejo. Está disponible tanto con opciones contextuales como con una representación del propio Siri Remote para tener un feedback de dónde se pulsa y no tener que usar un botón de switch dedicado.

Como desarrolladores, en tvOS es recomendable usar la propiedad de tipo array accesiblityHeaderElements, ya presente en iOS 9, donde le decimos al sistema las diferentes cabeceras que tenemos dentro de nuestra navegación en foco.

En tvOS también tenemos mejoras en el asistente de voz (o voiceover) que permiten a este salir del foco de la navegación y leer los detalles de cualquier elemento una vez seleccionado: nos leerá la cabecera, la etiqueta del elemento y luego sus correspondientes elementos de descripción si los hubiera.

Simulación en imagen de la vibración del tiempo táptico de watchOS 3

Novedades para watchOS 3

En watchOS existe una nueva e interesante función: el tiempo táctico. Está función está pensada para personas con discapacidad visual que, para saber la hora (o incluso cuando la preguntamos a Siri) obtienen una locución de la misma. Pero a veces, por el sitio donde estemos, no podemos usar una voz y se hace necesario encontrar una forma de conocer la hora de una forma silenciosa. Con tapic time, el sistema nos la dirá a base de vibraciones del reloj, con pequeñas pausas entre cada cifra.

Novedades para macOS Sierra

En macOS existe una nueva función accesible: el control Dwell. Esta nueva opción permite que al dejar el puntero del ratón parado en un sitio durante un breve tiempo, se active un temporizador que, en caso de expirar sin que se toque nada, ejecuta una opción preconfigurada como acción de ratón.

Control Dwell para macOS

Si tenemos asociado que se haga un zoom como opción contextual, con dejar parado el ratón se activará solo sin necesidad de tener que pulsar directamente un botón del propio ratón. Está pensado para personas que tienen la capacidad de mover un puntero por la pantalla, pero no de presionar una superficie para obtener opciones contextuales o de acción dentro de una interfaz.

Novedades en iOS 10

En iOS se ha incorporado un magnificador, que puede ser usado en cualquier momento en el sistema. Una opción especial de cámara que realiza una potente macro sobre cualquier elemento físico, permitiéndonos ver a buen tamaño cualquier elemento que en la vida real tenga un tamaño que nos impida verlo correctamente. El magnificador se invoca (una vez activado) con un triple click en el botón Home. Si también usamos Voiceover con la misma combinación, nos pedirá que elijamos cuál es las opciones queremos activar. Una vez en él, podemos acercarnos con precisión a cualquier elemento por pequeño que sea y en caso de tener problemas de estabilidad, podemos pulsar para hacer una instantánea temporal por la que podremos hacer zoom y acercarnos más en detalle. Incluso podemos acceder a filtros de color para mejorar la calidad de lo que leemos.

En cuanto a gente con dispacacidad auditiva, el iPhone (como otros smartphones) ha soportado durante mucho tiempo dispositivos de tipo TTY: un teletipo que permite una interfaz de voz a texto para permitir leer en una pantalla lo que alguien dice en una conversación telefónica (y no puede ser escuchado por personas con pérdida total auditiva), así como un teclado para permitir escribir a la persona y que lo escrito se convierta en voz y se envíe como tal dentro de la portadora de la llamada (las operadoras de telefonía tienen que soportar estos dispositivos para que esto sea posible).

Imagen del TTY (Teletipo) por software de iOS 10 para el iPhone

Hasta ahora, se necesitaba un dispositivo teletipo que suele ser poco cómodo, pero en iOS 10 Apple ha incorporado un TTY por software. De forma que ahora no necesitamos la máquina. Las conversaciones nos aparecerán en la propia pantalla del iPhone y con el teclado podemos contestar, todo siguiendo el estándar como si hubiera conectado un teletipo real al iPhone. De esta forma la persona al otro lado (tenga o no la discapacidad auditiva) no notará diferencia alguna.

Imagen en el iPhone para captar la ceguera de color de un usuario

Además, para gente con dislexia existe una nueva función: el feedback de escritura, en la que mientras escribimos, si paramos de hacerlo el asistente de voz nos leerá en voz alta la última letra que hemos escrito, además de leernos cada nueva palabra que escribamos al completo. De esta forma, la persona con este problema sabrá que la grafía y lo que está escribiendo coinciden con aquella que buscaba expresar y podrá corregirlo al momento en caso de error.

Otra nueva función para los cuatro sistemas es la configuración para ceguera de color. De esta forma, podemos elegir el patrón de colores predeterminado que responde a nuestra posible ceguera (daltonía) y los colores del sistema se adaptarán para que podamos ver todos ellos sin problema en función de nuestra verdadera percepción. Se muestra un patrón de colores con una figura de fondo (normalmente un número) y podemos ajustar los valores hasta que seamos capaces de ver dicha figura, en cuyo caso ya tendremos ajustados los valores para poder percibir todos los colores que muestre la pantalla y no perder detalles.

Novedades a nivel desarrollo

Una de las nuevas e interesantes funciones de iOS 10 es una nueva app en Xcode: el inspector de accesibilidad. Una aplicación que permite auditar la accesibilidad de las apps de forma automática y que indique cualquier tipo de problema encontrado a este respecto en ellas, como elementos sin descripción o cuando la descripción de una imagen es el propio nombre de la imagen (lo cual es un error).

El nuevo inspector de accesibilidad funciona tanto en el simulador como en un dispositivo conectado, soporta todas las plataformas y solo tenemos que seleccionar este inspector en el target que queramos auditar. Apple se ha basado principalmente en el feedback de los desarrolladores para integrar esta herramienta, disponible en el menú Open Developer Tools de Xcode.

El inspector de accesibilidad dando resultados de una auditoría

Elegimos el dispositivo que queramos usar, vamos a la opción de auditoría y la lanzamos Audit. Nos avisará de cualquier problema que encuentre e incluso nos señalará en la interfaz del dispositivo o simulador que estemos usando, cuál es el elemento que tiene el problema. Incluso podemos previsualizar el elemento en la propia interfaz en la parte inferior, del propio Inspector de Accesibilidad. A la derecha de cada error o alerta tendremos una interrogación donde nos sugerirá cómo solucionar el problema, como por ejemplo, sugerirnos que pongamos la etiqueta de accesibilidad (el accesibilityLabel).

La nueva app está preparada incluso para facilitarnos la forma de reportar estos errores si somos parte de un equipo o grupo de auditoría pero no vamos a solucionarlo nosotros. Si copiamos el error en el portapapeles, al pegarlo nos dará mucha más información, diciéndonos exactamente el elemento no incorporado y el por qué del fallo. Luego, podemos pulsar un botón de vista rápida que sacará una captura del dispositivo marcando el elemento con el error, por lo que solo tenemos que adjuntar esta imagen a nuestro informe de error.

Otra parte importante de la app es la opción de inspección, donde podremos auditar manualmente la app. Solo tenemos que mover el ratón a cada elemento (o pulsarlo en el dispositivo) para que nos diga los elementos accesibles en la misma: elementos básicos de accesibilidad, acciones, jerarquías… podemos probar las acciones y ver, uno a uno, todos los elementos de accesibilidad de la app y valorar que todo funciona bien y tiene los elementos necesarios. Podemos pulsar en el botón de target y mientras nos movemos en la app objetivo, se nos irán marcando los diferentes elementos en uno y otro lado automáticamente.

El inspector de accesibilidad, auditando una app de macOS

Por último, tenemos una opción de Preferencias que nos permite fijar las opciones de accesibilidad más comunes como reducir transparencia, movimiento o cambiar el tamaño de la letra, para que podamos ver cómo afecta en tiempo real a nuestra app y actuar en consecuencia sin tener que acudir a modificar las opciones en el dispositivo.

Novedades en UIAccesibility

Cuando queremos trabajar con la accesibilidad de una app, el framework UIAccesibility es el más importante. Este consta de varias propiedades que forman parte del protocolo NSObject por lo que cualquier elemento del sistema y por consiguiente de Cocoa, SpriteKit u otro framework de desarrollo.

Estas propiedades son isAccesibilityElement de tipo booleano que le indica al sistema si ese elemento tendrá que ser tomado en cuenta por la accesibilidad de una app (por ejemplo, un elemento imagen decorativo que no aporte función o información alguna podría estar a false y sería ignorado). También está accesibilityLabel que permite informar al sistema qué es dicho elemento, accesibilityTraits que define qué es el elemento (si es un botón, un texto, una cabecera… ) y accesibilityFrame que indica donde está situado este por si queremos modificar el frame de este porque queremos que el marco vaya más allá de lo que realmente ocupa el elemento original del que depende. Y el elemento más importante: accesibilityValue que nos dice el valor de dicho elemento. Muchos de estos valores a veces se rellenan solos. Si tenemos un texto o un campo de texto, el valor del mismo será el mismo accesibilityValue (por ejemplo), por lo que habría que tocarlo solo en caso que el valor de un elemento sea visual y necesite de una descripción.

Y en iOS 10 ahora se ha incorporado una nueva propiedad llamada accesibilityFrameinContainerSpace, que permite especificar un frame para un elemento accesible dentro de una contenedor ya creado, por ejemplo, un mapa donde tenemos diferentes elementos y queremos enfocarlos uno a uno, pero forman parte de un contenedor concreto.

App con el nuevo rotor personalizado, eligiendo entre varias opciones de navegación en un mapa

También se ha añadido la posibilidad de crear rotores personalizados. Un rotor es un elemento que se usa cuando está activado el asistente de voz (voiceover) que se activa girando con la pinza la pantalla, como si estuviéramos moviendo un pequeño interruptor redondo, como si movieras un selector circular. El rotor permite seleccionar grupos de objetos en la pantalla (no todos) por diferentes clasificaciones automáticas. Por ejemplo, moverse solo por las cabeceras de una pantalla. Pero estas opciones eran automáticas siempre y ahora se puede usar una clase UIAccesiblityCustomRotor que permite dar opciones por las que buscar a través de esta selección a la hora de navegar.

Solo tenemos que definir nuestra propia navegación a través de elementos y devolverlos, por orden, como un UIAccesibilityCustomRotorItemResult. Es algo parecido a la navegación de una tabla donde tenemos que devolver, a través de un indexPath, cuál es el elemento actual que queremos ver.

Es una funcionalidad un poco más compleja y requiere más trabajo, porque hay que integrarlo bien con la navegabilidad visual que tengamos en la app, pero una vez integrado es muy útil porque podemos crear clasificaciones o agrupaciones personalizadas de elementos por los que navegar y seleccionar a través del asistente de voz, con ayuda del rotor para no tener distracción alguna e ir por clasificaciones personalizadas.

Conclusiones y podcast

La accesibilidad es uno de los detalles sobre los que más incidencia hace Apple y este año ha habido varias charlas que han hablado directamente o indirectamente de ella. Hablen con cualquier usuario con discapacidad de cualquier tipo y le dirán que como el iPhone no hay nada. No es una opinión, es un hecho. Pero nosotros como desarrolladores tenemos la responsabilidad y la obligación de aprender acerca de ella, aprovechar estas nuevas funciones que hemos comentado y conseguir que nuestras apps (en la medida que las mismas puedan permitirlo) puedan ser usadas por cualquiera, independientemente de sus capacidades y necesidades.

Por último, les invito a que oigan un podcast en el que participé el otro día hablando de todos estos temas, para Accesibilidad Apple Internacional. Un grupo de personas con diferentes discapacidades, principalmente en la visión, muy aficionados a la tecnología, a los dispositivos Apple y que hacen un gran podcast con mucha ilusión para intentar que este mundo, que muchas veces es desconocido por la mayoría, se conozca más. Espero que lo disfruten y Good Apple Coding.

Accesibilidad Apple Internacional Podcast, Especial WWDC con Julio César Fernández de invitado | Escuchar en iVoox

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

Swift 4 Cambios

Los cambios en Swift 4 que harán tu código incompatible: 3 por ahora

El cambio de versión de Swift 3 a 4 es algo que provoca miedos e inseguridades. La memoria del pesado cambio a la versión 3 nos trae malos recuerdos, pero nada más lejos de la realidad en este caso. A fecha 31 de mayo, solo 3 cosas harán nuestro código incompatible. Descúbrelas en este análisis y cuales serán las simples soluciones en caso que esto nos afecte.