Inconsistent and illogical Accessibility behaviour

In a plugin (VST3, but AU same) on MacOS, using VoiceOver, I’m seeing a little weirdness with the top ”container” where I wonder if this is a bug or should work better.

I compiled a BasicPlugin project, with a single TextButton.

  1. When you activate VoiceOver (VO) with the plugin window in the front, it focuses on the close button, and says all the expected feedback:

  1. Move right (ctrl+opt+right arrow) and VO says “You are currently on a button etc.”, and then “minimize, button” (as expected):

  1. move right and it selects the entire content area, but says/does NOTHING. It beeps, but nothing else. It leaves the last state displayed:

If you have selected a container, shouldn’t it tell you something? Debugging has shown that this container here is actually the JuceVST3Editor::ContentWrapperComponent.

  1. Descending down into this group (ctrl+opt+shit+down arrow) selects the button and says “In BasicPlugin, group, Button, button” - so here, apparently the container provides the plugin’s name.

  1. But, ascending up out of the container (ctrl+opt+shift+up arrow) says “Out of “ with no identifier at all:

  1. Move left goes to the minimize button, move left goes to the close button, move right goes back to the minimize button (all providing expected feedback), move right again selects the content (JuceVST3Editor::ContentWrapperComponent), but beeps and says/displays nothing.

This kind of illogical behavior drives me nuts, maybe I shouldn’t care about it.

But I would suggest that if the ContentComponetWrapper is going to be an accessible/navigable group, that it consistently tells you that it is a group and provides a useful name when you go into and out of it.

Why is the JuceVST3Editor::ContentWrapperComponent even seen by the screenreader?
Why does it report “Out of “ <blank> when leaving the container?
Why does it say/do absolutely nothing (except beep) when moving to the content with ctrl+opt+right arrow? If you were completely blind, that would seem confusing to me…

Thank you for reporting. A fix has been released on develop

1 Like