While Mudlet is fully translated and playable in 5 languages, it is infamously not accessible to visually impared players. The main reason for this is the high-performance, custom text display we use and the fact that it is not hooked up to screenreader software. That’s why two years ago we put out a bounty to exactly tackle this issue. Besides this, there are also minor accessibility issues here and there in the menus that need to be taken care of.
In the two years that have passed, a couple of people (notably Mike Conley and Thiago Jung Bauermann) have made great strides in making Mudlet accessible, but the end goal could not be reached. With the blessing of other Mudlet developers, and given how long visually impaired players have been waiting on a Mudlet that works for them, I decided to take a crack at the bounty.
Whenever you’re building any new feature, if you truly want what is best for the user, you must put yourself in their shoes. That’s exactly what I’ve done – in order to build this feature, I started out by learning how such voice accessibility tools work – in particular, macOS’s VoiceOver technology. Starting with macOS first since the fact that 3rdparty software is way more popular than Windows’ own solution is not confidence-building, and the Linux accessibility support – being all volunteer driven – is unlikely to on the same level as others. The latter is a pity and I hope that organisations devoted to matters of accessibility will fund improvements to help the users of the open-source OS.
Having learnt how visually impaired players navigate the digital world, I have to say – it’s an impairment for certain and I don’t envy them in what they have to go through. The basics of finding your way seem relatively obvious – you can use shortcuts to move between buttons/widgets in an application. But there can be quite a lot of buttons, and going back and forth between everything can be rather tedious – for this reason, there are also special lists that allow you to jump between parts of an application quicker. Naturally, there are also ways to speed up text reading so you can get through lots of text quickly.
Now, much like any other MUD client, Mudlet has two primary widgets – the text display (main window) and an input line. Thiago has done excellent work on making the text display visible to the screenreader, but an important issue remains – when the accessibility tool is focused in the input line, and most of the time it would be, incoming text is not automatically read out.
In the accessibility world this challenge is solved with live regions – even if your focus is elsewhere, when a live region is updated, it will be read out by the screen reader software. This seems perfect for our situation here!
I’ve went out and did more research on them, even trialled using them in the browser. Turning back to Qt, which is what Mudlet is built with, much to my dismay I discovered that live regions are not supported in Qt. That’s a blocker, and is the next challenge that I’ll be working to tackle in this journey – stay tuned.