UI Accessibility Plugin  Version 1.0.2
Make your UI accessible for visually impaired users
Examples

UAP ships with a Navigation Example scene (for uGUI and NGUI) and a complete playable accessible Match 3 sample game.

Note: If you want to release your app or have no more need for the examples, it is safe to remove the entire Examples folder without affecting the plugin's functionality.

Match 3 Game

The Examples folder contains a complete accessible Match 3 game which demonstrates the use of the plugin.
The UI used in the Match 3 game example was created by Vasili Tkach. It is available for free here: Funtique UI by Vasili Tkach

Extra Feedback for Blind Players

To make the gameplay more streamlined for blind players, who cannot see the entire board, the remaining moves and the goal listing, the demo project adds a few helpful usability features.

  • The game reads out the level goals at the beginning of the game
  • When gems are combined that are needed to complete the level goals, the app will read out how many gems of the same color are still needed.
  • When the player taps the screen once with two fingers, the levels goals and the remaining moves are read out.
  • When the player performs the Magic Tap, the game is paused or unpaused
  • The game repeats these special gestures at the beginning of each game after the level goals (so that they can be skipped)

Navigation on the Play Grid

Usually, all screen elements are navigated with left and right swipes, one by one.
This one-dimensional navigation doesn't make sense for a game that is based on a two dimensional grid.
In a Match 3 game, gems can be swapped with their direct neighbors in all directions. So it makes sense to let blind players explore the play area in two dimensions, too.

2D Navigation

The navigation type can be set individually for each UI Group.
To make a group use 2D navigation instead of the regular left and right grid, enable the checkbox 2D Navigation in the Navigation section in the group's properties.
When this is enabled, swiping up and down will not jump to the next group, but to the UI element below the current one. On Windows, the navigation is done with the left, right, up and down arrows.

Constrain Navigation

When the bottom of the play grid is reached, and the user swipe right or down again, the plugin would jump to the next UI Group.
This could be irritating because a blind player doesn't know when the border is reach and will accidentally leave the play grid.
Instead you can constrain the navigation to stick to the group in each direction. When this is enabled, a sound effect will play when the user has reached the borders of the grid and navigation will stop.
Note that with this the only way for the player to leave the UI group is by using Touch Explore to find the other elements on the screen.
If you constrain the navigation make sure to offer other options for the users to leave your game again, such as a Magic Gesture.

Blocking Input During Animations

Whenever gems are destroyed, the game plays an animation and updates the level goals.
To avoid clashing with input from the player during this time, the game asks the plugin to temporarily suspend accepting input. Once all animations have finished, the suspension is lifted and the game can continue.
You can block input temporarily using UAP_AccessibilityManager::BlockInput().
This function will suspend input, but will not disable accessibility altogether, meaning features like Text-To-Speech will still work.