(Accessibility) Text to Speech In-Engine & Captioning

As a Roblox developer, it is currently too hard to create narrations in game and create games more accessible to visually impaired players without the tools and resources to create audios for them.

If Roblox is able to address this issue, it would improve my development experience because it would allow me to add support for narrations to my game.

This would also allow for the support of captioning within games that don’t use text UIs for players with audio impairments, and the API could support the ability to narrate via text to speech, or be handled by the developer.

I propose that Sounds get a Caption property, that defines a caption for when the sound plays. If a player enables captioning in their settings, when the sound plays the caption can be displayed and hidden automatically by CoreGui code. This would also allow for easier integration with Roblox’s localization tools. The localization of the caption could be done automatically.

Additionally, for narration purposes I believe AccessibilityService should be created for that purpose, which could in the future have further APIs for accessibility options such as color blindness, or high contrast modes so developers can create optimal adjustments in their game for people with disabilities.

And lastly, I think an accessibility option for sounds to play as text to speech would be great, and developers could specify which sounds are effected by the option through a property.

Games that can’t easily localize their audios can also use narration to play captions of the audio in other languages too.

71 Likes

Screen reader support is a basic necessity that Roblox should already support. It helps visually impaired or dyslexic people understand dialogue in story-driven games. I believe this should be added to help accessibility for people who have trouble reading.

Ideally, the feature should come as new properties on all GuiObjects, with “Readable” or “AllowScreenReading” acting as a bool to toggle the feature on/off, and an “AltText” string, which is what the screen reader will pick up. The purpose of this string will allow ImageLabels and ImageButtons to be read out, and leaving the string empty for TextLabels and TextButtons will read the “Text” property.

4 Likes