Quite impressed with the state of accessibility of the Raspberry Pi Linux-based OS(self.Blind)
submitted by Fridux
I bought a Raspberry Pi 400 not expecting anything from Linux's accessibility department, and was quite surprised to hear the installer ask me to press a key combination to activate a screen-reader, meaning it's actually accessible out of the box. The speakup kernel module,, which provides console screen-reader support, is also installed and enabled out of the box, but unfortunately to get it to work I had to install speechd-up and create a symbolic link because it looks for a Unix domain socket to speechd in the wrong place, though I do have screen-reader both in the graphics user interface and in the text console now with almost no effort, and I managed to do it all alone without logging in from another computer or requesting assistance from the sighted.
The chromium browser that ships with the Raspberry Pi is slow and heavy to the point that I could not rely on it for web browsing with a screen-reader, but after installing Firefox I could actually use the Raspberry Pi as an accessible Linux computer to browse the web, and even replied to a post here on /r/Blind from my Pi. The browsing experience is very similar to that provided by NVDA on Windows', and as such I consider it superior to MacOS in most cases. However due to some annoying bugs with text boxes coupled with some latency resulting from using my Mac to output both audio and video from the Pi (which hopefully can be addressed by a small TV) I decided to write this post using my Mac instead.
I did find some show stopper rough edges though: sometimes the Orca screen-reader stops working for a while so I have to pause whatever I'm doing and wait for it to resume, and I even ran into a situation where I opened the source for a reddit page and Orca decided to spend a minute generating a huge sound sample that I could not interrupt even after it started playing, forcing me to kill speechd from a remote session and wait some more for it to be respawned. The lack of audio icons is also a negative point for me since I'm very used to VoiceOver's rich audio feedback, but Windows users shouldn't notice much of a difference.
The Geany code editor that ships with the Raspberry Pi OS seems to be accessible on Linux, which actually surprised me because I tried installing it on MacOS some time ago and it didn't work for me. Unfortunately it doesn't support the Language Server Protocol yet, and since EmacSpeak, which was suggested to me by someone on this sub, requires installing a lot of dependencies, I didn't even try it and thus am still looking for a lightweight and free GTK editor with LSP support that I can use to code efficiently on the Pi.
I decided to write this post because searching for accessibility on the Raspberry Pi wasn't returning any encouraging results, and the reason why I actually bought the Pi was because I had absolutely nothing to do and thought that Linux accessibility would provide me with a challenge, though as it turns out, there's very little left to improve. So if you are a blind geek on the fence about buying a Raspberry Pi and are afraid that it might not be accessible, I'm expressing my experience here so that you can confidently go for it.
JaymeJammer4 points1y ago
Thanks for sharing this, very cool!
I've been wanting to get a Raspberry Pi for a while, this concept elevates it to a much higher priority.
Hope you get your peripherals sorted out for easier audio, and I love the whole concept.
throwawayorcalol3 points1y ago
Got one of these setup for my gf a while back. Worked great as a little Linux box, but yes, Orca can be a bit painful to work with sometimes. Using an external audio adapter (a USB to 3.5mm) worked well. That said, the latency is not because of your audio setup, the pi is just too slow to run Orca fast enough.
Shameless self-plug: I'm working on a new screen reader for Linux called "Odilia" (https://odilia.app/) and once it reaches maturity I'd really like to get input from other users of low-powered devices. I've got a PinebookPro which has a similar SoC to the raspberry pi but a tiny bit more powerful. Hoping that this project can be faster than Orca and thus make an RPi a more viable option for low-vision/blind users.
Fridux [OP]1 points1y ago
Very interesting! Wish I could participate since I love Rust and am looking for something to work on, but given how hard I find it to read code written by others as a totally blind programmer I guess I'll pass, though I'll still be interested in developing add-ons for it later once it's ready to use.
I read the Design page and it left me with a question: Does it target a specific graphical user interface library or will that be accomplished by add-ons too?
throwawayorcalol1 points1y ago
It works with AT-SPI (Accessible Technology—Service Provider Interface) which is a protocol to receive and send a11y info over DBus.
The performance issues of Orca are primarily because DBus is slow when you run 50+ commands to it all at once (think structural navigation), so an aggresive caching system is needed. We're working on it, but it's a little slow going since two of us have jobs and the other main developer is in university. But it is being worked on.
Littlebiggran3 points1y ago
This discussion should be saved or shared with the people who design these things gs.
Kelashara3 points1y ago
okay, I have a question with the raspberry pi os, can you also instead of using that version of linux, install ubuntu, or Ubuntu mate and use the graphical user interface with that successfully with the raspberry pi. if so, has anyone tried this?
throwawayorcalol1 points1y ago
Other distros do work, but some don't have accessibility by default and it needs sighted assistance to get up and running. Haven't tried Ubuntu, but Manjark for sure needs sighted help to get started.
retrolental_morose3 points1y ago
How do you get the sound out of it? Does it have a 3.5MM jack or do you need to HDMI audio out?
Fridux [OP]3 points1y ago
The Raspberry Pi 400, which is a faster Raspberry Pi 4B embedded in a keyboard, doesn't have a headphone jack, so I had to connect it to my Mac using an HDMI to USB adaptor which caused some latency, however the versions of the Raspberry Pi on a Printed Circuit Board do have a headphone jack.
---
Edit: spelling.
retrolental_morose3 points1y ago
there are a number of micro HDMI to 3.5 adapters. Presumably one of those would work for a basic analogue out. I've never used a Linux desktop before, but have written a whole term paper in Ed so would presumably be quite happy with the command line, assuming I could find a decent way of browsing the web
throwawayorcalol1 points1y ago
"ed is the standard text editor" as they say.
Were you wtiting in Latex within ed? That sounds painful to me, but maybe I'm just not used to it.
SightlessBastard1 points1y ago
At some point, I was also thinking about getting a raspberry pi. My biggest problem though would be, to assemble the thing. As far as I know, you need to do that yourself. Since I am living alone, I don’t have anyone, who could do that for me. Is it possible, to assemble a raspberry pi on your own, when you are completely blind?
Fridux [OP]1 points1y ago
There's very little to assemble even with the Printed Circuit Board models, however the model that I bought (Raspberry Pi 400) is a kit with a Raspberry Pi already embedded in a keyboard, a 16GB MicroSD card with the Raspberry Pi OS which is based on Debian Linux, a MicroSD to SD card adaptor, a Micro HDMI to HDMI cable, a USB-c power supply, and a mouse, so you don't even have to hunt down individual components. It's essentially a cheap Linux box ready to plug and play.
SightlessBastard1 points1y ago
Ah. Thanks. That sounds pretty easy. I just read, that, in earlier models, you basically needed to assemble every single part. But if you don’t have to do that anymore, it makes it much easier.
Wooden_Suit55801 points1y ago
I have always been curious about getting a raspberry pie and tinkering with it. This is good to hear that the accessibility is improving. Are there any good tutorials that you would recommend for a totally blind person getting started with a raspberry pie? Thank you
Fridux [OP]2 points1y ago
I think that pretty much every distribution has Raspberry Pi specific documentation. However if you're just starting, sticking to the official Raspberry Pi OS is my recommendation. After installing everything behaves like you would expect a regular Linux desktop to behave, so almost everything that applies to Debian Linux on a PC applies to Raspberry Pi OS as well.
The installation of Raspberry Pi OS is quite straight forward, it just asks for your region, language, keyboard layout, optional wifi password, and a password for the default user. I did notice one problem with the keyboard layout though, which is that Raspberry Pi OS defaults to a UK layout even when you choose something else and I have a US keyboard, which can be an issue if your passwords have symbols, though rebooting after the installation solved the problem. Navigating the Gnome desktop environment with the keyboard is similar to navigating Windows.
Before actually installing Raspberry Pi OS I tried a remote headless install of Alpine Linux, which is a distribution commonly used in containers and on embedded devices, however Alpine is definitely not accessible, and although I did manage to set it up for reading the console, it wasn't as easy as it should have been, because in addition to not being accessible out of the box, Alpine is also lacking some accessibility packages, so I had to compile a few things from source, hence my recommendation to stick to the official OS.
The model that I bought (Raspberry Pi 400) is a complete kit containing the Raspberry Pi itself in the form of a keyboard, a mouse that I don't use, a USB-c power supply, a Micro HDMI to HDMI cable, a 16GB MicroSD card with Raspberry Pi OS ready to install, and a MicroSD to SD card adaptor, so all I needed was a device that can process HDMI output. If you buy one of the other models you might have to flash a MicroSD card with the OS, but the Raspberry Foundation makes available a utility for Windows, MacOS, and Linux that can be used to do that, though on Linux and MacOS it's not really necessary.
spider_lord1 points1y ago
This is awesome. I remember doing some searches on this topic a couple years ago and pretty much no results as you said. Glad to hear it's mostly accessible.
MostlyBlindGamer1 points1y ago
This is excellent news. I'm pleasantly surprised. I'm not familiar with Linux screen readers, but judging from their performance on Windows, does it seem like the issue might be a general lack of horsepower?
Fridux [OP]2 points1y ago
I didn't profile the screen-reader, but based on the fact that the CPU on the Pi was constantly over 100% while browsing the web I would guess so. The Raspberry Pi has a single core CPU with a slow clock speed that also lacks a lot of optimizations.
Davidbrcz2 points1y ago
That's true for the very first model. Ever since, most (all?) RPis have several cores.
Fridux [OP]1 points1y ago
You're right. The format of `/proc/cpuinfo` has changed since the last time I used Linux, as I did a `grep Model /proc/cpuinfo` and it only showed one line, leading me to conclude that there was only one core. After checking again without filtering the result I noticed that it actually has 4 cores, but doesn't show one Model line per core like it used to a long time ago.
pi@raspberrypi:~ $ grep Model /proc/cpuinfo Model : Raspberry Pi 400 Rev 1.0 pi@raspberrypi:~ $ grep processor /proc/cpuinfo processor : 0 processor : 1 processor : 2 processor : 3
Thanks for correcting me. It wasn't my intention to mislead anyone.
MostlyBlindGamer1 points1y ago
Right, that makes sense.
It would be great if this out-of-the-box accessibility were pushed upstream, so more powerful systems can be made more usable, running Linux.
throwawayorcalol2 points1y ago
The raspberry pi is using upstream tech. to make it accessible. Most major distributions like Ubuntu and Debian have accessibility built into it by default as well.
MostlyBlindGamer2 points1y ago
Oh, I know Orca and emacs speak aren't new. I have just never used a Linux distribution that promoted me to turn them on on its own.
Our mission is to provide everyone with access to large- scale community websites for the good of humanity. Without ads, without tracking, without greed.