Uma olhada no suporte ao leitor de tela móvel no Unity Engine

Em uma mudança positiva em direção à inclusão, um número crescente de desenvolvedores de jogos está priorizando a acessibilidade como um aspecto integral de suas criações. A Unity se dedica a fornecer suporte para ajudar os desenvolvedores a atingir seus objetivos de acessibilidade. Conforme Leah Skerry apresentou durante a GAconf USA 2023, a Unity tem trabalhado ativamente no suporte a leitores de tela para dispositivos móveis, marcando o primeiro de muitos recursos de tempo de execução acessíveis programados para aprimorar as experiências de jogo nos próximos anos.
Como os projetos desenvolvidos com Unity usam nossos próprios sistemas de interface gráfica de usuário (GUI), anteriormente não era possível que leitores de tela móveis fossem compatíveis com o conteúdo criado pela Unity. Isso significava que quando um usuário de Android ou iOS abria um jogo feito com Unity em seus dispositivos enquanto um leitor de tela estava em execução, não havia como interagir com ele até que o leitor de tela fosse desligado. Permitir que usuários de todos os níveis aproveitem os jogos em seus dispositivos móveis tem sido um dos nossos principais objetivos, então vamos analisar o que esse suporte significa para os desenvolvedores do Unity hoje.
Um leitor de tela é uma forma de tecnologia assistiva que permite que a entrada visual seja emitida de uma forma não visual, como fala ou braille. Dispositivos móveis com Android e iOS possuem tecnologia de leitor de tela integrada, como TalkBack e VoiceOver, respectivamente. Essa forma de tecnologia assistiva é essencial para pessoas cegas e também útil para pessoas com deficiência visual, analfabetas ou com deficiências cognitivas.
Para dispositivos móveis, os leitores de tela usam um mecanismo de conversão de texto em fala (TTS) para traduzir informações na tela em fala. Eles podem ser usados para navegar na interface do usuário por toque ou gestos.
Jogos mais antigos feitos com Unity são, por padrão, incompatíveis com leitores de tela. Para que um leitor de tela navegue em um aplicativo desse tipo, sua tecnologia precisa receber informações sobre quais são os elementos acessíveis, onde eles são colocados na tela, qual a função que eles desempenham e como um usuário pode interagir com a interface do usuário. Isso significa que precisávamos de uma maneira de informar ao leitor de tela que, por exemplo, há um rótulo nesta posição, com este texto específico, e nesta posição háum botão com estetexto específico, e a ação a ser tomada quando o botão é ativado é esta função, e assim por diante.
A partir do Unity 2023.2 Tech Stream, e aprimorado com o 2023.3 Tech Stream (agora conhecido como Unity 6 Beta), os desenvolvedores agora podem converter sua GUI em dados que um leitor de tela em dispositivos móveis pode usar para permitir navegação e interação com um jogo Unity. Esta API foi desenvolvida para não depender de um sistema GUI específico e, portanto, pode ser usada por qualquer pessoa que esteja desenvolvendo um jogo com Unity, não importa qual tecnologia use para implementar sua GUI. Elementos não-GUI também podem ser representados como elementos de leitor de tela.
A API do leitor de tela é uma hierarquia de estrutura de dados simples que contém as informações que um leitor de tela precisa para permitir a interação com cada elemento da GUI. Cadanó na hierarquia geralmente representa um elemento acessível em um jogo, apresentando um rótulo (a primeira coisa lida pelo leitor de tela quando o nó é focalizado), uma posição na tela, às vezes um valor e informações extras para ajudar o leitor de tela a dar ao usuário mais informações sobre esse elemento, como se é um botão ou uma alternância, ou se o elemento está desabilitado.
A ordem dos nós na hierarquia de acessibilidade é o que define a ordem na qual o leitor de tela navegará por uma tela. Isso significa que nós irmãos (nós no mesmo nível da hierarquia) são lidos em ordem, e um nó pai é lido antes de seus filhos, por exemplo.

Atualmente, a implementação inicial desta API para leitores de tela funciona apenas com dispositivos móveis que executam sistemas operacionais Android ou iOS. De acordo com nossa estratégia de produto, também estamos considerando estender o suporte ao MacOS e ao Windows, cada um com recursos nativos de leitor de tela, e também aos navegadores da web baseados em desktop. Embora os consoles de jogos não sejam plataformas inerentemente acessíveis, estamos analisando o que também é possível para eles.

A Unity reconhece a importância de garantir que cada jogador, independentemente de sua habilidade, possa se envolver totalmente com tudo o que os desenvolvedores do mundo criam. Este recurso mais recente ressalta nosso compromisso em promover uma indústria de jogos inclusiva e agradável para todos os jogadores. Nossa equipe de acessibilidade está apenas começando e tem muito mais a fazer – confira nosso roteiro, junto com o de sistemas de interface do usuário, para saber mais.
As APIs mencionadas estão documentadas e podem ser encontradas na seção API de script do Manual do Unity. Comece com a aula AssistiveSupport. Além disso, criamos um repositório no GitHubcom um exemplo prático (LetterSpell, mostrado no banner no topo) sobre como implementar recursos de leitor de tela em seu aplicativo ou jogo Unity, além de exemplos extras de uso de AccessibilitySettings .
Gostaríamos de saber como você está usando nossas ferramentas para dar suporte à acessibilidade. Mostre-nos as coisas incríveis nas quais você está trabalhando no Unity e envie-nos seu feedback diretamente no fórum de Acessibilidade.