mgba-emu / mgba

mGBA Game Boy Advance Emulator
https://mgba.io/
Mozilla Public License 2.0
5.52k stars 756 forks source link

Accessibility limitations in Settings #3242

Open ahigerd opened 1 month ago

ahigerd commented 1 month ago

Binding controls and shortcuts without using the mouse isn't possible. The tab key can't set the focus on the key selection widgets, and the Enter key in the shortcuts tree closes the dialog instead of focusing the key selection widget like a double-click does.

We can probably bind the space bar to the same action as a double-click in the shortcuts tree.

For the Keyboard and Controllers sections, if the keyboard focus defaults to the Set All button, then setting the ARIA attributes on the various elements on the panel will at least allow screen readers to help with navigation.

endrift commented 1 month ago

How do you set the ARIA attributes on a QLineEdit? I don't see anything obvious.

endrift commented 1 month ago

Okay, I've found https://doc.qt.io/qt-5/accessible-qwidget.html -- I'll look into implementing these.

ahigerd commented 1 month ago

Irritatingly, you can't really do it from Designer. https://doc.qt.io/qt-5/qaccessible.html

endrift commented 1 month ago

The key binding widget isn't implemented in Designer. All the other dialogs are though.