I just had my mind blown away. I was fortunate to have had a very informative and transformative meeting with one of our customers who is blind.
I think it is safe to assume that many (if not most) of you are just as ignorant as me regarding how visually impaired people use DAWs and plugins. "What? There are blind people making music!? Are you serious? How?"
I think there are far more such people out there than we are aware of, and most of them just put up with whatever is out there, made by us for us. It doesn't have to be that way, and it should not be that way.
So, as we advance, I want to encourage every one of you software developers to build your plugins to be 100% accessible to all. A little more effort on our behalf can make a massive difference to many. I am starting this thread for all of us to get better informed of this entirely different dimension to make better tools for more people.
Here are some things I learned today (edited).
- The text label for each HISE component that usually inherits the name of the element ID actually gets read by screen readers, and that is what blind users navigate by, even though it is not shown on the GUI. So, don't just leave the text as is. Please give it a meaningful name like kick volume, main volume, etc.
- Blind users listen to screen readers at surreal talkback speeds. When naming elements, start with the unique identifier. For example, instead of calling it "slider kick," name it "kick volume" so they can quickly scroll through the elements without waiting and listening to the common word between multiple elements.
- The screen readers detect the element type, so those don't need to be included in the names. For example, there is no need to include the word "button" in the text for such an element. The screen reader will let that user know it is a button when reading the name of that element.
- Most users will navigate through elements using TAB (forward) and SHIFT+TAB (back).
- Values of elements should be adjustable by using the arrow keys up/down and, ideally, also Page Up/ Page Down and Home / End for large increments.
- To test how your plugins function in a screen reader, use VoiceOver on Mac and NVDA for Windows systems. If they work well on those, they will work just as well on other systems.
While I discovered things I could quickly fix in my plugins, some issues will require @Christoph-Hart 's help.
- BUG: Slider values can not be adjusted using arrow keys, nor page up/down, home/end.
- BUG: The defaultValue of a slider (e.g., "0.845") is presented to a screen reader as the element's name instead of the text field value (e.g., "kick slider").
- BUG: Buttons are read as "checkbox" element type. Can you please change this to say "button"?
- Can we have the ability to exclude specific elements from being read by screen readers, such as icons? For example, I have many icons behind buttons that blind users must scroll through to access functional elements.
- A nice touch would be a visual highlight of some sort for the element which has been selected using TAB. I know it is not for the Blind, but it would improve overall usability.
That's it for now. I am excited by the idea of being able to make my products fully usable without even seeing them.