musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.19k stars 2.64k forks source link

Accessibility: Support the cognitively disabled - Ensure Colored Notes with appropriate color contrast to the background - also in export to PDF etc #20123

Open zDEFz opened 11 months ago

zDEFz commented 11 months ago

Your Proposal

  1. Include background colors and styles in exportable formats like PDF and so forth

  2. Implement warnings for insufficient color contrast (target: 4.5:1 or preferably 5:1). This covers colored notes against the background.

  3. Automatically re-color elements (clef and so forth) to achieve good color contrast ... there are probably libs you can use to determine valid values. Maybe this helps? https://dev.to/alvaromontoro/building-your-own-color-contrast-checker-4j7o

Problem

To enhance accessibility, ensure custom colors and styles appear in the PDF/other formats, benefiting those with cognitive disabilities and new learners. This aligns with colored notes, currently lacking adequate contrast with the background. We need a method to easily improve contrast for elements like background and other elements when using colors/styles.

This includes that if you change the paper color you will be getting getting appropriate contrasting note colors as a result.

Issue #16506 Issue #16715

Additional Context

In general, we should be drawing inspiration from tools like Visual Studio Code in dark mode, the aim is to create a modern, customizable user experience without causing visual fatigue.

"music, accessible for all".

Tantacrul commented 11 months ago

I actually want to make coloured notes (and some other accessible style choices) a potential GSoC project for next year. It's really important that we make it easy to turn on / off and modify too. @shoogle @bkunda

cbjeukendrup commented 11 months ago

FWIW, I believe there is already a plugin to color notes (which applies colors to the score in its current state only, so has to be re-run after every edit); and there seems to be some element-colouring logic in SvgWriter, but I've no idea what it is and it seems not connected to any UI so is never invoked.

zDEFz commented 11 months ago

FWIW, I believe there is already a plugin to color notes (which applies colors to the score in its current state only, so has to be re-run after every edit); and there seems to be some element-colouring logic in SvgWriter, but I've no idea what it is and it seems not connected to any UI so is never invoked.

Yea I know. That plug-in, applies colored notes by boomwhacker standard. That means every note is tied to a specified color. You get all kinds of reading issues with this on its current state, because contrast isn't exactly sufficient if you have yellow on white and so on. So the idea was, to automatically adjust foreground to background, and the objects that are now affected by the change, too.

Say the user wants dark gray. But clefs are usually black ; so they would be hard to see, that means they have to be changed now to get a proper contrast.

Let's assume all colors of the notes, clefs etc did contrast to background at least 4.5:1 to white; the user should be able to still change the background color while maintaining good readability (which can be measured as well)

Tantacrul commented 11 months ago

FWIW, I believe there is already a plugin to color notes (which applies colors to the score in its current state only, so has to be re-run after every edit); and there seems to be some element-colouring logic in SvgWriter, but I've no idea what it is and it seems not connected to any UI so is never invoked.

The one we support in MS4 is basically useless for a variety of reasons. There may be other plugins created for MS3 that do a better job and perhaps you are referring to one of those?

As @zDEFz says: the boomwacker plugin packaged in MS4 is not ideal. It has unusable UX, it doesn't work when the score is inverted, etc.

We need a way to specify colour profiles, make sure it's easy to change the BG and that any choice you pick is printable. And it shouldn't be a plugin either. It'd be a bunch of settings in accessibility in the preferences menu.

zDEFz commented 9 months ago

Today I did try on 4.3.0 unstable to see how far I can get - this is the result. Meaning; Many of the elements don't seem colorable through the UI at the moment. image