- Introduced IScreenReaderNavigationPolicy. This is an interface class that helps the screen reader navigate to the appropriate target accessible widget.
- Introduced FScreenReaderDefaultNavigationPolicy. This is a policy that all FScreenReaderUsers have by default. It helps the screen reader user find target accessible widgets that are enabled and can be focused on.
- Introduced focus navigation functions to FScreenReaderUser. This is the means clients can control and shift accessible focus for FScreenReaderUsers.
- IAccessibleWidget can now retrieve the logical next and previous widget in the accessible widget hierarchy. This functionality is similar to that of mobile screen readers like Voiceover and Android Talkback which allow users to navigate around the UI hierarchy with left and right swipes.
- IAccessibleWidget can now search for a target widget from a source widget based on a search criteria. This is useful for searching for widgets by characteristics (such as enabled state, widget type etc).
- Fixed a small bug in accessible focus where an accessible widget with application focus cannot receive accessible focus again and have its contents announced to the end user.
#rb: Prajwal.Manjunath
#jira: UE-130926
#preflight: 61baf981440d71c977b3089a
[CL 18477319 by Leon Huang in ue5-main branch]
- Slate screen reader no longer subscribes to focus change events from Slate application and instead processes focus change accessible events from FGenericAccessibleMessageHandler to
provide the same behavior.
- FScreenReaderBase is now abstract and derived classes must implement OnAccessibleEventRaised to handle accessible events from FGenericAccessibleMessageHandler
- FScreenReaderBase no longer keeps track of all of the registered screen reader users and instead delegates that to the FGenericAccessibleUserRegistry.
- FScreenReaderUser no longer keeps track of all the focus data and instead delegates that to FGenericAccessibleUser
- When the Slate screen reader is constructed, all accessible users will be unregistered. This forces all users to re-register users through the screen reader framework.
-All screen reader user registration of users is forwarded to FGenericAccessibleUserRegistry
#preflight 61b3058f180f781e431b701d
#rb: none
[CL 18431845 by Leon Huang in ue5-main branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
functionality for Slate where focused widgets are announced to the user when the screen reader is active.
The screen reader plugin sets up the screen reading framework and the Slate screen reader plugin provides concrete implementations of provided interfaces and base classes.
#jira: UETOOL-1493
#rb: patrick.boutot
#ROBOMERGE-SOURCE: CL 16600597 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16600600 by leon huang in ue5-release-engine-test branch]