Listbox accessibility doesn't work on Windows

Doesn’t read the name of the row and gives incorrect number of items in the list. Works just fine on macOS.

I’m having a hard time tracking down when this broke. It’s stopped working multiple times so git bisect isn’t working.

Demo project to reproduce:

I can confirm this, seems to be the case even in latest JUCE still.

I’ve been trying to make AudioDeviceSelectorComponent accessible so that the Audio/MIDI Settings dialog in standalone wrapper is actually properly accessible, but indeed selecting rows with arrow keys or changing the selection with Enter in audio input/output/MIDI input listboxes is completely invisible to Narrator, JAWS or NVDA…

I checked with Accessibility Insights and absolutely no events are being recorded when keyboarding inside a ListBox. So something is really really wrong and has been wrong for a long time now…

I confirmed that the AudioDeviceSelectorComponent in the standalone wrapper was not properly accessible.

The reason for this was that the component was opened as a modal window, and the PopupMenu couldn’t grab the accessibility focus when spawned from a modal window.

We released a fix to address this issue

1 Like

Note that setTitle ("Pop-up"); only impacts English language software: if someone were to expect anything else, this wouldn’t work.

I recommend flagging this in the documentation, that users should override this for their own purposes. But at the very least JUCE should apply TRANS() here.

Thank you, that’s a fair point. This has now been addressed

1 Like

Thanks!

But this still doesn’t change the fact that ListBox entries are not being read out on Windows as you attempt to navigate through it with Narrator, JAWS or NVDA, right?

EDIT: Yeah… correct. Audio in/out and MIDI in listboxes still don’t read out for the accessible user. This is pretty important, I would say - how would the accessible user know which MIDI input they are attempting to enable or disable, for example? This experience is quite broken as it stands…

Any comments to the above, please? :sweat_smile:

This of course doesn’t affect just the Audio/MIDI settings dialog, it affects any JUCE GUI which uses ListBoxes… And on Windows only. For example, this issue report for Surge XT basically boils down to the exact same problem: Patch search accessibility · Issue #6408 · surge-synthesizer/surge · GitHub

We will address this issue.

1 Like

We have released a number of commits on develop addressing the accessibility shortcomings of the AudioDeviceSelectorComponent.

To be clear, neither these fixes nor the previous ones in the forum thread are related to issue reported in the initial post of the thread. I believe that issue was fixed a long time ago. I also don’t think any of these are related to the issue discussed on the surge Github.

That said, thank you for reporting that the AudioDeviceSelectorComponent is not properly accessible. With this series of commits we have addressed all issues that we could discover.