- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
Source: https://linux-hardware.org/?view=os_display_server
Reporting is done by users who voluntarily upload their system specs via
# hw-probe -all -upload
Source: https://linux-hardware.org/?view=os_display_server
Reporting is done by users who voluntarily upload their system specs via
# hw-probe -all -upload
In X11, any application can control any window. That makes screen readers and other accessibility tools very easy to write.
In Wayland, applications can only control their own stuff (no injecting
sudo rm -rf / --no-preserve-root
through keystrokes right after you hit enter on asudo
command in your terminal!). Screen recording access is only granted on request. A lot of applications written for the “anything goes, permissions are an illusion” style X11 has, will be difficult to port to Wayland.Windows had a similar problem when Vista introduced integrity levels (even non-admin users can have several levels of privileges, and windows can’t interact with higher privilege levels by default) leading to a lot of these tools running as admin, even under modern Windows.
Wayland and X11 have a more involved accessibility tree, but not every accessibility application uses that, and not every application exposes the necessary info. Synthetic clicks (i.e. interactive screen reader support) support is limited by design, as are global keyboard shortcuts.
Accessibility tools on Linux are already pretty mediocre compared to macOS or iOS or Android or Windows, but on Wayland it’s even worse.
This is exactly the problem I meant. Thank you for such a detailed overview of the issue. Most apps won’t provide for it, and as you described why technically, it will mean the end of accessibility as a system whole.
I doubt it’ll be the end of accessibility. There’s a very active issue on Github about an accessibility portal to fix Wayland’s shortcomings for accessibility. I expect the problem to be that very few people work on accessibility tooling, so even if the standard is finished tomorrow, it can take years for tooling to catch up.
I expect the Gnome/KDE tools to work on Gnome and KDE first, and then generic tools to work later. Or maybe the tooling Google has built into ChromeOS will be ported over, as Chromebooks are running on Wayland as well, who knows!
Luckily, X11 is going nowhere for the coming years. There are still people running system-v on bleeding edge Arch installs. Linux has a very long half time when it comes to software support. If you install Ubuntu 24.04 with X11 today, you’ll be able to keep using the current accessibility toolset until 2034 at least.
GNOME is working on a new Accessibility Toolkit for all desktops, funded by the $1M from STF. It’s intended to make accessibility better on Wayland.
Watch thisweek.gnome.org for updates on accessibility; there’s usually one. Here’s a very recent article about how it’s going from LWN: https://lwn.net/Articles/971541/
Also: https://github.com/AccessKit/accesskit
deleted by creator
My understanding is that AccessKit is an entirely separate thing to the portal.
Unfortunately, for several things, your choices are X, which is broken by design and few developers QA their software for anymore, or Wayland, which works pretty well in many areas, but where several important (or even basic) features are quagmired by bike shedding. But things are improving really quickly, and part of that is everyone shifting focus to Wayland.
I recently tried to navigate my GNOME desktop via screen reader and did not enjoy the experience. If I ever need it, I hope it works properly by that point…
At least for me, X is a worse experience on every computer I own (including the NVIDIA one), which is why I use Wayland. Neither is problem-free. I’m fortunate enough not to depend on accessibility features; perhaps my opinion would be different then.
Ah ok. Thank you for the detailed answer.
I really don’t get the whole Wayland vs X11 thing. X11 works fine, why crate an alternative? What’s so great about Wayland that can’t be implemented in X11?
Wayland is architexturally better than X11. X11 was developed in a time where any serious application more powerfully than a terminal emulator would be running on another computer, and everything else has been hacked on top of that. There’s hardly any security restrictions for things like keyloggers and key stroke injection. It’s old and maintenance sucks for the people currently maintaining it.
After a couple of decades, people looked at what the rest was doing and thought perhaps the old mainframe model isn’t necessary anymore. Windows and macros don’t model their GUI after mainframes with dumb terminals that happen to be physically located within the same machine, so X stands alone in its design architecture.
I think everyone maintaining graphics code for Linux distros thinks X11 doesn’t cut it anymore. Importantly, the people writing GPU drivers don’t seem to want to be held back by the extensions built on top of X11 (while others dutifully maintain their old drivers). This is work only the companies making GPUs can afford, without it, the drivers will stop working. There’s probably also a reason Android took the Linux kernel but stripped it of X11 acceleration and developed its own GUI stack. Canonical tried to get rid of X years ago by developing Mir and a bunch of small projects tried to create an X12 of sorts, but neither took off. Almost everyone is now working on Wayland when it comes to alternatives.
There are people who don’t care. Some GUIs will always be X11 and they can use X11 as long as the drivers and tooling still support it. Most X11 programs have worked without modification for years through XWayland, and I expect future applications to still work fine through some kind of reverse that’ll turn Wayland programs into X11 programs.
Thank you for the great explanation. I haven’t been keeping tabs on this subject so I’m a bit ignorant about the limitations of X11 advantages of Wayland.
For me X11 just worked and I was happy with that. I want aware of the security issues either.
The problem is, X11 doesn’t really work fine for modern usage.
It kinda falls apart with multiple monitors, especially when they require different scaling or refresh rates (or both), HDR support would be incredibly difficult to add, it’s buggy, it’s virtually impossible to maintain or add features. Often fixing a bug breaks things, because the bugs in it are so old that programs have actually been designed around them, or even to utilise them.
Now imagine trying to adapt X for use with VR/AR displays and all the differences in window management that’ll be required for that.
It’s a security nightmare. Any app can see what any other app is doing. That means that if you have a nefarious app, it can scrape any information on your screen, without even needing root privileges. Then there’s a load of other vulnerabilities.
The developers have moved to Wayland because X is structurally unfixable.