I'd like to propose creating a complete accessibility package for Unity that would make developing games that are more friendly for people with special needs.
Some of the things I mention below are more in the “best practices” category and it would be a bit challenging to make them into “tools”. For those issues a clear and simple checklist might be already very helpful. Others, like game speed control, or text2speech for example and most of the image processing and an accessibility mode at run time, could be included in the Accessibility Unity Package as proper tools.
There are various things important from the point of view of accessibility in games:
- Ability to remap controls
- Control over camera/controls sensitivity
- Ability to control the game with one hand - only keyboard/mouse or just one hand for a touchscreen device
- If possible allowing for UI customization - increasing button size, relocate different elements on the screen
- Sometimes even an ability to skip some difficult part of the game is a huge help for disabled players and allows them to enjoy the rest of the game.
- Ability to slow down the game.
- Separate volume controls/mute option for different sound sources - music, sfx, speech etc.
- Custom “accessibility” mode should be saved as preset
In terms of visual and audio aspects of games:
- Being able to increase contrast, or for example replace texture sets to a very strong intensity and color contrast with blocks of color rather than relying on small visual details
- Including options for drastically changing the game’s appearance - edge detection, b&w version with a variable threshold. This might be very important for players who are visually impaired.
- Adding optional visual “highlights” along with audio cues for important and interactive game objects
- Color blind “preview” - ability to preview the game as players with different types of color blindness would see it - for example to check if the UI is still readable and clear
- Other visual disability previews - blurring, reducing contrast etc. in the same manner as with color blindness, create best-as-possible visualization of a game.
- All “preview modes” should be accessible from the editor window and development build. Another option would be to create an external tool that could process a video
- Text2Speech tools that work for all parts of the game - GUI, chat, dialog options etc.
- Subtitles for any important speech elements
- Ability to change font color and if possible font size
- Ability to recreate all visual cues and elements with audio and vice versa - recreating important sounds with visual cues. Haptic cues work also as a substitute for visuals and sound.
Just as Unity provides sample projects for 3D, or 2D workflow, animation or render pipeline, I hope that an accessibility package/sample project could be created. If you would be interested in this project I'm absolutely certain that it would have a tremendous impact for many people.