While the current keyboard focus code is impressive and has a lot of work put into it; it misses the mark on accessibility due to being vastly overengineered and behaving way differently from focus elsewhere.
Complaints of note are:
- Keyboard navigation can trigger actions without the usage of space, which should be the only way to trigger actions.
- forceActiveFocus is overutilised; taking control of the keyboard focus away from the user in a lot of instances. This is especially bad for blind users as they cannot reorientate themselves visually when the focus unexpectedly hops to another item without their input.
- Arrow key navigation works almost completely differently from other programs; meaning that users that rely on keyboard focus are going to have to relearn something as fundamental as the behaviour of the mouse is to sighted users exclusively for Kickoff. Additionally, it has some usability problems independent of being inconsistent, e.g. the aforementioned triggering actions without explicit user input to do so happens with arrow keys.
There are other lesser complaints, but these are the most notable ones.
Simply stripping out most of the custom keyboard input code and adjusting some settings so that QtQuick's default behaviour can work as expected resolves all of these accessibility issues with the bonus of massively reducing code and maintenace effort spent reeimplementing a standard input method with different behaviour.
Some select custom behaviour was retained, as it does not present any accessibility issues. Most notably, Ctrl-Tab and type-to-search are retained.