I am very curious and want to help to make Linux more accessible.
I wrote with some people and got some insights:
- everything text, like a read-mode-only browser or a plain Terminal is best for TTS engines.
- TTS engines are difficult, some are really good but need many resources, some are worse but save resources
- TTS needs to be optimized to be really fast in some cases, to keep up with the speed
- some apps are better, some are worse, but probably most apps dont really suit blind people, as the whole GUI concept makes no sense
I am really curious. How would it be best for you, braille vs. voice, voice input vs braille vs. gestures?
What apps do you find best, how do you browse the web, find media to listen, how do you use Document editors and what purpose do they have for you?
Thanks a lot!
Thanks a lot for the details!
Yes a kernel module sucks, these never work. This would be a point for immutable distroa though.
If you dont know the concept, here is what it looks like
- on a regular Linux System, your package manager fetches the resources from a repo and updates your system on its own. This gives the easy freedom to mod everything how you want, but like you mentioned, things can break
- on an immutable System, most namely Fedoras Atomic spins (the new name including all Desktop variants and hopefully soon a blind variant) the system is maintained on a server, built there and many people can look at it and see if something breaks
- your local system can update automatically, and copies the exact system on the server. This is done using OSTree, basically git for your filesystem
- if an update prevents your system from booting, you can reboot and choose the previous version. Poorly this is not default on Fedora for “flickerless boot” (as the screen would go black and then show the grub menu) which is completely useless and should need to be deactivated on a blind Edition.
- so you can roll back to a working system, if problems like these would happen. Always one previous version is kept.
- but often the system on the server (ostree remote) would not build successfully, as its controlled using CI tools and all, so you simply wouldnt get an update until that is fixed.
In such an edition a community could get together, include all the software that works best, preset all settings, and manage a distro that works.
I dont know how well Flatpak and other things work though, which seems to be a good solution to have a not-breaking system.
To your point of sound being bound to a working userland: this is very bad of course. It may be circumvented by using a stable release of some Desktop that never breaks, like GNOME. But this sounds like needing a bigger solution.
To the systemctl thing, I experienced something similar. You may add the “nofail” tag to every drive, to avoid that boot error. It sucks a lot, true.
Standardisation has its value, the same with paid software, thats true.
The issue here would be that no two blind people have exactly the same needs. It sounds like this would prevent any customization at all. We all use different speech voices, at different speeds, etc. So a system where no settings can be changed just wouldn’t work.
Totally fair. Thats why Immutability on Linux, apart from the Steamdeck, is never locking down the system fully.
You can install (layer) and uninstall as many apps as you want. It also gets easier and easier to create custom images, universal-blue.org is a good example for that.
Only thing is that all installed packages need to be RPMs, no installing from source/into the system using some scripts here. This is all due to traceability.
So if the system fits your needs, leave it, but smaller or bigger changes, overrides, removals, replacements, are always possible. Simply that
- updates are atomic, if it fails you have none, but no broken system
- with a single “rpm-ostree reset” you can revert back to a certainly working system
- it will not break through upgrades or rebasing (changing the system entirely), as it clones their setup
- certain directories are read-only. /var /etc /var/home etc. are excluded from that.
So configs should be always possible, as well as changing packages. But I think maybe unlike sighted people, first priority should be to have a reliable system, that will never stop talking.
Or perhaps, better to rephrase as “first priority should be to have a system that’s as reliable for blind people as it is for sighted people”. In practice, that means that whenever text is printed to the screen, there needs to be a way for a blind person to know about it. Text to speech systems like espeak can run in kilobytes of memory and storage. The primary problem is sound support.
The second problem is maintaining this system. Right now, Linux is caught in a vicious circle. The system isn’t accessible enough for a blind person to use, so why would a blind person put in a bunch of work on it? The NVDA screen reader on Windows is an open source screen reader entirely created by blind users. But that only works because Windows is accessible enough that the tools blind people need to create and maintain software are accessible enough for us to use. What are the tools for creating these types of systems like on Linux? You mentioned CI tools. Currently, the leading providers of these tools don’t provide decent screen reader access to them, as far as I am aware. So now the tools for blind people on Linux need to be built and maintained by sighted people. From a practical standpoint, this just isn’t going to happen. Open source only works when people are scratching their own itches. It’s power is when people can build solutions for themselves. In the long term, an accessible Linux built for blind people by sighted people just isn’t sustainable.