Supporting Screen Readers

Explains how to enable 3rd party screen reader support for your project.


UE4 now supports third party screen readers for Windows or VoiceOver on iOS. This makes it possible ensure your game UI is accessible and helps you comply with CVAA standards. Screen readers, such as NVDA and JAWS, allow a software application’s UI to be narrated to the user. This is a critical feature that enables those who are visually impaired to use and navigate software applications.

As of 4.23, there are now APIs included in UE4 to allow the use of 3rd party screen readers to read UI text. This supports a number of common UMG widgets, such as Text Block, Editable Text Box, Slider, Button, and Checkbox. This built-in functionality removes the need to implement custom text-to-speech technology, making screen readers easier to support.

Enabling Screen Reader Support

To enable screen reader support, go into either your project or Engine Console Variable configuration file. Once in the file, add the variable Accessibility.Enable=1.

Using Accessibility in UMG

To make your UMG widgets accessible with screen readers, go to the Details panel for any of your widgets. You will see a section for Accessibility, where you can set the Accessible Behavior, Can Children Be Accessible, and Accessible Summary Behavior options.

Accessible Behavior is where you indicate how you want the screen reader API to read the widget text. You can choose from the following options:

  • Auto: Automatically reads the assigned text for a widget.

  • Summary: Screen reader concatenates the text of all child widgets.

  • Custom: Screen reader uses custom text pre-coded by developer.

  • Tool Tip: Screen reader only reads Tool Tip Text.

  • Not Accessible: Ignores screen reader API.

The Can Children Be Accessible checkbox indicates whether or not the child widgets inherit the Accessible Behavior settings. If you select Summary in Accessible Behaviors, Accessible Summary Behavior shows you what text will be read when concatenating the text from the parent widget and all subsequent child widgets.


Custom Widget Support (C++)

You can add additional support by creating new C++ classes for their custom Slate widgets. To add specialized support to a new widget, you must override SWidget::CreateAccessibleWidget() and return an instance of a new FSlateAccessibleWidget. You can find an example of this in the file SlateAccessibleWidgets.h under FSlateAccessibleButton. This example shows how screen readers enable users to click the button.

You can compile out the screen reader code from Slate and platform layers when bCompileWithAccessibilitySupport is set to false.

Select Skin

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼