Slashdot Mirror


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."

19 of 266 comments (clear)

  1. It's been bisected and confirmed by spitzak · · Score: 4, Insightful

    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.

    1. Re:It's been bisected and confirmed by spitzak · · Score: 5, Informative

      Goddamn that was painful, but I found the actual patch:

      http://cgit.freedesktop.org/xo...

      I would say it is rather shocking that this Peter Hutterer actually did about 90% of the work, then posted something that is not a clue as to how to see the answer.

      And that the original poster (who I assume made this Slashdot story) did not post any followup for 3 months, probably leading Peter to forget all about fixing this.

    2. Re:It's been bisected and confirmed by bill_mcgonigle · · Score: 5, Insightful

      I'll bet this is going to be patched in the git repositor within a half hour.

      Reverting would be easy - I'm don't know enough about X to understand if the IsMaster(mouse) test can easily be augmented to not break StickyKeys, but fixing a null pointer dereference is something that needs to be done.

      But for just the users' use case (and people will hate this) - this is where paying somebody to deal with the problem for you comes in.

      A decent hacker would have done the work you did in the first hour, created a distro patch in the second, and put up a repo with the new packages in the third. Throw in an hour for testing.

      It seems likely that there are enough people affected by this that if they all threw in a dollar it would have been done by the next day. What we might have here is a community coordination problem, not just a software bug.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  2. Switch to wayland by Anonymous Coward · · Score: 4, Funny

    They might not have implemented that bug yet.

  3. Re:What did you expect? by roc97007 · · Score: 4, Insightful

    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.
  4. Contact the Linux Foundation by Anonymous Coward · · Score: 5, Informative

    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.

    1. Re:Contact the Linux Foundation by VortexCortex · · Score: 4, Insightful

      and let them know that this is a bit of a black eye against Linux.

      Or, you could recognize TFA as the hit-piece it is: Points to the Bug, knows what a bug tracker is, doesn't use the bug tracker to fix the issue: Open a new duplicate bug to get it re-triaged and noticed by more than just the bug assignee. Escalate the issue to other devs. It's not like the devs are saying: NO WE DO NOT GIVE A FLYING FUCK ABOUT DISABLED PEOPLE GO USE MICROSOFT OR APPLE, ANYTHING BUT A FREE AND OPEN SOURCE OPERATING SYSTEM.

      This is a tempest in a teapot with sizable negative PR spin. I do not negotiate with terrorists. I do not speak for everyone, but to the users who jump to shaming tactics instead of resolution options: Fuck you, I don't give a flying fuck about your persecution complex. I would rather not deal with such disgusting shit-stirrers.

      For future reference, Submitter, if you're reading this: How to ask a question the smart way. -- Everything here also pertains to bugs or questions like "Why isn't this fixed yet?". The answer? You reap what you sew.

    2. Re:Contact the Linux Foundation by wvmarle · · Score: 4, Insightful

      So you report a bug the way you're supposed to, it barely gets attention, and you think re-reporting it the same way will suddenly do the trick?

      Well repeated often enough it may - but it also shows the failure of devs to use their own bug tracking system.

  5. A few options by raymorris · · Score: 5, Insightful

    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.

     

    1. Re:A few options by Todd+Knarr · · Score: 4, Insightful

      I do know that even as a non-disabled user, the behavior Peter describes as "per spec" (that is, mouse buttons are not keys for the purposes of releasing the sticky keys) is counter-intuitive since the modifier keys interact with mouse buttons the same way they do with non-modifier keys (ie. Control modifies selection with mouse clicks the same way it modifies selection with the keyboard). Given that normal interaction with both non-modifier keys and mouse buttons, I'd expect instructions about how modifier keys behave to also apply analogously when both non-modifier keys and mouse buttons (but not mouse movements) are involved. Either that or I would expect modifier keys to not interact with mouse clicks the same way they do with regular keys.

  6. Re:As someone who is Handicapped by H0p313ss · · Score: 5, Funny

    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
  7. Re:RMS mentions a comparable situation by Charliemopps · · Score: 5, Funny

    The open source community is pretty cool. Simply getting together in the right forum would likely get the right people interested in helping you. Hell I'd start with posting to Slashdot... hey... WAIT A MINUTE WE'VE BEEN HAD!!!

  8. Re:What did you expect? by jrumney · · Score: 5, Informative

    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.

  9. Re:RMS mentions a comparable situation by JustOK · · Score: 4, Funny

    IF they have a disability that requires them to use sticky keys AND if sticky keys don't work THEN exactly how do you expect them to code the fix?

    --
    rewriting history since 2109
  10. Re:RMS mentions a comparable situation by wvmarle · · Score: 4, Insightful

    The sad part is that it is a known bug, that got introduced breaking a perfectly working feature, and is still not fixed. It is not a new feature they're asking for, just to retain something that was always there.

    This is programmers not doing their job - and it being FOSS that is distributed for free is irrelevant as it's more than a hobby-level tool we're talking about. It's production-level software, and essential to the operation of a large number of computer systems.

  11. The bug is asking for the wrong fix by tlambert · · Score: 5, Informative

    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

  12. Re:Fix it yourself you by jones_supa · · Score: 4, Insightful

    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.

  13. Re:RMS mentions a comparable situation by WaywardGeek · · Score: 4, Interesting

    Kudos to RMS for believing accessibility is a human right, and taking action personally to promote accessibility in Linux. Fixing accessibility in Linux is a mess, but if we can get enough people involved, it's doable. This is the mission of multiple efforts, and the one I'm involved in is the ACF (Accessible Computing Foundation). The free software movement, and the goal of people with disabilities taking control of their computing environments are well aligned. GNU/Linux provides a platform where at least in theory any and all accessibility issues can be corrected, unlike Windows and Mac OS X.

    Unfortunately there are considerable obstacles to "fixing" accessibility in Linux. I believe they can be overcome if enough people come together to make it happen, but there are huge challenges. There are also people who devote a lot of their lives to improving the situation, often for free or very low financial incentive. I spearheaded the 3.0 release of Vinux, which is Linux for the Vision Impaired. I fixed a dozen or so accessibility bugs, but the right fix in many cases would involve major changes to GNU/Linux. I'll list a few.

    The accessibility API in GNU/Linux, atk/at-spi, should have shared more functionality with Windows. For typical corporate and FOSS anti-Windows reasons, the accessibility stack was built intentionally in a Windows incompatible way. The result is that accessibility in Firefox and many other major applications never works as well in Linux as it does in Windows. It simply is not reasonable to make every software vendor do all their accessibility coding N times for N operating systems. There is even an effort called Iaccessible2, which is basically a FOSS accessibility stack for Windows, which the creators seemed to hope could also work for Linux. The code was even donated to the Linux Foundation. However, there was never any money or motivation in FOSS land to actually port the software to Linux, SFAIK. Building a single accessibility API that works in Windows, GNU/Linux, Android, and Mac OS X would go a long way towards fixing accessibility in all of those places, but especially in GNU/Linux, since it is usually the OS vendors put the least effort into. As it stands, few GNU/Linux distros are able to keep FireFox and LibreOffice accessibility working.

    Then there's the problem of Linux being a multi-headed Hydra monster with no one in charge. At Microsoft, Bill Gates took a personal interest in accessibility, and that's all it took for the entire company to take accessibility seriously. In GNU/Linux land, RMS also takes a strong personal interest in accessibility, but it's not like most of the devs work for the guy. RMS can make his case, but when your boss is asking for prettier GTK+ widgets in Gnome 3 and you're late delivering, accessibility fixes fall by the wayside. When we are lucky enough for a patch to be developed, many times the GNU/Linux authors refuse to include them, because the "fix" is not perfect. For example, I added accessible descriptions to pixmaps in GTK+, which enabled blind users to hear 'star' for a star icon in a table containing pixmaps. The devs could not decide if pixmap was the right place for this accessible description, enabling them to justify doing nothing, and the continued lack of support for accessible icons was the result. It saved them a few hours of work in testing, which was their real priority. Multiply this asinine situation 100X, and you begin to understand why making Linux accessible is hard. GNU/Linux land seems to take pride in making it hard to fix accessibility, because we make it almost impossible to override any given stupid author's decision not to support accessibility. I should be able to patch GTK+, and have that patch automatically distributed to every user of every distro who believes my accessibility patches are something they want. Instead, we've built a system where patches have to be accepted by the authors, and then distributed slowly over years to the stable distros. Stupid, stupid, stupid...

    --
    Celebrate failure, and then learn from it - Nolan Bushnell
  14. fix for Gentoo Linux by dweezil-n0xad · · Score: 4, Informative

    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.