In our accessibility journey for Mudlet part 1 we detailed the primary, but not the only, challenge Mudlet’s accessibility faces – the main display being completely invisible to screen readers. We’ve solved this problem for macOS in part 2 and focused our attention to Linux next.
Linux is not just one operating system created by a single company like Microsoft or Apple; one of its beauties lies in the fact that anyone can take a Linux “distribution” and remix it to their needs. Programmers can also write applications in their favourite technologies – the most popular being GTK+ and KDE/Qt. At the same time, however, visually impaired users must be able to use their favourite screenreader – there is a selection, though the most dominant one is Orca – with any application that the programmer writes.
I’ve dived into the Linux world of accessibility technology to find out how this all works and found that to solve this myriad of possibilities, the Linux world came up with a common “language”. The idea is that if both parties – applications and screen readers – are able to speak the same language, they’ll be able to get along. And that’s exactly how it works in practice.
Unfortunately though, this language – or AT-SPI2 (“Assistive Technology Service Provider Interface, version 2”) as it is known – doesn’t have any words to describe a “notification” or an “announcement”. It has plenty of words to describe how a button works, a line edit, or a web document – but no way to just get the screen reader to speak out some text on demand, which is what we need to announce incoming text from the game. Bit of a problem, isn’t it?
There could be a variety of solutions to the problem here, so I reached out on the Orca mailing list seeking advice on the best way forward. I was lucky to catch the eye of Joanmarie Diggs, a heavyweight in the accessibility world and one of the main devs of Orca, who mentioned that Orca has heuristics in place to read out any text for a window of type ‘notification’ that is a child of a window type ‘statusbar’. The window doesn’t even have to be visible – we can create an invisible window, all that matters are the window types, the hierarchy, and an event saying the window got shown.
I’ve since put that in place, and announcements on Linux now work! This is alongside existing functionality that allows you to review the main window. Linux, as well as macOS builds, are now ready for testing – join our Discord, and mention that you’d like to help with accessibility work in the #survey channel to help test this out.
At the same time as we are making Mudlet more accessible on macOS and Linux (with Windows coming in the future), we are also looking for more hands on deck to build Mudlet out. If you’d like to get into reviewing the Mudlet app, website, or manual for accessibility improvements, or even help write code, pop over to our #mudlet-development channel in Discord. Working on open-source is rewarding, it helps build your skills, and even helps you land a job! The main factor in this is motivation, not experience – we’re happy to mentor beginners 💪