I have built an accessible synthesiser in Juce for my dissertation; I have tested the functionality and got it to work inside Ableton and in the plugin host without any problems. However, most of my testers are using Repear with OSARA, and nothing is working if I load it as a VST; when I pass focus to an object even though mouse movement nothing is being passed to the screen reader at all. Is there anything that needs to be approached differently for Reaper? I’m mainly just using grab focus to provide a lot of the accessibility?
You shouldn’t have to do anything special for your plugin to be accessible in Reaper. If you are still experiencing issues, please share some more details about the problems you’re having including the OS, the concrete screen reader if on Windows (Narrator, NVDA) and if there are any more specifics that could help us identify the problem.
That said while I’ve been doing some testing I made a few notes that I’m sharing now, which might help us identify potential issues.
As a general rule, an accessible plugin should be controllable using only the keyboard even when screen reader programs are not active. This means that you need to use
setWantsKeyboardFocus (true) wherever appropriate. A recent update on develop allows you to control sliders with the arrow keys, but you need to enable keyboard focus for the sliders for this to take effect. This is particularly important when using NVDA. If you are using Windows Narrator, you can get by without this, because Narrator can manipulate most controls through the UI Accessibility object graph, so you can activate a button even if it can’t receive keyboard focus.
Moving the focus onto the plugin controls
I’ve found that using the tab button in the Reaper FX window skipped the plugin window on both Windows and MacOS. Using Narrator’s scan mode or VoiceOver’s usual movement controls you can still navigate the focus onto the plugin controls.
OSARA does have a binding addressing this specific problem. Once in the FX window, pressing F6 was moving the focus to the plugin window, and then I could use tab to select the plugin controls.