¿Qué estás buscando?
Engine & platform

Una mirada al soporte de lectores de pantalla móviles en Unity Engine

JULIA PERDIGUEIRO Software Development Manager, Accessibility
Jan 19, 2024|7 minutos
Una mirada al soporte de lectores de pantalla móviles en Unity Engine
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

En un cambio positivo hacia la inclusividad, un número cada vez mayor de desarrolladores de juegos están priorizando la accesibilidad como un aspecto integral de sus creaciones. Unity se dedica a brindar soporte para ayudar a los desarrolladores a lograr sus objetivos de accesibilidad. Como presentó Leah Skerry durante GAconf USA 2023, Unity ha estado trabajando activamente en la compatibilidad con lectores de pantalla móviles, lo que marca la primera de muchas funciones de tiempo de ejecución accesibles diseñadas para mejorar las experiencias de juego en los próximos años.

Dado que los proyectos desarrollados con Unity utilizan nuestros propios sistemas de interfaz gráfica de usuario (GUI), anteriormente no era posible que los lectores de pantalla móviles fueran compatibles con el contenido creado con Unity. Esto significaba que cuando un usuario de Android o iOS abría un juego creado con Unity en sus dispositivos mientras se ejecutaba un lector de pantalla, no había forma de interactuar con él hasta que se apagara el lector de pantalla. Permitir que usuarios de todas las capacidades disfruten de los juegos en sus dispositivos móviles ha sido uno de nuestros principales objetivos, así que profundicemos en lo que significa este soporte para los desarrolladores de Unity hoy.

¿Qué es un lector de pantalla?

Un lector de pantalla es una forma de tecnología de asistencia que permite que la información visual se transmita de forma no visual, como mediante voz o Braille. Los dispositivos móviles que funcionan con Android e iOS tienen tecnología de lector de pantalla incorporada, como TalkBack y VoiceOver, respectivamente. Esta forma de tecnología de asistencia es esencial para las personas ciegas y también útil para las personas con discapacidad visual, analfabetas o con discapacidades cognitivas.

Para los dispositivos móviles, los lectores de pantalla utilizan un motor de texto a voz (TTS) para traducir la información en pantalla a voz. Se pueden utilizar para navegar por la interfaz de usuario mediante tacto o gestos.

Lectores de pantalla y juegos de Unity: Contexto histórico

Los juegos más antiguos creados con Unity son, de forma predeterminada, incompatibles con los lectores de pantalla. Para que un lector de pantalla pueda navegar por una aplicación de este tipo, su tecnología debe recibir información sobre cuáles son los elementos accesibles, dónde están ubicados en la pantalla, qué función tienen y cómo puede interactuar un usuario con la interfaz de usuario. Esto significa que necesitábamos una forma de decirle al lector de pantalla que, por ejemplo, hay una etiqueta en esta posición, con este texto particular, y en esta posición hayun botón con estetexto particular, y la acción a realizar cuando se activa el botón es esta función, y así sucesivamente.

API del lector de pantalla de Unity

A partir de Unity 2023.2 Tech Stream, y mejorado con 2023.3 Tech Stream (ahora conocido como Unity 6 Beta), los desarrolladores ahora pueden convertir su GUI en datos que un lector de pantalla en dispositivos móviles puede usar para permitir la navegación e interacción con un juego de Unity. Esta API fue desarrollada para no depender de un sistema GUI en particular y, por lo tanto, puede ser utilizada por cualquier persona que desarrolle un juego con Unity, sin importar qué tecnología utilice para implementar su GUI. Los elementos que no son GUI también pueden representarse como elementos de lector de pantalla.

La API del lector de pantalla es una jerarquía de estructura de datos simple que contiene la información que un lector de pantalla necesita para permitir la interacción con cada elemento de la GUI. Cadanodo de la jerarquía generalmente representa un elemento accesible en un juego, con una etiqueta (lo primero que lee el lector de pantalla cuando el nodo está enfocado), una posición en la pantalla, a veces un valor e información adicional para ayudar al lector de pantalla a brindarle al usuario más información sobre ese elemento, como si es un botón o un interruptor, o si el elemento está deshabilitado.

El orden de los nodos en la jerarquía de accesibilidad es lo que define el orden en el que el lector de pantalla navegará por una pantalla. Esto significa que los nodos hermanos (nodos en el mismo nivel de la jerarquía) se leen en orden, y un nodo padre se lee antes que sus hijos, por ejemplo.

GIF animado que muestra el visor de jerarquía de accesibilidad dentro del Editor de Unity
GIF animado que muestra el visor de jerarquía de accesibilidad dentro del Editor de Unity
Plataformas compatibles

Actualmente, la implementación inicial de esta API para lectores de pantalla solo funciona con dispositivos móviles que ejecutan sistemas operativos Android o iOS. De acuerdo con nuestra estrategia de producto, también estamos considerando ampliar el soporte a MacOS y Windows, cada uno con capacidades de lector de pantalla nativas, y también a navegadores web de escritorio. Si bien las consolas de juegos no son plataformas inherentemente accesibles, también estamos investigando qué es posible para ellas.

Dos capturas de pantalla que muestran las tecnologías de lectura de pantalla VoiceOver de iOS (izquierda) y TalkBack de Android (derecha)
Dos capturas de pantalla que muestran las tecnologías de lectura de pantalla VoiceOver de iOS (izquierda) y TalkBack de Android (derecha)
Primeros pasos

Unity reconoce la importancia de garantizar que cada jugador, independientemente de su capacidad, pueda participar plenamente en todo lo que crean los desarrolladores del mundo. Esta última capacidad subraya nuestro compromiso de fomentar una industria de juegos inclusiva y agradable para todos los jugadores. Nuestro Equipo de Accesibilidad recién está comenzando y tiene mucho más por hacer: consulte nuestra hoja de ruta, junto con la de Sistemas de UI, para obtener más información.

Las API mencionadas están documentadas y se encuentran en la sección API de scripts del Manual de Unity. Comience a través de la clase AssistiveSupport. Además, hemos creado un repositorio de GitHubcon un ejemplo práctico (LetterSpell, en la imagen del banner superior) sobre cómo implementar capacidades de lector de pantalla en su aplicación o juego de Unity, junto con ejemplos de uso adicionales de AccessibilitySettings .

Nos encantaría saber cómo utiliza nuestras herramientas para apoyar la accesibilidad. Muéstranos las cosas increíbles en las que estás trabajando en Unity y envíanos tus comentarios directamente en el foro de Accesibilidad.