Using text-to-speech for accessibility

I’m trying to make my plugin a bit more accessible for the visually impaired. As JUCE components aren’t visible to OS accessibility systems, I’m trying to build a simple system of my own. The idea is that a key command brings up a text box, a bit like Spotlight on the mac. As the user types, suggestions are given to explain what combinations of commands are available. I’m using some manual checking for common word alternatives and orderings so you don’t have to be precise. It’s working nicely; in fact I’m finding it highly convenient myself (I am not visually impaired). For example, you can type “lfo1 mod filter 0.3 bipolar” or “cutoff lfo1 remove” and it does what you’d expect.

I’d like to add a key command to speak the suggestions out loud. On the Mac, I’ve found I can call system ("say \"" + myString + "\"");, but there are some problems; it halts my program whilst it’s talking and you can’t interrupt it if the user wants to check another suggestion. I could place the system commands in another thread to stop the blocking, but that doesn’t fix the second problem. Does anyone have a better way to do this that I’m missing?

Also, does anyone know if equivalent commands are available on Windows and what they are?

2 Likes