GSoC 2021 - Week-1: Improving Accessibility For the Visually Impaired

Posted 4 months ago

This is the first week of Google Summer of Code’s Coding Period, and the second blog post about my Project “Improving Accessibility for the Visually Impaired”

I spent most of this week tinkering with MuseScore’s codebase and figuring out how it handles themes in general. I was able to find the appropriate files and make a few changes according to the design given to me by my mentors (Peter Jonas and Martin Keary).

Previous Settings:


New Settings:

I first started by plugging in the new High-Contrast Theme colours provided to me. That was a mostly straightforward task.

The next step was to follow the design and put these new themes in a brand new “Accessibility” tab, which is a sub-page of the Appearance tab. This means that all the “general” themes would stay where they are, and all the things related to accessibility (themes, colours, score colour inversion) had to find a new home.

Untitled2.png Untitled1.png Untitled3.png

This is what I've been able to achieve in the first week.
I tried to focus on the UI elements first, following a top-to-bottom approach. This allows me to maintain perspective, and to know exactly what the user sees, and what needs to be done behind the scenes.

Changes Made:

● Appearance Tab has a new child page named "Accessibility".
● The Appearance tab now only shows General Themes.
● High Contrast Themes now moved to the new Accessibility Tab.
● Accessibility Tab also displays colours of various current properties (Accent Colour/Font Colour etc.) and allows the user to select a colour from the entire colour spectrum and use that colour for that property instead. (unfinished)
● Modified ColorPicker QML element to suit current use-case’s needs (No fundamental changes; just added a bool property that allows the developer to send and use a new colour instead (currently only implemented for border colour). (See ColorPicker.qml) This change won't affect other places where colorPicker is being used.

Upcoming Features:

● Working on the back-end logic for saving the changes that are made to the colours of the High-Contrast Theme.
● Changing themes in a specific tab i.e either only Accessibility or only Appearance selects one theme at a time (as it should). However, when the user is switching and checking different themes out between both the tabs, a theme from each of the tabs remains highlighted (i.e. there is no communication between Accessibility and Appearance). Mr Elnur has helped me out a lot with how the solution should work, and I am currently working on this.
Desired Behaviour: Selecting a theme should deselect all other themes.
● Score Page colour Inversion
● Inset Stroke (i.e. border) for all buttons in the UI for better visibility.
● Implement a "Reset-to-Default" button that sets HC themes to their default values.

Keep up with my progress at the following locations:

● Weekly blog right here at
● Via the actual code and pull requests from My Fork on GitHub