Un aperçu de la prise en charge des lecteurs d'écran mobiles dans le moteur Unity

Dans le cadre d'une évolution positive vers l'inclusivité, un nombre croissant de développeurs de jeux donnent la priorité à l'accessibilité en tant qu'aspect intégral de leurs créations. Unity s'engage à fournir un support pour aider les développeurs à atteindre leurs objectifs en matière d'accessibilité. Comme l'a présenté Leah Skerry lors de la GAconf USA 2023, Unity travaille activement à la prise en charge des lecteurs d'écran mobiles, ce qui constitue la première des nombreuses fonctionnalités d'exécution accessibles prévues pour améliorer les expériences de jeu dans les années à venir.
Étant donné que les projets développés avec Unity utilisent nos propres systèmes d'interface utilisateur graphique (GUI), il n'était pas possible auparavant que les lecteurs d'écran mobiles soient compatibles avec le contenu créé par Unity. Cela signifie que lorsqu'un utilisateur Android ou iOS ouvrait un jeu réalisé avec Unity sur son appareil alors qu'un lecteur d'écran était en cours d'exécution, il n'y avait aucun moyen d'interagir avec le jeu tant que le lecteur d'écran n'était pas désactivé. Permettre aux utilisateurs de toutes capacités de profiter des jeux sur leurs appareils mobiles a été l'un de nos principaux objectifs, alors plongeons dans ce que cette prise en charge signifie pour les développeurs Unity aujourd'hui.
Un lecteur d'écran est une forme de technologie d'assistance qui permet aux données visuelles d'être restituées de manière non visuelle, comme la parole ou le braille. Les appareils mobiles fonctionnant sous Android et iOS intègrent une technologie de lecture d'écran, telle que TalkBack et VoiceOver, respectivement. Cette forme de technologie d'assistance est essentielle pour les personnes aveugles, mais aussi pour les personnes malvoyantes, analphabètes ou souffrant de troubles cognitifs.
Pour les appareils mobiles, les lecteurs d'écran utilisent un moteur de synthèse vocale pour traduire en paroles les informations affichées à l'écran. Ils peuvent être utilisés pour naviguer dans l'interface utilisateur par le toucher ou par des gestes.
Les anciens jeux réalisés avec Unity sont, par défaut, incompatibles avec les lecteurs d'écran. Pour qu'un lecteur d'écran puisse naviguer dans une telle application, sa technologie doit recevoir des informations sur les éléments accessibles, leur emplacement sur l'écran, leur rôle et la manière dont l'utilisateur peut interagir avec l'interface utilisateur. Cela signifie que nous avions besoin d'un moyen de dire au lecteur d'écran que, par exemple, il y a une étiquette à cette position, avec ce texte particulier, et qu'à cette position il y aun bouton avec cetexte particulier, et que l'action à effectuer lorsque le bouton est activé est cette fonction, et ainsi de suite.
Depuis Unity 2023.2 Tech Stream, et amélioré avec 2023.3 Tech Stream (maintenant connu sous le nom de Unity 6 Beta), les développeurs peuvent maintenant convertir leur interface graphique en données qu'un lecteur d'écran sur les appareils mobiles peut utiliser pour permettre la navigation et l'interaction avec un jeu Unity. Cette API a été développée pour ne pas dépendre d'un système d'interface graphique particulier et peut donc être utilisée par toute personne développant un jeu avec Unity, quelle que soit la technologie utilisée pour mettre en œuvre son interface graphique. Les éléments qui ne font pas partie de l'interface graphique peuvent également être représentés comme des éléments de lecture d'écran.
L'API du lecteur d'écran est une simple hiérarchie de structures de données qui contient les informations dont un lecteur d'écran a besoin pour permettre l'interaction avec chaque élément de l'interface graphique. Chaque nœud de la hiérarchie représente généralement un élément accessible dans un jeu, avec une étiquette (la première chose lue par le lecteur d'écran lorsque le nœud est mis en évidence), une position sur l'écran, parfois une valeur, et des informations supplémentaires pour aider le lecteur d'écran à donner à l'utilisateur plus d'informations sur cet élément, par exemple s'il s'agit d'un bouton ou d'une bascule, ou si l'élément est désactivé.
L'ordre des nœuds dans la hiérarchie d'accessibilité définit l'ordre dans lequel le lecteur d'écran naviguera dans l'écran. Cela signifie que les nœuds frères (nœuds situés au même niveau de la hiérarchie) sont lus dans l'ordre, et qu'un nœud parent est lu avant ses enfants, par exemple.

Actuellement, la mise en œuvre initiale de cette API pour les lecteurs d'écran ne fonctionne qu'avec des appareils mobiles fonctionnant avec les systèmes d'exploitation Android ou iOS. Conformément à notre stratégie de produit, nous envisageons également d'étendre la prise en charge à MacOS et à Windows, qui disposent tous deux de capacités de lecture d'écran natives, ainsi qu'aux navigateurs web de bureau. Bien que les consoles de jeu ne soient pas des plateformes accessibles par nature, nous étudions les possibilités qui s'offrent à elles.

Unity reconnaît l'importance de veiller à ce que chaque joueur, quelles que soient ses capacités, puisse s'engager pleinement dans tout ce que les développeurs du monde entier créent. Cette nouvelle capacité souligne notre engagement à favoriser un secteur des jeux inclusif et agréable pour tous les joueurs. Notre équipe chargée de l'accessibilité ne fait que commencer et a encore beaucoup à faire - consultez notre feuille de route, ainsi que celle des systèmes d'interface utilisateur, pour en savoir plus.
Les API mentionnées sont documentées et se trouvent dans la section Scripting API du manuel Unity. Commencez par la classe AssistiveSupport. De plus, nous avons créé un dépôt GitHub avec un exemple pratique(LetterSpell, illustré dans la bannière en haut) sur la façon d'implémenter les capacités de lecture d'écran dans votre application ou jeu Unity, ainsi que des exemples supplémentaires d'utilisation d'AccessibilitySettings.
Nous aimerions savoir comment vous utilisez nos outils pour favoriser l'accessibilité. Montrez-nous les choses étonnantes sur lesquelles vous travaillez dans Unity et envoyez-nous vos commentaires directement dans le forum sur l'accessibilité.