this post was submitted on 27 Oct 2023
7 points (100.0% liked)

Blind Main

488 readers
2 users here now

The main community at rblind.com, for discussion of all things blindness.

You can find the rules for this community, and all other communities we run, here: https://ourblind.com/comunity-guidelines/ Lemmy specifics: By participating on the rblind.com Lemmy server, you are able to participate on other communities not run, controlled, or hosted by us. When doing so, you are expected to abide by all of the rules of those communities, in edition to also following the rules linked above. Should the rules of another community conflict with our rules, so long as you are participating from the rblind.com website, our rules take priority. Should we receive complaints from other instances or communities that you are repeatedly, knowingly, and maliciously breaking there rules, we may take moderator action against you, even if your posts comply with all of the rblind.com rules linked above.

founded 1 year ago
MODERATORS
 

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!

you are viewing a single comment's thread
view the rest of the comments
[–] fastfinge@rblind.com 7 points 1 year ago (26 children)

Before we can even think about some kind of desktop spin, there are massive infrastructural issues preventing me from using Linux as my primary machine. I run several Linux servers, so my experiences are based on my experiences running those, and my experiences stripping desktops out of Linux machines that had them when I didn't want them to.

  • Sound never, ever works: Alsa, pulseaudio, pipewire...some apps require one, some apps require the other, and they don't work together at all well. Plus sound is considered part of the userland desktop environment. So if there is some problem preventing the GUI from launching and dropping me into a shell, I can forget about having any accessibility what-so-ever. We're what feels like decades away from having the advanced features that CoreAudio on mac or WASAPI on windows offer (audio ducking, first-class support for multiple soundcards and routing audio from different apps to different outputs easily, per-app volume adjustment, loopback recording, low latency, any kind of spatial anything, etc.).
  • Similarly, all of systemctl's targets are set up really, really badly for accessibility. If one of the drives in fstab can't mount, even though no core services depend on it, SSH won't come up, sound won't come up, networking won't come up, meaning I have absolutely no recourse other than "get a sighted person to come to my house and fix it" because I did something as simple as swap a drive. These days, mac systems can launch a full screen reader during system recovery. Windows isn't quite as slick, but it's close; it'll do the best it can to boot and get me a screen reader, no matter how badly things are broken. Linux will just give up and die, assuming I can read the screen and type on the keyboard to fix whatever happened. I need the system to require, at least, sound support and a console screen-reader no matter what; if those things don't exist, it's the equivalent of the machine just showing a sighted person a black screen with no further info.
  • The primary console screen reader, speakup, still requires a kernel module. If apt updates my kernel, it can (and does) kill the screen reader entirely.
  • Linux has no comprehensive, standard, accessibility API that will work cross-window manager, cross-desktop, and cross-platform. In Windows or mac, there are clear guidelines that developers need to follow to create accessible apps. If an app is inaccessible to me, I can refer a developer to first-class, well supported and understood, API documentation telling them what they need to do in order to better interact with my screen reader. On Linux, that's not so easy, meaning apps just never get fixed, because developers working for free just can't be expected to figure it all out themselves.

Until some of these basic problems get fixed, creating a fancy new desktop spin is just walpapering over basic design issues that will keep blind folks third-class users on Linux well into the foreseeable future.

[–] RastislavKish@lemmy.ml 2 points 1 year ago* (last edited 1 year ago) (4 children)

Hello, a daily Linux blind user for several years here. @fastfinge I would like to respond to some of your points, as I find them somewhat misleading.

Sound never, ever works: Alsa, pulseaudio, pipewire…some apps require one, some apps require the other, and they don’t work together at all well. Plus sound is considered part of the userland desktop environment. So if there is some problem preventing the GUI from launching and dropping me into a shell, I can forget about having any accessibility what-so-ever. We’re what feels like decades away from having the advanced features that CoreAudio on mac or WASAPI on windows offer (audio ducking, first-class support for multiple soundcards and routing audio from different apps to different outputs easily, per-app volume adjustment, loopback recording, low latency, any kind of spatial anything, etc.).

My experience is quite different. Regularly tracking the blind Linux mailing lists and guiding newcomers on getting their systems accessible, problems with audio are actually very rare these days. Mainstream distros like Ubuntu come prepacked with a bunch of drivers, ensuring great compatibility. From time to time someone appears with sound problems, but most of the time it turns out to be a corrupted installation image rather than actual audio issue. I don't remember anyone who wouldn't be capable of installing the system because the audio wasn't working. Alsa is a kernel module responsible for playing sound, PulseAudio is a software mixer built on top of Alsa providing more civilised audio interface for applications, PipeWire is a drop-in replacement for PulseAudio bringing some fresh wind to the field, mostly improving bluetooth headphones/speakers compatibility, but also improving latency etc. I don't see how these could get in comflict. PW and PA shouldn't occur on a single system installation, while both are designed to work with Alsa. For applications, it doesn't really matter, most of them had been developed in times of PA, and PW is backward compatible with it. I've fiddled with many applications through the years, and didn't see a single-one that would have audio problems. As for audio effects, there are very popular PulseAudio modules, PipeWire modules you can use for various effects like noise cancellation, audio filtering etc. I didn't play with them too much because I didn't see any added value also in Windows audio effects. I once applied a noise-cancellation tweak trying to improve the quality of my laptop's internal mic, but well, that thing has so bad sound I eventually decided to stream the microphone from my smartphone to PulseAudio through ADB, and it worked really awesome! And it's remained working also after switching from PA to PW not needing any changes. So much for audio flexibility and compatibility. Even more interesting effects can be achieved with systems like Jack, but being just an average user in audio terms, for me it's been never worth setting up. The things you mention like working with streams of specific apps are perfectly possible. Perhaps a more straight-forward interface wouldn't hurt, but other than that, it works, whatever. :D There had been some controversial topics indeed in the past, like when Alsa devs decided it would be funny to make the audio volume 0% by default and having it muted as well, what didn't get really appreciated by the blind community. :D But then, on Windows screenreaders are applying workarounds for years to prevent soundcards from auto-sleeping, otherwise the effects are really crazy, with the funniest part being they don't even work 100% of the time, I had computers where I needed silenzio anyway. So, these things are by no means unique for Linux, I see it just as the general kind of things we're used to be dealing with.

meaning I have absolutely no recourse other than “get a sighted person to come to my house and fix it” because I did something as simple as swap a drive.

As a blind student using Windows, I was regularly calling my classmates to read me the screen, because I did something as simple as trying to turn my computer on. Actually, Windows got the ability to activate the screenreader during system installation just few years ago with Windows 10, Linux could do this long before. And while on Windows I had been pretty stuck, Linux seems way more flexible to me in this regard, at worse I can boot up a live distribution and fix things from there, I don't remember the last time I booted a Windows Live image. :) That's not to negate your point, the situation indeed could be better and there are distributions like Slint trying to achieve this. Though, I think it's also worth mentioning this is a wider topic than Linux, just for how long have we been discussing UEFI accessibility, grub accessibility etc. These problems are related to all blind people, and of all the systems we have today, Linux gives you the most power to do something about them if necessary.

Linux has no comprehensive, standard, accessibility API that will work cross-window manager, cross-desktop, and cross-platform. In Windows or mac, there are clear guidelines that developers need to follow to create accessible apps. If an app is inaccessible to me, I can refer a developer to first-class, well supported and understood, API documentation telling them what they need to do in order to better interact with my screen reader. On Linux, that’s not so easy, meaning apps just never get fixed, because developers working for free just can’t be expected to figure it all out themselves.

Linux has at-spi, that's the universal accessibility standard equivalent to MSUIA on Windows. It's pretty well developed, works on any setup that has DBus, another standard thing you find basically anywhere, even sandboxing software like Flatpak or Snap respect atspi interfaces, meaning it's not some random thing supported by few demo apps, it's a full-fledged accessibility standard used by GTK, QT, web engines, Java, etc. It does have documentation, and even software for helping developers evaluate the accessibility trees of their apps. The argument that apps don't get fixed because devs don't understand atspi is something that... is not really the cause of the problems. Just compare with Windows. When was the last time you discovered an inaccessible app, you wrote the developer "Hey, your app is inaccessible, but there is this great, well-documented MSUIA thing you can implement and get it working", and the developer was like "Awesome, thanks for your feedback!" and made the app accessible? I wouldn't like this to sound rude or anything, because it's not meant that way, I just want to point out this is very lowlevel stuff that noone but accessibility experts understand, and it's a work beyond one person or even a small team without relevant expertise to make applications accessible using these APIs. Not even highly popular GUI libraries managed to implement it properly. Consider Java and QT, GTK never even bothered. While, that should exactly be the way for app developers to support accessibility, to use correctly their GUI frameworks, which should be responsible for handling MSUIA stuff. Many of them didn't really. That's why Matt Campbell started the AccessKit project, which is really promising in terms of cross-platform accessibility, he already improved atspi quite a bit and other changes are planned, see your other linked post. That's why I would say Linux not only has universal accessibility API, it's also one of the most open APIs we have these days.

Btw, quite a lot of Linux GUI environment is already accessible, as I mentioned I'm a daily user and things are really on a decent level, but things are just starting to move. It's not so long ago that KDE selected accessibility to be one of their main goals, and there's going really a lot of work into making that determination true. Cosmic desktop, the new environment of PopOS written in Rust, is building on top of GUI frameworks working on implementing AccessKit, and System76 committed itself to support the accessibility of the environment. A lot of development is happening in Orca, we're getting a lot of new features, refactors and bugfixes, improving the experience really significantly. Redhat has hired two people I'm aware of specially for accessibility positions, to work on improving GTK 4 and GNOMe DE accessibility, the work done by the accessibility teams has already shown up in both the environment and the framework. Wayland is a common scarecrow in the whole Linux world, not just the accessibility-one. But the reality is not that bad, there are few annoying minor things we're workarounding just now, like clipboard being available only to applications that have a window, making flat review copy not working (Orca come up with a feature similar to the Jaws' virtualisation to fix this). On one hand it's true it is annoying, right. But on the other, when I realise any Windows program is capable of freely reading the clipboard without any special privileges, and this has already been misused in the past for stealing money by swapping crypto adresses, I'm not sure it's that clear what's actually the inconvenience.

1/2

[–] RastislavKish@lemmy.ml 2 points 1 year ago

Ok, so much I guess for this post. :D Sorry if it got somewhat exhaustive, Linux is, like many environments unfamiliar to people, subject to a lot of myths and false information, so I thought it may be a good idea to clarify them before discussing where to move next. I shall do that in another post, actually getting to the question of the OP. :D Sorry again. Perhaps one last thing to address, people writing Linux has not been developed for desktop use... well, it's true, Linux has been developed as a generic purpose operating system, for any use one can imagine. We have really fancy desktops, we have awesome web interfaces, server running folks can enjoy the power of containers, actually not just them, Vanilla OS brought up many interesting and innovative concepts from immutable desktop (what's sort of a misleading name in certain sense, but whatever), to the principles of their apx manager, leveraging containers to unify software from different Linux distributions and integrating them into the OS. The flexibility is something that other systems can hardly compete with, so yes. We're not just desktop folks, we have much more in the stack!

P.S. I almost managed the character limit! 300 characters, what a pain, I hate these restrictions. :D

2/2

load more comments (3 replies)
load more comments (24 replies)