GSoC 2021: Improving Accessibility For the Visually Impaired

Posted 4 months ago

Greetings!
My name is Arjun Taneja, and I’m delighted to say that I’ve been selected by the MuseScore team to work under their guidance in this year’s Google Summer of Code. It is my first time contributing to an open-source project (let alone, one of this scale), and it is sure to be an enlightening journey!

As the title suggests, my project revolves around making improvements to MuseScore’s design that will attempt to break down the barriers holding back a minority of Partially Sighted individuals from reading and writing music. In particular, I am going to be targeting the existing High Contrast mode within the application. I will be modifying/adding to its functionality to ensure a much smoother user experience while working under the mentorship of Martin Keary (@Tantacrul) and Peter Jonas (@shoogle).


Project Details:

The Problem:

There are five categories of visual impairment that impact the use of computers, in addition to complete blindness:

  • Visual acuity (refers to clarity or sharpness of vision.)
  • Light sensitivity (extreme sensitivity to light)
  • Contrast sensitivity (ability to distinguish bright and dim areas of elements)
  • Field of vision (the area from which a person’s eye is able to gather visual information)
  • Colour vision (ability to perceive colour)

Considering all of these categories quickly leads us to the conclusion that the solution must be highly customizable, and user-specific.

For example, a person with good visual acuity and tunnel vision might need to make the text size small, to fit more content on the screen; But, that might be unreadable to an older person with low visual acuity, who would need larger text.


Proposed Solution:

To solve the issue in its entirety, the user must have the following features made available to them:

  • Brightness Control - Users can set the overall brightness of the display.
  • Automatic Text Rewrap/Reflow - Blocks of text morph upon zooming in/out so that only one direction of scrolling is needed.
  • Customizable Text Size/Font - Users can change the font size/font family of all text.
  • Customizable Colours of Visual Elements - Users have the ability to set the colours of the background, Text and Score elements from the full colour spectrum.

In its current state, MuseScore already offers solutions to most of these problems, (eg. Element Level Customization of individual notes (size, style etc.), bars, clefs, fonts etc.; Ability to Magnify the Score Page; Increase Font Size for UI elements such as buttons etc.), but a lot of these features are either unfinished, or are rough around the edges and need a bit of polish.

I aim to start modifying the existing High Contrast mode of the application, making Low Complexity-High Impact changes first, such as:

  • Modifications to the current High Contrast Colour Scheme.

I intend to work my way up to High Complexity-High Impact changes as time progresses, such as:

  • Different High Contrast modes (Light/Dark) with appropriate Colour Schemes
  • Score Page Colour Inversion
  • Colour Customizability of different groups of Interactive Elements etc.

Due to the nature of the problem we’re trying to solve, some features may not make it into the final build owing to unforeseen technical hiccups. However, I intend to get as many of these features into the Application as I can while also making sure not to skimp out on the quality of the changes being introduced.

Any advice/suggestions are most welcome :)


You can keep up with my progress at the following locations: