UE4 は、Windows または iOS の VoiceOver 用のサードパーティ製スクリーン リーダーをサポートしています。これにより、ゲームの UI にアクセスできるようになり、CVAA の標準に準拠できるようになります。 NVDA や JAWS などのスクリーン リーダーを使用すると、ソフトウェア アプリケーションの UI をユーザーにナレーションできます。これは、視覚に障がいを持った方がソフトウェア アプリケーションを使用および操作できるようにする重要な機能です。
4.23 では、サードパーティ製スクリーン リーダーを使用して UI テキストを読み取るための API が、UE4 に組み込まれています。テキスト ブロック、編集可能なテキスト ボックス、スライダー、ボタン、チェックボックスなどの一般的な UMG ウィジェットがサポートされています。 このビルトイン機能により、カスタムのテキスト読み上げテクノロジーを実装する必要がなくなり、スクリーン リーダーのサポートが容易になります。
スクリーン リーダー サポートを有効にする
スクリーン リーダー サポートを有効にするには、プロジェクトまたは エンジン コンソール変数 の設定ファイルを開きます。ファイルに、変数 Accessibility.Enable=1
を追加します。
UMG でアクセシビリティを使用する
スクリーン リーダーで UMG ウィジェットにアクセスできるようにするには、任意のウィジェットの [Details (詳細)] パネルに移動します。 [Accessibility] セクションでは、[Accessible Behavior]、[Can Children Be Accessible]、および [Accessible Summary Behavior] オプションを設定できます。
[Can Children Be Accessible] チェックボックスは、子ウィジェットが Accessible Behavior 設定を継承するかどうかを表示します。
[Accessible Behavior] では、スクリーン リーダー API がウィジェット テキストを読み取る方法を指定します。次のオプションから選択できます。
- Auto:ウィジェットに割り当てられたテキストを自動的に読み取ります。
- Summary: スクリーン リーダーはすべての子ウィジェットのテキストを連結します。
- Custom:スクリーン リーダーは、デベロッパーが事前にコーディングしたカスタム テキストを使用します。
- Tool Tip:スクリーン リーダーは、ツールチップ テキスト のみ読み取ります。
- Not Accessible: スクリーン リーダー API を無視します。
[Accessible Behaviors] で [Summary] を選択すると、[Accessible Summary Behavior]** によって、親ウィジェットとそれ以降のすべての子ウィジェットのテキストを連結した場合に読み取られるテキストが表示されます。

カスタム ウィジェット サポート (C++)
カスタム Slate ウィジェット用に新しい C++ クラスを作成することで、サポートを追加できます。新しいウィジェットに特殊なサポートを追加するには、SWidget::CreateAccessibleWidget()
をオーバーライドし、新しい FSlateAccessibleWidget
のインスタンスを返す必要があります。この例は、「FSlateAccessibleButton」 の下の「SlateAccessibleWidgets.h」ファイルにあります。この例では、スクリーン リーダーを使用してユーザーがボタンをクリックできるようにする方法を示します。
bCompileWithAccessibilitySupport
が false に設定されている場合は、Slate およびプラットフォーム レイヤーからスクリーン リーダー コードをコンパイルできます。