So I'm considering entering, but I'm still investigating technologies to use. Right now, I have it narrowed down to two possibilities that I'm interested in working with, and I'm not sure which to go with. Both are HTML and Javascript browser-based options, but I'd like to hear some feedback on the two approaches to see which would be more viable for blind players.
Here are the two technologies I am considering:
- ARIA-Enabled Live Regions – This would use standard screen-reader capabilities to talk back and forth with the user by emitting content to an ARIA live region interactively. Players would essentially be navigating a keyboard-driven experience; they would select options using tab, arrow keys, or keyboard shortcuts, and it would respond by updating the game state and emitting the new game state and available options to the ARIA live region, which would read them aloud if the user is running a screen reader. This is how Battle Weary works; I would just be iterating on that design to maybe make a framework that would let others make similar blind-accessible games. The down side to this is that the ARIA Live regions and interaction focus are difficult to control if you're doing something other than navigating a web form, and it would require players to learn, memorize, and successfully use keyboard commands to play (although you'd be able to tap "H" to get a refresher of the keyboard commands at any time).
- SpeechRecognition and SpeechSynthesis – This would use browser-based speech recognition and synthesis API's to listen for speech commands and respond with synthesized speech to describe the outcomes. This would not use the screen reader at all, and would instead be using direct browser API's to speak and listen. The upside to this is that it would require very little in the way of interface; you just talk. The down side is that I don't know how this would interact with things like screen readers or whether the blind community would reliably be using browsers that have these API's available; the API's are not universally adopted yet.
Of the two, I'm a little more interested in the latter approach, just because I've already dabbled with the first approach. But if the latter approach is not viable for some reason or the former would get vastly more interest and adoption, I'd of course prefer to go the other way.
So, any thoughts or opinions on which approach would be more blind-friendly for designing web games?