GSoC 2017: Accessibility - Week 3
This week I worked on palette navigation. I have implemented most of the functionality, but the design has not been finalized yet, so there could be changes. Feedback on the design is welcome.
Fixed the selection of next palette element so that there is no delay:
The delay was because the palette was not getting updated after the selection. Calling the function update() solved this problem.
Completed selection of previous palette element
Added a shortcut command to shift focus to the palette search box
Added a shortcut command to select the first search result
Added a shortcut command to apply the selected palette element
Previously, I had used Palette::keyPressEvent to implement applying a palette element and selection of next/previous palette element. I reimplemented these commands in a different way by adding an action in shortcut.cpp. These commands don't require the focus to be on the palette box while the previous implementation did. Currently, focus remains on the palette search box while navigating through the palette.
These commands currently work when the palette search filter is active. They could be modified to work even when the search filter is not active.
Key tasks that stalled
- Shifting focus to the palette search box:
The search box wasn't getting focus though I had used setFocus(). This was because endCmd() was being called, as a result of which the focus shifted to the score.
Tasks for the upcoming week
The basic functionality has been completed, however the design has not been finalized yet. Some issues are the handling of keyboard focus and the highlighting of palette cells. Currently, while navigating the palette, the focus remains on the palette search box. The currently selected palette cell is highlighted. After applying the palette element, the cell stays highlighted. On moving the mouse over the palette, the current palette selection is lost, and the highlighting disappears. This shouldn't happen when the shortcut commands are being used to navigate the palette.
These are the tasks that I plan to work on next week:
Finalize the design of the palette navigation:
This would include managing keyboard focus and highlighting of palette cells. I will work on the design, and get feedback.
Disable the highlighting of cells on moving the mouse when the keyboard is being used for palette navigation