Closed baconpaul closed 2 years ago
(moved)
This will probably be long but I figured I'll write my thoughts down before I forget something. ☺️ Here's some more thoughts after using Surge more as well as some Twitter conversations (reception of XT 1.0 has been very positive so far!)
Regarding Step Sequencer, I think I like the triggers being next to the steps in a way because it's easier to set them up in the moment as you program a sequence. However, if you go with the screen reader cursor they show up before the steps. I think we should get feedback from more people which workflow they prefer and then make the 2 match.
For patch browser, type ahead and also the category auto complete when saving the patch, the main issue is the list items don't speak their text. They can be navigated to and arrowed through, but all screen readers say is "row 1, row 2..." and so on.
Specifically for the patch browser, while you can arrow through the category tree and patch list, you can't load a patch either by pressing enter or doing a press action with a screen reader, both should probably work.
Regarding CTRL+Tabbing through groups, in the previous issue we also discussed having dedicated hotkeys to jump to specific groups (I think we settled on CTRL+Shift+Letters as good candidates), I think both features are worth doing.
I was also thinking it might be useful to speak some announcements for some actions as a result from hotkeys being pressed. The main one being telling you when a patch was added or removed from favorites when you hit Alt+F because I got confused a few times when going through all the patches and batch marking as favorites. Speaking the patch name when you switch with Right/Left might also be useful.
Pressing space/enter should cycle the state of toggles and press buttons (like the oscillator type), this is for consistency with how these controls work in the OS. Some buttons actually already respond to enter (like the Close button in the modulation list or the OK and Cancel buttons in alerts.
A few points in menus:
All super useful.
Some things (like intersperse triggers) is easy. Other things may be harder.
I'm glad it is usable in 1.0 and am super excited to hone it for 1.1 :)
Oh also where on twitter does the convo happen out of curiosity?
(moved)
Accessibility bug with screen readers and type-in fields, editing is difficult because the announced character is always off by one, so you end up deleting the wrong character or inserting something in the wrong place.
From discord user bcross (windows, nvda)
Just did some more experimenting on this:
This effects both deleting and cursor movement. If you go to the beginning of a line, then press the right arrow you should hear the screen reader speak the second character, but it repeats the first instead.
I also found a second issue on Windows though this one only seems to effect NVDA, if you make a selection by holding down shift and moving through the text, NVDA always repeats the entire selection, rather than saying just the part that was selected/unselected.
OK I'll report this over on the juce forums and see if there's a fix we can get put in place from the team (or if the fix is there; i'm a few points behind still and plan to pull to 6.1.5 in this cycle).
Just noticed another thing, there's currently no way to accessibly edit the "adaptive" shape of the alias oscillator. Manual mentions there should be an Edit button when it's selected, but I don't see one with VO. ✔️
oh yeah that's not exposed! Good catch.
From discord
Re the oscillator type not being spoken when you arrow to change it, perhaps if you change its reported control type from a button to a combo box the screen readers would pick up on the value changing. You generally can't arrow up and down on buttons to modify something so maybe they're not even monitoring them for event changes.
If I apply this diff
case tag_settingsmenu:
{
auto h = frame->getAccessibilityHandler();
if (h)
{
std::cout << "GOT HAND" << std::endl;
h->postAnnouncement("Ouch you poked me",
juce::AccessibilityHandler::AnnouncementPriority::high);
}
else
{
juce::Point<int> menuPoint;
useDevMenu = false;
showSettingsMenu(menuPoint, control);
}
}
then clicking the menu button with the mac screen reader no longer pops up the main menu but instead says "Ouch you poked me" which is of course not useful but implies that there's a useful thing to be done And now I can solve a lot of problems. I make a std::string member of SGE called "announceNextIdle" and voila
@pitermach says:
If it works for this it might be a good way to make the type ahead speak while you're typing as well. So like you stop typing for a moment and it could say something like "3 results, init saw" so that'd tell you what patch would load to press enter but also that you have other results to look at That's more or less how auto complete type things are made accessible usually from a design point of view at least
Just remembering this diff
void MenuCenteredBoldLabel::addToMenu(juce::PopupMenu &m, const std::string label)
{
- m.addCustomItem(-1, std::make_unique<MenuCenteredBoldLabel>(label));
+ m.addCustomItem(-1, std::make_unique<MenuCenteredBoldLabel>(label), nullptr, label);
}
Just realized that the on-screen Macro controls aren't exposed as sliders. If you focus one of them in the modulators section and press up/down they adjust, but you have no way to see their value. While up/down work, home/end/delete don't.
I just saw the keyboard shortcut editor mentioned in the nightly changes and took a look at it. Here's a couple of things I noticed:
Either way this is a really handy feature and the fact this list speaks more makes me happy in terms of things like the patch browser down the road. ☺️
Yes sorry I mentioned on discord thst I merged this half done before a mini vacation. While I could tab through it I haven’t done accessibility revie (or keybind reset) yet both of which are needed before #5912 is closed
Ah right, I've been a bit busy and didn't look at the Discord in a while and missed that part, sorry. Hope you enjoyed your vacation
No worries! Just making sure you knew I agreed it wasn’t done :)
Just found another small bug. THe radio button for the active FX slot isn't reported as "selected". All slots are always reported as not checked.
With the windows workaround for speaking and the full resolution moved to #6408 I'm going to close this.
1.1 Beta Problems
Outside of 1.1 most likely