jcsteh / osara

OSARA: Open Source Accessibility for the REAPER Application
GNU General Public License v2.0
129 stars 46 forks source link

Keyboard inconsistencies in transient sensitivity dialog #846

Open ScottChesworth opened 1 year ago

ScottChesworth commented 1 year ago

Noticed some keyboard inconsistencies when working with the transient sensitivity dialog in Windows. Try these steps:

  1. Hit Control+Alt+Shift+T to run the "Transient detection sensitivity/threshold: Adjust" action (ID 41208). OSARA does some magic to make the tab order navigable, adjusting the transient sensitivity with Alt+Shift+Page keys works, but adjusting the transient Threshold with Control+Alt+Page keys doesn't.
  2. Now try accessing the dialog by selecting an audio item, hitting D for dynamic split, Shift+Tab to the "Set transient sensitivity" button. This time, the tab order isn't navigable, but adjusting transient sensitivity and threshold both work.

Any ideas on how this could be tightened up?

jcsteh commented 1 year ago

adjusting the transient sensitivity with Alt+Shift+Page keys works, but adjusting the transient Threshold with Control+Alt+Page keys doesn't.

If you're in that dialog, though, wouldn't you be using the arrow/page keys like you would on a normal slider? If you wanted to use control+alt/alt+shift+page keys, wouldn't you just do that without opening the dialog?

The magic OSARA does here is to allow tab, arrow and page keys to pass through to the dialog instead of to the main section as REAPER does by default. I guess we could exclude control and alt modified keys, but this is going to start to get messy if we start adding more exceptions.

2. Now try accessing the dialog by selecting an audio item, hitting D for dynamic split, Shift+Tab to the "Set transient sensitivity" button. This time, the tab order isn't navigable

OSARA has no way of knowing that the dialog has opened in this case, since it's not triggered by an action. Nothing we can do about that unfortunately, especially not if we want it to be cross-platform.

ScottChesworth commented 1 year ago

OSARA has no way of knowing that the dialog has opened in this case, since it's not triggered by an action. Nothing we can do about that unfortunately, especially not if we want it to be cross-platform.

So would the cleanest fix for this be that Cockos replicate whatever you've done to provide a tab order, then OSARA revokes your hack and bumps the minimum supported version once that's been out for a while?

jcsteh commented 1 year ago

My understanding is that Cockos don't want to change this because sighted users still want to be able to execute other actions (e.g. tab to transient) while that dialog is open.

ScottChesworth commented 1 year ago

Gotcha, that's a sticky wicket. Not a huge deal though really, we can get everything done we need to in a slightly roundabout way, other than knowing how many splits we'll get ahead of time in Windows.