musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.33k stars 2.66k forks source link

[Accessibility] Plugin dialogs are inaccessible in MS4 #17474

Open hhpmusic opened 1 year ago

hhpmusic commented 1 year ago

Issue type

UI bug

Bug description

Keyboard navigation and screen reader accessibility doesn't work in dialogs spawned by plugins.

Steps to reproduce

  1. Enable any plugin with a dialog (e.g. the built-in plugin "Configure Courtesy Accidentals").
  2. Open or create a score (some plugins only work when a score is open).
  3. Go to Plugins > Composing/arranging tools > Configure Courtesy Accidentals.

The plugin dialog will appear but it is not navigable by keyboard or accessible to screen readers.

Screenshots/Screen recordings


MuseScore Version

4.0.2

Regression

Yes, this used to work in MuseScore 3.x and now is broken

Operating system

Windows

Additional context

At past in Musescore 3, as long as a plugin has a dialog, we blind can work in it. But in Musescore 4, it doesn't work at all. Just tried, I can enable and disable plugins in the management panel, but all plugins can't be operated using screen reader. When activating a plugin, Musescore will pop up a window where I can do nothing. Our braille music team is trying to make a plugin to send the Musescore file to braille translation module server to get a perfect braille file, but it seems we can't go any farther at this time.

shoogle commented 1 year ago

It seems it's not possible to focus the dialog at all via the keyboard. It should gain focus automatically as soon as it appears.

Even if you cheat and click inside the dialog with the mouse, keyboard navigation within the dialog is still not possible.

Anything would be better than nothing here, even if it's just normal Qt Quick accessibility within the plugin dialog rather than our new custom accessibility.

hhpmusic commented 1 year ago

So is it because of QT or your accessibility implementation? If it's because of QT, is v6 better than v5?

Haipeng

On 5/10/23, Peter Jonas @.***> wrote:

It seems it's not possible to focus the dialog at all via the keyboard. It should gain focus automatically as soon as it appears.

Even if you cheat and click inside the dialog with the mouse, keyboard navigation within the dialog is still not possible.

Anything would be better than nothing here, even if it's just normal Qt Quick accessibility within the plugin dialog rather than our new custom accessibility.

-- Reply to this email directly or view it on GitHub: https://github.com/musescore/MuseScore/issues/17474#issuecomment-1541200910 You are receiving this because you authored the thread.

Message ID: @.***>

-- Hu Haipeng Blind musician and braille music transcriber of China The BrailleOrch and Open Braille Music Projects http://www.brailleorch.org

shoogle commented 1 year ago

@hhpmusic, my guess is it's because we disabled normal Qt QML accessibility in order to create our custom accessibility, but we haven't enabled our custom accessibility on plugins. So I think we need to enable one of those two things on plugins: QML accessibility or our own accessibility. But that's just a guess and could be completely wrong.

We've been investigating Qt 6 for a while and determined we're not ready to upgrade yet. There's still too many bugs / missing features at this stage. It wouldn't help with this issue anyway.

XiaoMigros commented 1 year ago

Would your own accessibility not work yet? Perhaps unrelated but importing UI theme and components works fine

hhpmusic commented 1 year ago

No, we all feel not accessible, Shoogle said already.

wizofaus commented 7 months ago

Can put my hand up for this one...

cbjeukendrup commented 7 months ago

Perhaps that should be coordinated with @igorkorsukov as he is currently making large changes involving the Plugin API, and moving things around including the Accessibility module.

igorkorsukov commented 7 months ago

Movements completed... If we use our UI components, the technical accessibility features should work... But we'll probably need documentation on how to configure them.