[BR] Windows Accessibility: JUCE apps can't be navigated if opened while screen reader active

We’re seeing on Windows that our app can’t be navigated using any screen reader if it’s opened while the screen reader is active. The window is focused, but no element within the window can be navigated to.

I’m also seeing this behavior with the Demo Runner built with JUCE 7. To reproduce:

  • Start Narrator or NVDA on Windows
  • Launch the Demo Runner from File Explorer

Expected behavior: pressing tab navigates through items in the app.
Actual behavior: the window is focused, but pressing tab does nothing.

Interestingly, I can’t reproduce this with the Projucer.

I’m pretty sure this is a JUCE bug and not an app-specific bug as, using the global keyboard focus mechanism and printing out the title of the component that has focus, our app does say the correct item has keyboard focus. On occasion, when the app launches you can see the focus ring on the correct item for a split second before it quickly changes to the window where it gets stuck.

Also, if you launch the app before activating the screen reader, you can get the expected behavior of being able to navigate items, but only after clicking within the window with the mouse.

Slight different behavior between Narrator and NVDA actually - with NVDA, where you’d expect to use tab to navigate to the next item, it’s impossible to get to anything other than the window making the app completely unusable. With Narrator, the window is still initially focused but the items can be navigated using the Narrator key and the arrow keys - although it always starts with the items on the title bar which isn’t ideal.

JAWS seems to behave the same as NVDA.