reaper-oss / sws

The SWS extension is a collection of features that seamlessly integrate into REAPER, the Digital Audio Workstation (DAW) software by Cockos, Inc
https://www.sws-extension.org/
MIT License
448 stars 85 forks source link

Region playlist does not work with VoiceOver accessibility on MacOS #1404

Open mcclure opened 4 years ago

mcclure commented 4 years ago

A sightless REAPER user on Reddit is reporting the Region Playlist pane in Reaper SWS does not work with the MacOS "VoiceOver" feature. He says VoiceOver works fine with the rest of REAPER and SWS. It sounds like this is blocking work for him.

https://www.reddit.com/r/synthesizers/comments/ikwe10/completely_off_topic_but_im_desperate_looking_for/

Can someone look at this? I found an SnM_RegionPlaylist.cpp in the source and it seems simple but without knowing how this "WDL" you are using handles accessibility it wasn't clear to me what needs to be fixed (I have a REAPER evaluation version but don't know how to use it…)

soundwarrior20 commented 4 years ago

Hello, I am the user who posted about this on reddit. I now have more information about what I think needs to be done to improve accessibility of the region playlist. , please see the below forum thread for this information I really hope somebody can help with this:
https://forum.cockos.com/showthread.php?t=241888

nofishonfriday commented 4 years ago

Hi @soundwarrior20, just to let you know, I'm looking into this issue and let you know when there are news (though I can't promise anything :)) . Please note that I'm doing this in my spare time so progress will probably be rather slow.. If you find a professional developer meanwhile who is up for hiring that's fine with me also of course. :)

mespotine commented 4 years ago

Could this be an option or way for a Text2Speech-function, which we could use in Lua-scripts?

soundwarrior20 commented 4 years ago

@ mespotine there is a way to do this,look in the osara API look for the function osara_ _output message if its there you can simply give it a string to speek. this is what i've been told. also you can also look in to the speek function accessichords: https://github.com/Timtam/AccessiChords by @Timtam hope this helps :) @nofishonfriday your work is much appreciated thank you very much :)

nofishonfriday commented 4 years ago

@soundwarrior20, @ScottChesworth I'm currently thinking about a suitable implementation for the new actions. 'Add all regions' is quite straightforward (actually I've already written some code for it), but how about e.g. setting name and loop count? The Region playlist lists the added regions in a 'spreadsheet like' manner where each line represents a region with the aforementioned attributes. The lines (aka regions) can be selected. (Once any region is selected, which currently works via mouse only afaik, the selection can be changed via cursor up/down keys.) My question is now: Would it make sense to base the actions on the currently selected region (e.g. 'Set loop count of currently selected region')? Can be determined via screen reader which region is currently selected or do we need to find another way for the implementation? If so, any suggestions? :)

soundwarrior20 commented 4 years ago

hi @nofishonfriday this is great news I believe that voice-over can already select different regions from the list by just moving the up and down arrow keys in the table. i bealive that Making Actions based on the currently selected region is The right way to go, this being said Ccurrently when i up and down arrow to the regions in the table I have to virtual mouse click on the different options for example name and Luke count To get to the point where I can edit them this is the problem. I believe that basing actions on currently selected regions would solve this But I don't think I can be totally sure of this until I baiter test whatever you make. Hope this helps respect and blessings trey.

nofishonfriday commented 4 years ago

@soundwarrior20, @ScottChesworth

I have a first test version ready. This adds the following: new actions:

new functionality:

The test version can be found here: https://www.dropbox.com/s/mdt3bkirgcq4u3d/reaper_sws-x86_64.dylib?dl=1

Note: This is not the full installer you get when downloading the official SWS version, it's just the reaper_sws-x86_64.dylib file. To install: Open Reaper, run action 'Show REAPER resource path in finder' and move the file in the UserPlugins subfolder, overwriting the existing one. Restart Reaper. To check if the install has gone correctly you can filter the action list for the newly added actions.

Let me know how it goes. :)

@ScottChesworth If you would like to test, too are you on Mac or Windows?

soundwarrior20 commented 4 years ago

Hi @nofishonfriday thanks very much for this :-) I will test it tomorrow :-) Will this test install over right SWS completely? And will you add actions for Loop count length position start and end if this test is successful? Thanks very much again for your help :-)

nofishonfriday commented 4 years ago

Will this test install over right SWS completely?

The version I sent you is the current (official) SWS version + the new actions added. Yes, it's meant to overwrite your current SWS version completely (because Reaper can't recognize several SWS versions at once) but you won't loose any functionality when installing it.

And will you add actions for Loop count length position start and end if this test is successful?

I plan to add Loop count, yes. But Start, Length and End are read-only values (taken from the regions in Reaper), meaning currently these values cannot be edited in the Region playlist even with the mouse. Making them editable would maybe be too much work I think. But you can edit these values via Reaper's region manager (Action list > View: Show region/marker manager window),, after you've edited the regions there the values will update in the Region playlist. Would this be a suitable alternative you think?

soundwarrior20 commented 4 years ago

@soundwarrior20 Ooos, I've meant to make a new reply to your post but I've accidently edited your original one instead, sorry about that! You find my reply below.

@nofishonfriday hi thanks for your reply, am I correct in thinking that the length value is also not editable? The alternative you suggested is probably accessible I’ll have to check. It would be really cool if you could make those values editable from the region playlist manager but if you can’t don’t worry. Would you be able to create an action to bring up the add regions contextmenu? Currently it can only be brought up with a mouse click. Thanks again for your help

nofishonfriday commented 4 years ago

Am I correct in thinking that the length value is also not editable?

Correct.

The alternative you suggested is probably accessible I’ll have to check. It would be really cool if you could make those values editable from the region playlist manager but if you can’t don’t worry.

The region manager is a native Reaper feature (not a SWS feature) so if there are accessibilty issues it could be directed to Cockos directly (via the Reaper forum) and Justin (the Reaper developer) seems pretty responsive what concerns accessibility issues from what I've seen. :)

Would you be able to create an action to bring up the add regions contextmenu? Currently it can only be brought up with a mouse click. Thanks again for your help :-)

I think this should be doable. But I'd first like to wait for feedback from you for the current new actions than it's easier to decide how to proceed.

nofishonfriday commented 3 years ago

@soundwarrior20 (replying to https://github.com/jcsteh/osara/issues/299#issuecomment-730014762): Thanks for testing, I'm happy to hear it works. I'll continue working on it for the other changes and get back to you when ready.

soundwarrior20 commented 3 years ago

Hi everyone sorry I've been away for so long. A big thank you to all the contributors who contributed to this last year. Sorry I'm only just now getting round to testing the bill. I am able to access the main menu to create a new region playlist by clicking the mouse. I am able to add regions to the table also by clicking the mouse so far. When I add regions to the table it tells me the start length and how many loops, I can edit the number of loops but I cannot adjust any of the other parameters with numbers or re-order any of the regions. What am I doing wrong? Thank you very much for your help everyone.