Central a11y repository

Linux for blind general discussion blinux-list at redhat.com
Sun May 7 12:45:54 UTC 2017

Hi all, Tony Baechler here.

Someone on the blinux list (I'm sorry, I don't remember who) suggested a 
central place with all accessibility packages compiled for all distros and 
all architectures. While I initially thought that would be impossible, after 
doing some poking around, I think it could be done after a fashion.

In most cases, you install packages from your distro's package manager. The 
Orca package might be called gnome-orca or just plain orca, depending. 
Likewise, you might have espeak and espeak-ng. It's hard to know what to 
install, what versions are available and if they're the latest. What would 
be nice is to have a way on any distro to always have the latest a11y 
packages without breaking the rest of the system.

Chris pointed me to what might be a solution by mentioning elogind. The 
elogind package was intended for the guix package manager. With guix, which 
itself was based on nix, you can have full upgrades and rollbacks without 
conflicts. They're similar to the BSD ports tree in that they can be 
installed on any distro and don't interfere with your existing package 
manager. Normal users can install packages. Since each package gets its own 
directory, there are never version conflicts and you can have many versions 
installed. I encourage you to study these links:


In the later, the nix OS distro could actually be used to build an 
accessibility framework. It takes the package management to a new level by 
letting you upgrade and rollback configuration files in /etc. I intend to 
install one or both on my server to see how they work. The only downside I 
see is they currently don't have any accessibility packages included, so 
someone (not me) would have to build them. I did see espeak in the nixos 
packages collection. Similar to BSD, you can either build everything from 
source or install prebuilt binaries if available. Therefore, a central site 
could have prebuilt packages for those who want them, but if you want to 
build from source, you can. Both guix and nix use a special language, 
similar to Gentoo ebuilds or BSD makefiles, so it's just a matter of writing 

I see one other problem. The idea would be to be able to install the package 
manager and packages on any distro. If you're working with a distro with no 
speech, it would be difficult to do the setup without sighted help. There is 
an install shell script which could be modified, but one would still have to 
know how to start it without speech. I leave that for others to figure out. 
A bootable CD or USB image could be an option, but somehow it would have to 
find the Linux root partition. If you have speech, like if you install 
Ubuntu and have Orca, you just go to a terminal, download the script and run 
it. In other words, without any accessibility components installed, I don't 
know how one could bootstrap the central a11y system.

Before anyone asks, there are no library conflicts. All libraries and 
dependencies are stored in the same place as the package itself. You could, 
therefore, run the latest stable Orca which ships with Gnome but you could 
also install the latest git master if it's packaged. You should be able to 
switch between them. I don't know how this is done, but that's what I read. 
I leave it to others to look into this further. I personally like the looks 
of nix better. It seems more stable and better tested. If you want guix, you 
have to install guile and scheme. With nix, you can run a command which 
drops you into a shell with all build dependencies installed, so you can 
easily apply patches and build packages from source. It uses "channels" for 
packages, so you could create an a11y channel and add it during the 
bootstrap process.

I'm interested in further discussion on this. It looks promising if a way 
can be found to bootstrap it without speech on any distro. From what I can 
tell, it's only for Linux and uses a Linux kernel, but it might be ported to 
a BSD system in time.

More information about the Blinux-list mailing list