swesterfeld / spectmorph

SpectMorph: spectral audio morphing
http://www.spectmorph.org
GNU Lesser General Public License v2.1
61 stars 5 forks source link

Is it possible to provide screen reader accessibility? #25

Open musicalman opened 1 month ago

musicalman commented 1 month ago

Hello, I just found and started playing around with Spectmorph today, and I think the concept is very neat! I am mostly interested in creating my own presets, and especially instruments. However, I am visually impaired, which makes it challenging to use the plug-in. Specifically, the gui does not work with screen reading programs. I'm on Windows, btw, and cannot test on Mac or Linux.

To elaborate on the issue, screen readers cannot detect any of Spectmorph's gui controls. So far as a screen reader can tell, the gui is just one big foreign object.

From my limited understanding of how screen readers work, this usually happens if a gui doesnt' use standard controls/objects, or doesn't use an accessibility api to tell a screen reader about the window. I know nothing about software development , so I can't really suggest anything helpful. I'm hoping someone else can chime in if need be.

Perhaps it would be possible to modify the existing gui to be screen reader accessible? If not, the only idea I have at the moment is to maybe use Juce? It seems to produce more accessible guis, and is also cross-platform. However I have no idea if it would be practical in this case, since completely redoing the gui is probably not an easy process.

I really hope something can be done. Thank you very much for your time and consideration. Do let me know if you have any questions. I wish you the best of luck with development going forward!

swesterfeld commented 1 month ago

Unfortunately there is no easy solution to this issue. SpectMorph has its own cross platform UI toolkit which took quite some time to implement, just to give you an idea, SpectMorph has ~58000 lines of code total, ~13000 lines of code in the UI code. So adding screen reader support is a big task, regardless of whether it is done directly in the UI toolkit we already have or whether it is done by porting to JUCE - and it doesn't benefit a big share of all SpectMorph users.

So for me I'll rather work on other features at the moment, however if someone else would want to implement it, I'm open to get the code merged.