Engine & platform

Ein Blick auf die Unterstützung mobiler Bildschirmleser in der Unity Engine

JULIA PERDIGUEIRO Software Development Manager, Accessibility
Jan 19, 2024|7 Min.
Ein Blick auf die Unterstützung mobiler Bildschirmleser in der Unity Engine
Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.

Immer mehr Spieleentwickler legen großen Wert auf Barrierefreiheit als integralen Bestandteil ihrer Kreationen - eine positive Entwicklung in Richtung Inklusion. Unity ist bestrebt, Entwicklern bei der Erreichung ihrer Ziele im Bereich der Barrierefreiheit zu helfen. Wie Leah Skerry auf der GAconf USA 2023 vorstellte, arbeitet Unity aktiv an der Unterstützung für mobile Bildschirmlesegeräte. Dies ist die erste von vielen barrierefreien Laufzeitfunktionen, die das Spielerlebnis in den kommenden Jahren verbessern sollen.

Da die mit Unity entwickelten Projekte unsere eigenen grafischen Benutzeroberflächensysteme (GUI) verwenden, war es bisher nicht möglich, dass mobile Bildschirmlesegeräte mit den von Unity erstellten Inhalten kompatibel sind. Wenn ein Android- oder iOS-Benutzer ein mit Unity erstelltes Spiel auf seinem Gerät öffnete, während ein Bildschirmlesegerät lief, gab es keine Möglichkeit, damit zu interagieren, bis das Bildschirmlesegerät ausgeschaltet wurde. Eines unserer Hauptziele war es, Nutzern aller Fähigkeitsstufen die Möglichkeit zu geben, Spiele auf ihren mobilen Geräten zu genießen. Lassen Sie uns also einen Blick darauf werfen, was diese Unterstützung für Unity-Entwickler heute bedeutet.

Was ist ein Bildschirmlesegerät?

Ein Bildschirmlesegerät ist eine Form der unterstützenden Technologie, die es ermöglicht, visuelle Eingaben in einer nicht visuellen Form, wie z. B. Sprache oder Braille, auszugeben. Mobile Geräte mit Android- und iOS-Betriebssystemen verfügen über integrierte Bildschirmlesetechnologien wie TalkBack und VoiceOver. Diese Form der unterstützenden Technologie ist für blinde Menschen unerlässlich, aber auch für Menschen mit Sehbehinderungen, Analphabeten oder kognitiven Behinderungen nützlich.

Bei mobilen Geräten verwenden Bildschirmlesegeräte eine Text-to-Speech-Engine (TTS), um Bildschirminformationen in Sprache zu übersetzen. Sie können verwendet werden, um die Benutzeroberfläche entweder durch Berührung oder durch Gesten zu steuern.

Bildschirmlesegeräte und Unity-Spiele: Historischer Kontext

Ältere Spiele, die mit Unity entwickelt wurden, sind standardmäßig nicht mit Bildschirmlesern kompatibel. Damit ein Bildschirmlesegerät in einer solchen Anwendung navigieren kann, muss seine Technologie Informationen darüber erhalten, welche Elemente zugänglich sind, wo sie auf dem Bildschirm platziert sind, welche Funktion sie haben und wie ein Benutzer mit der Benutzeroberfläche interagieren kann. Das heißt, wir brauchten eine Möglichkeit, dem Bildschirmleser mitzuteilen, dass es zum Beispiel an dieser Stelle ein Etikett mit diesem bestimmten Text gibt, und an dieser Stelleeine Schaltfläche mit diesem bestimmtenText, und die Aktion, die ausgeführt werden soll, wenn die Schaltfläche aktiviert wird, ist diese Funktion, und so weiter.

Unity Bildschirmleser-API

Beginnend mit Unity 2023.2 Tech Stream und verbessert mit 2023.3 Tech Stream (jetzt bekannt als Unity 6 Beta), können Entwickler nun ihre GUI in Daten konvertieren, die ein Screenreader auf mobilen Geräten nutzen kann, um die Navigation und Interaktion mit einem Unity-Spiel zu ermöglichen. Diese API wurde so entwickelt, dass sie nicht von einem bestimmten GUI-System abhängt und daher von jedem verwendet werden kann, der ein Spiel mit Unity entwickelt - unabhängig davon, welche Technologie er zur Implementierung seiner GUI verwendet. Nicht-GUI-Elemente können auch als Screenreader-Elemente dargestellt werden.

Die Bildschirmleser-API ist eine einfache Datenstrukturhierarchie, die die Informationen enthält, die ein Bildschirmleser benötigt, um die Interaktion mit jedem GUI-Element zu ermöglichen. Jeder Knoten in der Hierarchie stellt in der Regel ein zugängliches Element in einem Spiel dar, mit einer Beschriftung (das erste, was vom Bildschirmlesegerät gelesen wird, wenn der Knoten fokussiert wird), einer Position auf dem Bildschirm, manchmal einem Wert und zusätzlichen Informationen, die dem Bildschirmlesegerät helfen, dem Benutzer weitere Informationen über dieses Element zu geben, z. B. ob es sich um eine Schaltfläche oder einen Umschalter handelt oder ob das Element deaktiviert ist.

Die Reihenfolge der Knoten in der Zugänglichkeitshierarchie bestimmt die Reihenfolge, in der der Bildschirmleser auf dem Bildschirm navigiert. Das bedeutet, dass Geschwisterknoten (Knoten auf der gleichen Ebene der Hierarchie) in der Reihenfolge gelesen werden, und dass z. B. ein übergeordneter Knoten vor seinen Kindern gelesen wird.

Animiertes GIF zur Anzeige der Barrierefreiheitshierarchie im Unity-Editor
Animiertes GIF zur Anzeige der Barrierefreiheitshierarchie im Unity-Editor
Unterstützte Plattformen

Derzeit funktioniert die erste Implementierung dieser API für Bildschirmlesegeräte nur mit mobilen Geräten mit Android- oder iOS-Betriebssystemen. Gemäß unserer Produktstrategie erwägen wir auch eine Ausweitung der Unterstützung auf MacOS und Windows, jeweils mit nativen Screenreader-Funktionen, sowie auf desktopbasierte Webbrowser. Auch wenn Spielkonsolen nicht von Natur aus barrierefreie Plattformen sind, prüfen wir, was auch für sie möglich ist.

Zwei Screenshots zeigen die Bildschirmlesetechnologien iOS VoiceOver (links) und Android TalkBack (rechts)
Zwei Screenshots zeigen die Bildschirmlesetechnologien iOS VoiceOver (links) und Android TalkBack (rechts)
Erste Schritte

Unity hat erkannt, wie wichtig es ist, dass jeder Spieler, unabhängig von seinen Fähigkeiten, sich voll und ganz auf das einlassen kann, was die Entwickler der Welt erschaffen. Diese neueste Fähigkeit unterstreicht unser Engagement für die Förderung einer integrativen und angenehmen Glücksspielindustrie für alle Spieler. Unser Team für Barrierefreiheit hat gerade erst begonnen und hat noch viel zu tun - sehen Sie sich unsere Roadmap an, zusammen mit der Roadmap für UI-Systeme, um mehr zu erfahren.

Die genannten APIs sind im Abschnitt Scripting API des Unity-Handbuchs dokumentiert. Der Einstieg erfolgt über die Klasse AssistiveSupport. Außerdem haben wir ein GitHub-Repository mit einem praktischen Beispiel(LetterSpell, im Banner oben abgebildet) zusammengestellt, das zeigt, wie Sie Screenreader-Funktionen in Ihre Unity-Anwendung oder Ihr Spiel implementieren können, sowie zusätzliche Beispiele für die Verwendung von AccessibilitySettings.

Wir würden uns freuen, wenn Sie uns mitteilen, wie Sie unsere Tools zur Unterstützung der Barrierefreiheit einsetzen. Zeigen Sie uns, woran Sie in Unity arbeiten, und senden Sie uns Ihr Feedback direkt im Accessibility-Forum.