Blind Accessibility Features Overview

How to use Unreal Engine's built-in text-to-speech plugins to make your game CVAA-compliant.

Choose your operating system:

Windows

macOS

Linux

All Games Software and Game Software updates released after January 1, 2019 that are sold in the United States of America must comply with the 21st Century Communications and Video Accessibility Act (CVAA). CVAA compliance means all text, speech, and video-based communications must be as accessible as reasonably possible for people with disabilities.

To learn more about the CVAA, refer to the Twenty-First Century Communications and Video Accessibility Act page on the Federal Communications Commission (FCC) website.

Under CVAA, all forms of text, speech, and video communications must have at least one alternative that is accessible without vision. All functionality required to use the product must include at least one way to translate visual information into auditory form.

Unreal Engine 5 provides three plugins to assist developers in complying with CVAA requirements for blind users. These plugins are:

  • Text To Speech

  • Screen Reader

  • Slate Screen Reader

Text To Speech Plugin

Text to speech (TTS) is a software technology that is used to provide auditory output in the form of a digital, synthesized, spoken voice. An example of TTS is a GPS device where the digital voice calls out directions when navigating to a destination. Another example is a smart assistant on your phone who reads out answers to you and provides verbal feedback to your commands.

Unreal Engine's Text To Speech plugin provides basic functionality that supports accessibility for blind users by vocalizing text strings in your project. For example, you can use this plugin to vocalize the incoming messages in a text chat for an online game.

Currently, the TTS plugin only supports English across all platforms. We plan to support additional languages in the future.

Screen Reader Plugin

A screen reader is a piece of assistive technology that helps blind users interact with a software application. It conveys visual information on screen, such as text or images, using non-visual means such as text to speech or Braille. It also offers blind users alternative means of interacting with user interface (UI) elements on-screen. For example, instead of using a mouse, a blind user can use special key combinations on a keyboard to change the focused object on the screen.

Screen readers can simulate actions that could be difficult for a blind user to do, such as right-clicking a UI element or scrolling the mouse wheel while inside the bounds of a UI element.

Unreal Engine's Screen Reader plugin takes text to speech functionality and expands it to provide a richer set of features. It offers a base framework that you can use to implement your own custom screen reader solution.

Features of this plugin include:

  • Requests for text to be vocalized via TTS.

  • Queueing a series of accessible announcements to be vocalized via TTS.

  • Requesting the contents of accessible UI elements be vocalized to the user.

When this plugin is enabled, the Text To Speech plugin is automatically enabled as well.

If you are using Slate to implement your UI, consider using the Slate Screen Reader plugin instead.

Slate Screen Reader Plugin

The Slate Screen Reader plugin is built on the base framework provided by the Screen Reader plugin. You can refer to this plugin as a sample for how to implement a screen reader for your own custom UI solution, or use it as-is if you are using Slate to implement your UI.

The goal of the plugin is to be "plug-and-play" for accessibility. When the plugin is enabled, all currently supported accessible Slate and UMG UI elements will have their contents vocalized when a user focuses on a UI element.

When this plugin is enabled, the Text to Speech and Screen Reader plugins are automatically enabled.

The plugin currently supports the following types of widgets:

  • Button

  • Check box

  • Combo box

  • Hyperlink

  • Image

  • Layout

  • Scroll bar

  • Slider

  • Text

  • Text (editable)

  • Window

  • List

  • List item

  • Unknown

Choosing Which Plugin to Use

Use the information below to choose the right accessibility plugin for your project.

If you use a simple UI that doesn't require complex user interaction, consider the Text To Speech plugin as a lightweight solution to comply with CVAA and provide accessibility for blind users.

If you use Slate as your UI solution, use the Slate Screen Reader plugin.

If you use a UI solution other than Slate, you may need to implement your own custom screen reader. Use the Screen Reader plugin as a base framework for this.

You can refer to the Slate Screen Reader plugin for a sample implementation to guide your own custom screen reader development.

Enabling the Plugins

You can enable all three plugins from the main menu (Edit > Plugins). If you need more information about how to enable plugins, refer to the Working with Plugins page.

Before you can enable the Screen Reader and Slate Screen Reader plugins, you need to enable accessibility features for your project and / or Unreal Engine installation.

The steps to do this are the same, but the configuration file you need to edit are different based on whether you want to enable accessibility features for one specific project or for all of UE:

  • Project only: Open the Config\DefaultEngine.ini file.

  • All of UE: Go to the C:\Program Files\Epic Games\UE_[Version]\Engine\Config folder, then open either BaseEditorSettings.ini or BaseEngine.ini.

Add the following line to the .ini file you opened:

Accessibility.Enable=1

Save and close the file. If Unreal Engine is running, you may have to restart it before your changes take effect.

标签