Ask Slashdot: How To Handle Unfixed Linux Accessibility Bugs?
dotancohen (1015143) writes "It is commonly said that open source software is preferable because if you need something changed, you can change it yourself. Well, I am not an Xorg developer and I cannot maintain a separate Xorg fork. Xorg version 1.13.1 introduced a bug which breaks the "Sticky Keys" accessibility option. Thus, handicapped users who rely on the feature cannot use Xorg-based systems with the affected versions and are stuck on older software versions. Though all pre-bug Linux distros are soon scheduled for retirement, there seems to be no fix in sight. Should disabled users stick with outdated, vulnerable, and unsupported Linux distros or should we move to OS-X / Windows?
The prospect of changing my OS, applications, and practices due to such an ostensibly small issue is frightening. Note that we are not discussing 'I don't like change' but rather 'this unintentional change is incompatible with my physical disability.' Thus this is not a case of every change breaks someone's workflow."
The prospect of changing my OS, applications, and practices due to such an ostensibly small issue is frightening. Note that we are not discussing 'I don't like change' but rather 'this unintentional change is incompatible with my physical disability.' Thus this is not a case of every change breaks someone's workflow."
From The Law of Success 2.0:
RMS: So if I'm using the free program and I make a change in it, which I know how to do, then I could publish my modified version and then you. Perhaps you're not a programmer; you would still be able to get the benefit of the change I make. Not only that, you could pay somebody to change the program for you, or you could join an organisation whose goal is to change a certain program in a certain way, and all the members would put in their money, and that's how they would hire a programmer to change it.
familiarity with being handicapped.
Somebody has already narrowed the problem down to specific patch:
Comment 7 Peter Hutterer 2014-01-16 05:43:43 UTC
bisected to this commit:
commit 11319a922575f1da1d3c5774728c0dee12bab069
Author: Peter Hutterer
Date: Thu Oct 11 16:03:33 2012 +1000
xkb: ProcesssPointerEvent must work on the VCP if it gets the VCP
It would help if that number was a link to the git log.
They might not have implemented that bug yet.
I'll give you that this bug carries a tad more weight due to what I would think is a large impact, but the usual "no one is fixing this bug" answers apply:
- do it yourself (I get that this is often not an option, but including for completeness)
- convince someone else to do it
- pay someone to do it
- find some workaround
I think OP is trying to do the second one with this article. Perhaps someone will read this and be embarrassed enough to fix it.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
I think it's reasonable to believe that an Accessibility feature continue to work. And I think it's in the best interests of the Linux community for that to happen.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
I agree. Last I heard, we *wanted* people to use Linux on the desktop.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
Some distros are supported for a long time, like CentOS, Ubuntu LTS and others (I dont' know them) and debian is half-decent with three years.
So it's easy to install a distro based on Ubuntu 12.04, you get support till 2017 so that buys you time till the bug is fixed! (or even some Wayland and graphics driver that work well enough, if the accessibility feature is implemented)
Debian wheezy uses Xorg 1.12.4 (I've just checked) and works till 2016, it has many derivates too (like Crunchbang)
I don't know too much about the rpm world, if not for CentOS, it is dated but has very long support. till 2020.
I am incapable of fixing it. (and I have a Bachelors degree of IT/CS) and I'll assume the person posting can't fix it. An upstanding member of the community NEEDS to fix this. I am ashamed over this.
Basically what you want is to escalate this issue so that it gets more attention. As this affects people with disabilities I suspect you may get some results if you try to contact the Linux Foundation, who may then be able to twist a few arms or throw some resources at the problem as needed. You could, for example, point this very thread out to "pr@linuxfoundation.com" and let them know that this is a bit of a black eye against Linux.
So far, we know that Peter caused the change, Peter knows that, and Peter knows how to put it back. Peter isn't sure that it's broken since it now follows the written spec. Ideally, we'd like Peter to fix it, but for that we need to convince Peter that the new behavior is wrong and it SHOULD be reverted. If he chooses to, it will take many seconds to revert the change.
What I'd do next is find the written documentation of the behavior in earlier versions, in Windows, and OSX. YOU said they all work the other way, but the spec says otherwise. So prove your case by linking to written documentation. When you post the links, mention "the principle of least surprise", a term meaning that users should not be surprised by the behavior of the software.
Also, right now ONE person on the planet has said they don't like the new behavior. If EVERYONE in a large group is having a problem with it, a few could post saying so. I'm sure there are forums and such related to accessibility, so ask around. Find out for sure, are other people reall having great difficulty with it? If so, will they post in the ticket?
Then mail Peter and request that he look at it. You could ask how much would be a fair contribution for his time spent looking into it. (Answer - about $20 - $50).
If Peter doesn't respond, email the project maintainer, mentioning that Peter seems to be unavailable and asking that the maintainer look at it.
If those two options fail, that single-line change is so small that any Linux programmer could compile a copy for you with it reverted. It would only take a minutes. Two years from now, if an important update comes out, someone could easily do the same with the new version. Obviously that's less desireable than getting the upstream source fixed, but it fixes YOUR problem.
Sometimes it isn't an option because your fix gets rejected (or left to idle in an obscure bug report)
For example, one build utility had a bug where it checked for the presense of a compiler, but not if it was functional. The fix was rejected because the build utility doesn't check path - despite the fact that it does so for a different compiler. (Explicitly defining which compiler to use defeats the purpose of using said tool in the first place - I'd just use Makefile instead.)
Did you know it took 10+ years for Mozilla to fix the alert() denial loop? That bug is older than Mozilla itself, and the most obvious fix of "checkbox to stop further dialogs" was dismissed as a hack (compared to the destructive hack of force-killing Mozilla.)
So far 13 posts, and most of them are unhelpful drivel.
The worst being the posts that suggest the disabled should cough up the money to pay for a fix or fix the problem themselves. It would be rough justice to put these posters on an SSI budget and see how well they fare.
I agree. Last I heard, we *wanted* people to use Linux on the desktop.
That's just a rumor that the Gnome guys would take issue with.
XML is a known as a key material required to create SMD: Software of Mass Destruction
It should be the job of whoever made the change that broke the system a year ago.
We defend Linus going postal on someone for breaking the user interface about music (or whatever that was last year), but are supposed to accept some douche breaking the ability of handicapped people to use their keyboard?? That's fucked up, with no pulling the punches.
I've used Linux various times over the years, and my daughter's laptop has Linux Mint on it. I'm not a programmer or Linux guru, and have never claimed I was. I also don't particularly like how some in the the disabled community have subverted the Americans With Disabilities Act. But I will call bullshit on this type of bullshit every time.
Thanks for the response.
If you think I voted for Trump because of this post, you're wrong. I voted for Dr. Jill Stein of the Green Party. Again.
Read the bug report. The accessibility feature works. The submitter (who also happens to be the bug reporter) found a fairly minor subfeature (the ability for sticky key modifiers to act as lock keys) has been broken recently. I say fairly minor, because the only key this might be critical for in certain use cases is the Shift key, where a separate Caps Lock is already available. Exaggerating the issue by claiming it makes accessibility on Xorg unusable and bitching on slashdot because its been a whole 11 weeks since he found the problem and noone has released a fixed version yet is just grandstanding.
Read the bug report. The accessibility feature works. The submitter (who also happens to be the bug reporter) found a fairly minor subfeature (the ability for sticky key modifiers to act as lock keys) has been broken recently. I say fairly minor, because the only key this might be critical for in certain use cases is the Shift key, where a separate Caps Lock is already available.
The bug is asking for the wrong fix
Different modifiers have different combinatorial effects. Caps Lock is not necessarily Caps Lock, in other words. I know that most Linux people hate them because they are cheap, and you have to do a "disable secure boot" dance to install Linux on them, but ChromeBooks, in particular, lack a Caps Lock key. Caps Lock is achieved by hitting both shift keys simultaneously.
If that isn't convincing enough, consider Alt-Gr vs. Right-Alt behaviour on international keyboards that report a USB HID country code of 00h.
While I was working on ChromeOS at Google, there were a number of obvious usability issues for the OS, but the majority of them stemmed from the need to upstream support into Linux, and the difficulty of doing this without involving an Alan Cox, Ingo Molnar, or similar personage when you were dealing with things which crossed area boundaries. Input is one of these areas, and it was rather difficult and roundabout to get support for non-adjusted raw system time stamps in evdev inputs, even as a non-default option.
Exaggerating the issue by claiming it makes accessibility on Xorg unusable and bitching on slashdot because its been a whole 11 weeks since he found the problem and noone has released a fixed version yet is just grandstanding.
I agree the issue is exaggerated, but mostly because I disagree about where in the input stack usability issues should be addressed. The usability belongs in the input stack, as does the internationalization, below the point at which events are reported to the console, or to X (or Wayland or whatever display server is handling the apps and forwarding the input events).
It's pretty easy to see where this breaks down by enabling "programmer mode" (meaning: disabling "secure boot mode") on a ChromeBook, and enabling root or other console logins. It's easy to see the shift-shift (or Caps Lock, if you plug in a standard USB keyboard) and internationalized input don't work the same on the console as they do in the graphical environment.
In general, the input stack in Linux has a *lot* of problems. A fun experiment to try is plugging in 3 or 4 USB keyboards, and playing with the Caps Lock; the light goes on or off on whatever keyboard you're playing with it on, but the actual Caps Lock state depends on whether you've hit the Caps Lock key on an even or odd number of keyboards, and the keyboard Caps Lock lights very quickly become desynchronized from the actual Caps Lock state (i.e. turning Caps Lock on on keyboard A lights the light on A, and hitting it on B turns it on on B, rather than off on A, even though the state is that Caps Lock is no longer in effect).
Similar issues occur when using sticky modifiers for usability, and when moving between virtual consoles with various modifier/Caps Lock/etc. states in effect.
I understand the idea that you may wish to explicitly allocate resources in a multihead environment, but the input stack really doesn't do that very well, either - these modifiers should happen in the input stream above a stream join as a resource allocate by a virtual console or display server, and not in the display server or the underlying driver.
Windows doesn't support multihead well (at all, for multiple sessions, without something like Citrix intermediating the process), but it also doesn't screw up on where it put the internationalization translation tables and the dispatch routines and the usability.
PS: In case you care, AFAIK, there are zero vendors who put the correct internationalization keyboard code type in the USB
Agreed. It's even worse when you realize just how many accessibility features exist in Windows - they've got almost everything, and you can expect them to work given there's high visibility of the operating system compared to most Linux distros. But of course people prefer to joke instead of accept the fact that Linux distros simply don't have the same level of support for accessibility features as seen in the proprietary systems, and that continual joking is why I don't bother with Linux for my own system anymore.
Small tweaks are doable, but even then you will get a lot of hassle. You will spend a good amount reading source code, setting up the build environment and after that maintaining your own fork if the upstream didn't accept your change.
For anything larger, you will also need to acquire a large amount of understanding how the particular system works before you can make the proper change. For example, good luck fixing a graphics driver bug (even if it looks like a simple glitch) if you do not know how graphics drivers work. Getting familiar with the bigger picture will take weeks or months.
Now, that does not mean that open source is not useful. The people familiar with graphics drivers (for example, Freedesktop and Mesa guys) can collaborate using open source. But they are experts in their field. If you are outside of this specific expertise, your best bet is usually writing accurate bug reports. You cannot go there and fix everything that is broken just because you have the source.
Try this sometimes. When you find a bug in open source software, take the responsibility of fixing it properly and sending the patch. Doooo it, walk the walk. The point is that you will notice how much work it all involves.
put this patch in /etc/portage/patches/x11-base/xorg-server/
stickykeysfix.patch
It simply reverts the problem causing commit and now sticky keys are released after a mouseclick on my system. I don't know if this introduces other bugs though.