Here it is. Post 2 in my series on #Linux #accessibility. This time, I'm digitally screaming about the audio stack.
As always, feedback is encouraged and welcomed, and subscribe via rss or email to receive plane-text versions of what I write, the day after publishing at 10 am UTC
https://fireborn.mataroa.blog/blog/i-want-to-love-linux-it-doesnt-love-me-back-post-2-the-audio-stack-is-a-crime-scene/
#a11y #linuxAudio #linuxAccessibility
I Want to Love Linux. It Doesn’t Love Me Back: Post 2 – The Audio Stack Is a Crime Scene — fireborn

@fireborn #linux won't change until people understand that testing and programming needs to be paid. Spend some buck on your favorite distro or project, ask for better management or better testing.
@lcruggeri It needs to be paid, yes. By companies. There are some huge companies behind Linux and various parts of the stack. I wonder how many are funding accessibility efforts? IBM, a little. Oracle bought Sun Microsystems and cut the accessibility team. The Gnome foundation does some work on it but the processes are still a work in progress.
@fireborn people need to pay also. Micro payments, but those help too
@fireborn think about it, Office may cost 100 euro, for example. Why don't you give 1/10th to LibreOffice id you use it? Multiply for many people and money for testing are here now
@lcruggeri I agree–I'm always in favor of people donating to their favorite projects. The issue is that a lot of people, unfortunately, just don't care about accessibility, because it's not happening to *them*. It's happening to some unfortunate minority group.
@fireborn there was Flattr for micro payments but it was directed to payments for web sites and portals. Where the value isn't certain for the reader
@lcruggeri This looks like it would work if people would adopt it. https://opencollective.com/
Raise, manage and disburse money with full transparency.

Open Collective is a legal and financial toolbox for groups. It’s a fundraising + legal status + money management platform for your community. What do you want to do?

@fireborn I use Arch Linux and donations to it go through SPI (software of public interest), sometimes I donate a bit
@fireborn if you mind about accessibility, I recall Elementary OS doing something in that matter. Paging @danirabbit
@lcruggeri @danirabbit My series has been about accessibility, if you didn't read it I'm a blind user that's been using Linux for years now, and I'm just expressing my personal experiences with it, and expressing my worries and concerns about where we are and where we're going.
@fireborn @danirabbit MacOS was a very good choice for blind people I recall. Paging @talksina too, she may expose her point of view
@lcruggeri @danirabbit @talksina It was, but VoiceOver (Apple's screen reader) has been neglected on the desktop side of things for years. Windows is the more popular choice at the moment.
@fireborn @danirabbit @talksina I didn't know, I expected it to be at least a good software. Under #linux there's... Orca as a screen reader?
@lcruggeri @danirabbit @talksina Yup. I use Orca. It works well for the most part. It's issues lower down the stack (desktops, audio, wayland) that break the experience.
@fireborn @danirabbit @talksina pulseaudio was a birth because Alsa wasn't really good under the hood. Hoping pipewire helps in the linux's audio stack
@lcruggeri @fireborn @danirabbit @talksina pipewire and pulse are userspace daemons that sit on top of whatever you have underlying (alsa/oss/jack), they don't replace it, they're for mixing and control. As for OPs post while I can't say I've run into any of the issues listed (audio's just kinda always worked for me, though part of that is likely just because I'm picky about manufacturer) I do have a solution for the root problem, both pipe and pulse can run in systemwide mode from boot 1/2
@raptor85 @lcruggeri @danirabbit @talksina I maybe should have been clearer. I know pipe wire and pulse are built on top of not instead of alsa. I thought I wrote that in the post but maybe I need to be clearer about it.
I also know that they *can* be started in system mode from boot, but it never comes configured that way, and unless you know how to do it, or find a script to do it for you, it won't be. That was my point. I can configure that, because I know about the feature, and how ot set it up. A new linux user might have no idea. I talked about that a bit more in post 1.
@fireborn @lcruggeri @danirabbit @talksina sorry, that first part was directed to the post above that one in the thread. It's been ages since I've used one of the big mainline distros but I do remember SUsE at one point having that as an option during install, it seems shortsighted if they (and others) took it away.
@raptor85 @lcruggeri @danirabbit @talksina I don't know any that have system mode pipewire as an optino during install. Arch and gentoo and lfs, but only because you build them yourself anyway.
@fireborn @lcruggeri @danirabbit @talksina oh, I'm talking like 10-15 years ago, it was definitely a thing in distros for a while (likely as much from there just not being a well understood standard yet). Seems about right on par, It's a huge issue I have with many distros and desktops (and wayland) myself is that every version seems to strip options in the name of making a more "unified" experience, wayland in particular is a HUGE pain...
@lcruggeri @fireborn @danirabbit @talksina 2/2 now most systems won't set this up by default as it's considered a huge security risk but many distros still ship the startup script, you just have to turn it on and disable the userspace one in your window managers autorun. Major distros used to give this as an option during setup and I'm a bit shocked to hear they don't anymore, that's definitely something mainline distros should put back in.
@lcruggeri @fireborn I’m definitely keeping an eye on this series to see what we can learn!
@danirabbit @fireborn thank you for your interest in the matter 😀
@danirabbit @lcruggeri Thanks for taking the time to read my rambling. I've heard from a few people that the elementary installer starts speaking when you just leave it sit and don't press anything at all. Is this the case?
@fireborn Yes! We added this feature fairly recently. After a few seconds of being on the first page of the installer it’ll announce the screen reader shortcut. And I spent some time going through the installer with my eyes closed to make sure everything was labeled and could be navigated etc. I’d love any feedback on it!
@danirabbit I'm going to daily drive it. My laptop is now wiped.
@danirabbit also, for this alone, where can I throw some money?

@fireborn I’m really looking forward to hearing how we can continue to improve our experience for blind folks 🩷

GitHub Sponsors or LiberaPay are the best ways. Thank you so much!

https://github.com/sponsors/elementary

https://liberapay.com/elementary/

Sponsor @elementary on GitHub Sponsors

The thoughtful, capable, and ethical replacement for Windows and macOS—plus AppCenter, the pay-what-you-can app store. Sponsor elementary on GitHub to fund the development of Open Source software a...

GitHub

@lcruggeri @fireborn Seems like it would be good to encourage and normalize a trend towards sharing about what FOSS we've donated to most recently. Make it a part of FOSS social culture. If we're openly sharing every time we donate it might encourage or remind others.

My most recent donations were to the Linux Mint folks, Thunderbird, Wikipedia. My donations are always small due to my budget but repeated throughout the year as often as I'm able.

#Linux #FOSS

@dennyhenke @lcruggeri This would be nice. There is the concern around that though that is people might feel guilted into donating, those who really don't have the income for it. It's true, though, that one person calling out what they donate to can encourage others to do the same. Thank you for raising this idea–some food for thought for sure.
@fireborn @dennyhenke an idea i had was about putting a sum, like 20 euro, and having it divided automatically into the recipients of your choice, this was the model of Flattr that's sadly dead
@lcruggeri @dennyhenke This would be really nice. here's an amount of money, here's what I want to support. Not even down to the details of *who* I want to support, *what*. Accessibility, console development, firmware reverse engineering, whatever.
@fireborn @dennyhenke i think that this should be a decision that the project of choice has to make. Obviously, more interest in that aspect (accessibility for example), more money.
@lcruggeri @fireborn @dennyhenke
How is that supposed to work?
The majority of users don't need accessibility features.
Projects already prioritize features themselves, and apparently accessibility is low on the list for most of them.
So if donations are supposed to make a difference, they need to be tied to accessibility - otherwise 99% of your donation will be used for more widely used features
@Doomed_Daniel @lcruggeri @dennyhenke It's not a bad idea, if the pressure works for getting people to donate to accessibility. It would have to be specifically accessibility money, which then might lead to only that money being put into accessibility and not anything else. Food for thought, like I said, but not perfect.
@fireborn @lcruggeri @dennyhenke
True, that could happen - but I fear for many projects just getting money without any communication of intend will be used for the most popular features (that still are considered improvable).
Most projects will have several features that they'd love to improve if they had the resources, so prioritizing is hard
@Doomed_Daniel @lcruggeri @dennyhenke Yup, and there would have to be some way of holding the projects accountable for how the money was used.
@fireborn @lcruggeri @dennyhenke
I wonder if a different model of paying someone to work on accessibility who then works on different projects as needed would be better - but OTOH that might not work that well given how hard it is to contribute code to some bigger projects, especially as an outsider...
@fireborn @lcruggeri @dennyhenke
It really is a hard problem, especially if no one with deep pockets (like a company) takes the initiative.
I mean "we got a couple of hundred bucks of donations for accessibility this month" sounds great, but only buys maybe handful of developer hours when going by standard industry rates
@Doomed_Daniel @lcruggeri @dennyhenke I'd do this if I could, but, quite rightly so, I don't have the public reputation and reliability needed for people to be willing to fund it. and I still have to do my day job, which is working on nuclear safety in digitial.

@lcruggeri @fireborn How much money does IBM (Red Hat/Fedora) have? How much money does Canonical have? How much money do the countless corporations that profit from Linux have? And how much money have these corporations already spent on features they want for themselves because they profit off of it?

https://ar.al/2024/06/23/fedora-has-been-shipping-with-a-broken-screen-reader-for-nine-years-but-the-real-problem-is-me/

Fedora has been shipping with a broken screen reader for nine years but the real problem is me

Fedora has an ableism problem but woe to you if you point it out.

Aral Balkan

@fireborn

Thanks for this, since I haven't really understood Linux audio since ALSA other than being vaguely aware of Pulse.

I'm thinking about how situations like this happen in "Linux" vs how things in Windows or other (newer) systems feel like they're better, even though just like your article points out, many of the older APIs for sound are still there on Windows as well!

I think I've identified three things, but I'd love your thoughts.

1. There's no centralized body dictating changes

We have FreeDesktop, but there's no one officially saying "This is now deprecated. Stop using it"

2. Linux itself inherited the idea of being compatible with older Unixes and an OS legacy going back to the 70s.

3. Developers aren't given a lot of guidance when knowing what to implement. At best they are just using SDKs from the desktop environment.

With that, how do you see a way forward to improve the situation?

@serge I wanted to let you know I've seen your post and bookmarked it. I'd like to take your points raised and write a post about them, if you don't mind, rather than write a short-form response to what are long-form questions.

@fireborn

I think my questions are applicable for any aspect of Linux, really.

Best practices are encoded through APIs and SDKs, rather than through a central body, and that makes it challenging for developers.

@serge They are. This is why I didn't address them with a short-form answer. Thank you for asking them, though.
@serge @fireborn it's software 101 to have to deal with the constraints of software that exists, if the plan is to re-write everything every time somebody decides that there's a new hotness well... that's how you get wayland where the entire ecosystem is broken. the approach of pipewire where they try to maintain backwards compatibility is good, it's just hard to execute on.
@dotstdy @serge This exactly. The generally Linux ethos of don't break userspace doesn't help. Sometimes userspace is already broken.
@fireborn @serge I don't think that ethos exists outside of the kernel tbh. Underlying platform stuff is constantly changing which makes it exceedingly difficult to deliver software that is highly likely to work. If the mid layer of linux software did care about long term compatibility in the way that the kernel does I think we'd be in a vastly better place.
@dotstdy @serge It is, but there is still a lot of "we won't change this because it sort of works"
@fireborn Great series. It looks like PulseAudio is still the best thing in the world. I remember in 2010 how terrible it was. Sound could disappear because of something and so on. The best solution was to kick it out of the system. According to different online forums, it was a pain in the ass for many users these days.
@Yinshi It's still awful. I configure most things to use alsa when I can, because, although it's old, and clugy, and broken, I know how to hack around it from lkml threads from 2008

@fireborn Huh, somehow this has me feeling optimistic... I guess it sounds like there's a lot of low-hanging fruit. You mentioned not having a audio mixer with good accessibility, which sounds like could be improved with a couple weekends of getting acquainted with the accessibility stack (or I haven't fully comprehended how bad it is yet). I've been meaning to learn how the screen readers and such work, and that seems like a good jumping-off point.

1/3

@fireborn pavucontrol tends to be my go-to for audio, is that the case for you, or are there tools for that you prefer?

What do you do when audio breaks? Are you ssh-ing in, or do you have some other trick to get output? What tools do you end up using? I can't imagine either X over ssh or ncurses work well.

Ncurses in particular disappoints me, I prefer text-based apps. It seems like they have all the information, but probably just miss the mark on usability.

2/3

@fireborn I spend most of my tinkering time somewhere around minimal and extensible software, but I often have trouble explaining why. Like there's software that just feels not quite right. I suspect aiming for software that can be easily adapted to different user needs (such as supporting both audio and visual output) will be very helpful in explaining that.

3/3

@fireborn "I have no audio output but I must digitally scream"
@Doomed_Daniel I thought the word-play was funny. :D
@fireborn (mine was a play on the short story or game "I Have No Mouth, and I Must Scream")
@Doomed_Daniel I, I hadn't heard of this!!!