Just like in real life, you can hire someone to do your programming taxes for you


Commenter denis bider considers accessiblity an altruistic endeavor and suggests that it would be more efficient to outsource accessibility to another company.

Sure, why not. Just like in real life, you can hire someone to do your programming taxes for you. If you would rather hire another company to come in and add accessibility support to your application, then more power to you.

Yes, accessibility is one of those altruistic things, but so too is not consuming 100% of the CPU all the time, or being usable at high DPI or color schemes different from the Windows default. Sure, you can write your program so it doesn't work at high DPI, and requires the user to use the Windows default color scheme, and consumes 100% of the CPU all the time, but each time you do this, you alienate another percentage of your audience. (Not supporting accessibility will cost you a pretty large audience, because governmental agencies usually have accessibility as one of their requirements.)

And don't be so sure that the audience that appreciates accessibility is just your test team and people with disabilities. It also means that people can't write tools that extract the text from your program or use voice recognition to control your program.

Comments (37)
  1. Gabe says:

    Does denis also consider elevators and curb ramps to be altruistic? It turns out that most accessibility improvements help "normal" people.

  2. John says:

    Kind of like outsourcing some smaller projects to Chinese firms.  Oops.

    [Looks like I retired the pre-emptive snarky comment too soon. -Raymond]
  3. That last sentence confused me. “It also means that people can’t write tools that…” What is “It”? From the context it seems like “It” is “accessibility”. Did you mean that LACK of accessibility would cause those limitations? Did you mean accessibility means you CAN write those tools? I would have thought so.

    Or have I simply gotten totally confused?

    Thanks.

    [Bad writing on my part. “It” is “assuming that the only people who care about accessibility are your test team and people with disabilities.” -Raymond]
  4. Devil's advocate says:

    > It turns out that most accessibility improvements help "normal" people.

    Or does it encourage them to be more lazy and unfit?

  5. Ivo says:

    Yeah, active accessibility is pretty cool. I used it to control the task dialog that shows up when you copy a file and there is a conflict. The "buttons" there are not controls with control IDs, so WM_COMMAND is out of the question. accDoDefaultAction works fine :)

    I have a question though – how do you test your app to be accessible? I am using Narator to verify the text and type for the different UI elements, but there is more to accessibility than that. Of course the standard controls should work fine, but I’m talking about custom or heavily subclassed UI.

  6. Scott says:

    I always feel bad for people told to add accessibility or internationalization to existing programs. If it wasn’t thought through, it can be nightmarish adding that sort of thing.

  7. Dave says:

    You mentioned the test team appreciating accessibility. Are there specific reasons for that, such as tools they use?

  8. Nicole DesRosiers says:

    Test teams frequently do UI automation, which requires them to be able to programatically identify the controls and what they do.

  9. Eric C Brown says:

    Microsoft has published AccChecker (http://www.codeplex.com/AccCheck) – a program that will inspect your program’s UI and find common accessibility problems.

  10. Teo says:

    I don’t know, this probably sounds like yelling at the wrong person, but Raymond, have you tried recent versions of Windows (recent like in Vista/7)? They don’t give a broken dime for custom themes. Same goes for Office 2007/2010. When I opened a bug against Visual Studio 2010 for the same issue, the VS team thanked me and promised that the next version will be better. Doh. Considering that the three biggest divisions of MS – Windows, Office, and Servers and Tools do custom themes wrong, why should I care? It is obvious that customers are OK – you have >90% of the market share.

    Just change the window color from control panel (mine is set to green). Offender #1 (by time needed to notice something is wrong): Windows Explorer. The very control panel you use to change colors breaks.

  11. WouldPidgin says:

    It’s a bit unfair to say that Pidgin "didn’t bother" to code for accessibility.  Pidgin is a cross-platform program that has been ported to Windows.  It CAN’T use native Windows controls.  It’s not a native Windows program.

    Under Gnome, which is built around the same GTK+ toolkit, Pidgin works perfectly well with all the Gnome accessibility features.  Just like Windows Live Messenger, a native Windows program, works with Windows features.  Nobody should find any of this surprising or unreasonable.

  12. Brainless Wreck says:

    "Under Gnome, which is built around the same GTK+ toolkit, Pidgin works perfectly well with all the Gnome accessibility features.  Just like Windows Live Messenger, a native Windows program, works with Windows features.  Nobody should find any of this surprising or unreasonable."

    I think it’s one of "no one bothered to add hooks for Windows accesibility features to libATK", or "Pidgin devs ignored ATK". From my understanding ATK, the GTK+ Accesibility Toolkit, actually implements most of the functionality by itself under unix platforms.

  13. "Under Gnome, which is built around the same GTK+ toolkit, Pidgin works perfectly well with all the Gnome accessibility features.  Just like Windows Live Messenger, a native Windows program, works with Windows features.  Nobody should find any of this surprising or unreasonable."

    Ah, but the Windows Live team never bothered to try to get Live Messenger to work under Gnome, whereas the Pidgin team decided they were going to make Pidgin work on Windows. If you’re going to port something, do it properly: I think the criticism stands.

  14. Marquess says:

    “It’s a bit unfair to say that Pidgin "didn’t bother" to code for accessibility.  Pidgin is a cross-platform program that has been ported to Windows.  It CAN’T use native Windows controls.  It’s not a native Windows program.”

    There’s nothing stopping custom GUI toolkits from using the native controls (or subclassing them). You only shifted the blame.

  15. Ken Hagan says:

    I’d hazard a guess that most of the benefits of making your program accessible come from the fact that you have to think about the UI from an end-user’s perspective. Far too few programmers ever do that.

    But yes, accessibility will assist *any* user who is "disabled by their current environment", such as by noise or the lack of a usable keyboard or mouse or a lousy screen. The target market is much larger than "denis" might think.

  16. Marquess says:

    Hmm… isn’t accessibility and stuff more like *paying* your taxes? Now, if I could find someone to outsource that to …

  17. Eric Mason says:

    The people that think lack of accessibility has low impact on their business just frustrates me…

    A recent employer, who produces enterprise software, announced that no customers ever complained about the fact that the corporate web site was, thanks to the marketing department, entirely inaccessible to the visually impaired (tiny fixed fonts, unable to override CSS, fancy flash tied to mouse movements, etc).

    It never dawned on them that an impaired *potential* customer coming to their site would just throw up his hands and move on… to a competitor.

  18. James Schend says:

    I would try this way of promoting accessibility: if you code your app to be accessible, you inherit new features from the OS "for free". That’s not true if you use custom controls, and don’t bother implementing accessibility.

    For example, your well-programmed Windows 2000 program now supports handwriting recognition and speech recognition in Vista and Windows 7– for free.

    If Microsoft decides in the future to add a OS-wide spell-checker, like OS X has (and manages to traverse the monopoly minefield), your application with a simple text field now has spell-checking– for free.

    You didn’t have to do jack to gain those features, but you *can* put them on the outside of the box to appeal to customers.

    I use Live Messenger because Pidgin (which I used to use) didn’t code for accessibility, which means it didn’t work on my tablet for text recognition and it didn’t work with Vista voice recognition. That’s a competitive advantage given to Live Messenger, because the competition didn’t bother with accessibility.

  19. Eric C Brown says:

    @Miral:

    You can dictate into the start menu, as you’ve found.  Whenever dictation is enabled, the underlying SR engine has to make a decision whether to treat the incoming audio as a command or as dictation.  Unfortunately, it has to make this decision fairly early in the processing pipeline, and sometimes it gets it wrong.  If you say ‘Computer show numbers’, then the SR engine knows that the audio can’t be dictation, and should always work.  If not, leave a comment on my blog.

  20. njkayaker says:

    A recent employer, who produces enterprise software, announced that no customers ever complained about the fact that the corporate web site was, thanks to the marketing department, entirely inaccessible to the visually impaired (tiny fixed fonts, unable to override CSS, fancy flash tied to mouse movements, etc).

    It never dawned on them that an impaired *potential* customer coming to their site would just throw up his hands and move on… to a competitor."

    Nor does it dawn on people that these kinds of fancy sites are often annoying and slow after the first use. (That is, fancy stuff often is impressive in demos where people don’t use the site and irritating outside of the demo).

  21. Drak says:

    Ray, you got ‘altruistic’ wrong twice in the post (but the first commenter got it right).

    [Fixed. Thanks. -Raymond]

    I always love people who say accesibility is easy to implement in web sites. They don’t realize that the marketing department wants a flashy interesting moving zooming awesome website, and that then the programmers need to make another text-based website that still looks somewhat slick. That does take time you know… and time is money.

  22. Nick says:

    … (but the first commenter got it right).

    And so did denis bider…

  23. James Schend says:

    "Ah, but the Windows Live team never bothered to try to get Live Messenger to work under Gnome, whereas the Pidgin team decided they were going to make Pidgin work on Windows. If you’re going to port something, do it properly: I think the criticism stands."

    Ding ding ding.

    If you’re going to bother to make a Windows version, make it *right*. If you’re not going to do it right, then don’t bother doing it at all.

    And not only does Pidgin do it wrong, they don’t even care that they do it wrong– all my bugs about missing accessibility hooks were summarily dismissed. (I can’t remember if they were actually closed, or merely ignored. Either way, there was no positive action.)

  24. Miral says:

    @James:

    I’m not sure that promoting speech recognition would be much of a win.  I tried out the speech recognition in Win7 shortly after I got it, just for a laugh, and even after quite a bit of training it was still utterly hopeless at dictation (commanding worked reasonably well though).  Could just be my accent, of course.

    Though one thing that struck me as an Epic Fail is how the tutorial program instructs you to say "Start" followed by "Show Numbers" to get numbers for all your taskbar buttons.  When I tried this outside of the tutorial, it opened up the start menu ok but then *typed* "show numbers" in the search box.  So clearly someone forgot an important QA step. :)  (I found it funny, but it’s likely this would annoy someone who was actually depending on speech input.)

  25. Tim G says:

    Just like real life you should only pay the taxes that you have to. If you want to sell your product to anyone, anywhere in the world then you will have to pay lots of different taxes.

    On the other hand if you have a more specific set of customers then only pay the taxes that apply to them. Having a good relationship with your customer and understanding their requirements and setup will help make you more tax efficient.

    Writing new code if you miss a feature is cheap, maintaining and testing unused code is very expensive.

    Of course, if you use the standard APIs correctly Windows will pay many taxes for you :)

  26. Adam says:

    Unfortunately, until it becomes illegal to produce software that denies access to a subset of the population (disabled, etc) it will be commercially driven – there is nothing wrong with this as products target subsets all the time.  As Raymond points out, more-fool-you if its a large subset, however, not everyone creates software for the general public.

    Building regulations only include disability considerations because of political and social pressure – it is now widely accepted as bad form if you ignore these needs (and rightly so).  Software is not (yet?) subject to this in its entirety (though I would say larger vendors cop flak for it :).

    Harsh truth: its altruistic depending on circumstance – if you are not full abled (for whatever reason) then you will be cut from doing certain things.

  27. ender says:

    And not only does Pidgin do it wrong, they don’t even care that they do it wrong– all my bugs about missing accessibility hooks were summarily dismissed.

    That’s probably because it’s not really up to Pidgin developers to fix these bugs. These are bugs in ATK (which is part of the GTK+ toolkit), and there are open bugs about accessibility in it’s bugzilla, however there’s simply nobody around to fix them (when you have two developers that are even interested in making the toolkit work on Windows, both of which also have other things to do, some features will suffer).

    There’s nothing stopping custom GUI toolkits from using the native controls (or subclassing them). You only shifted the blame.

    Not that easy to do when the toolkit never was intended to run on Windows in the first place, and was only ported by somebody who wanted to run his favorite program on Windows. Sure, if you have infinite time and resources, everything is possible, but that’s usually not the case with open source projects.

  28. Adam says:

    "Sure, if you have infinite time and resources, everything is possible, but that’s usually not the case with open source projects."

    But rather poetically, was one of the original goals of open source.

  29. Alexandre Grigoriev says:

    "I report a bug for Inkscape, and they pass-the-buck to GTK, who passes-the-buck to GTK+ and three years later, the bug still isn’t fixed. I report a bug to Pidgin and they’re too lazy to even pass-the-buck, they simply just ignore it."

    FWIW, Microsoft is not known for promptly fixing UI bugs, either… If it doesn’t crash and burn, forget about it. They more likely to code entirely different UI, with new bugs.

  30. James Schend says:

    @Miral: It might not work perfectly, but it’s better than a $500 dictation package was 5 years ago, so Microsoft giving everybody the feature *for free* is certainly nothing to laugh at.

    @ender: This is my fundamental disagreement with open source. I like the idea of open source, and I use many open source projects– but whenever there’s "hard work" to be done (i.e. boring accessibility), the attitude is nothing but pass-the-buck.

    I report a bug for Inkscape, and they pass-the-buck to GTK, who passes-the-buck to GTK+ and three years later, the bug still isn’t fixed. I report a bug to Pidgin and they’re too lazy to even pass-the-buck, they simply just ignore it.

    Look, as an end-user, I don’t give a whit whether the bug is in Pidgin, or in GTK, or in some-random-library-I’ve-never-heard of. All I want is someone to put their foot down, say "the buck stops here" and fix the damned thing.

    The number of bugs I’ve reported to open source projects is in the hundreds. The number of those bugs that were triaged is in the dozens, maybe… the number of those bugs that were fixed? I can count on one hand.

    Anyway, I apologize for the off-topic rant. Just wanted to point out that Live Messenger does have a competitive advantage over Pidgin, regardless of how Pidgin is developed or what that support isn’t present.

  31. Peter Kay says:

    I’m sure this is snarky, but I’m going to mention it anyway : Microsoft aren’t exactly good at handling high dpi solutions either.

    Vista does support variable dpi, but it’s a system wide setting and still applies when connecting via RDP – this looks *awful*.

    I also disagree with the statement to ‘do something right, or not at all’. Given that logic a) various parts of Windows would never have been released and b) there would be no viable multi IM client on Windows (pidgin is the only client worth a mention, currently).

    I’ll be the first to admit pidgin has flaws, but currently it’s the least worst client out there. I only bother using live messenger if I have to use a webcam.

    I would also note that accessibility is not always altruistic – in some countries it is a legal requirement. I’m not a lawyer though – you can investigate that can of worms yourself.

  32. Drak says:

    @Peter Kay

    I use Trillian (don’t know if i’m allowed to mention the name here Raymond, feel free to delete the post if it is against policy) as multi-IM client in windows. It seems to work just fine.

  33. Peter Kay says:

    @Drak

    I’m aware of Trillian and Miranda – the basic problem is : they suck. I hate the UI and they usually have bugs or are lacking in functionality.

    Windows Live Messenger is a key example of how not to design a product for someone that uses IM more than lightly. It’s obviously intended for people that have only one or two conversations going at the same time and takes up vast amounts of screen space.

  34. ender says:

    @James Schend: accessibility is just one of the many features that don’t work with GTK+ on Windows. There are several much more pressing bugs, but so far nobody had the time to fix them (the two most visible are window hints, which when you try to use them will most likely cause your windows to randomly hide behind other windows, and theme support, which so broken in GTK+ 2.18 that it’s disabled, because otherwise nothing is visible).

  35. DWalker says:

    Adam made a great point:  One of the stated goals of open-source programming is that there is a vast array of talent, and almost limitless resources, to draw from.  

    But, only the work that someone decides is interesting or important ever gets done.  I read a lot of entries and bugs in the Bugzilla bug-tracking system for many years, when Mozilla was first being developed, a long time ago.  One of the persistent problems was finding someone with the time, inclination, and skills to add a missing feature, fix a certain bug, or redesign a broken and messy part of the code.  

    Closed-source has its advantages, one of which is that the "bosses" can assign tasks to the programmers to get things done.  Of course, nothing is ever perfect, but I don’t like hearing the common rants that open source development is always better for everything in the world.

  36. David Moisan says:

    @James Schend, DWalker and others:

    The Linux personage, Eric S. Raymond, fielded a question on his blog earlier this year from a blind user.

    The blind guy asked Eric if support for blind users (screenreaders, voice, etc.) would ever be improved in Linux.

    Eric told him, I am paraphrasing, that there were so few blind users, compared to "regular users", that it would not be worthwhile.  When the regular users were taken care of, then blind users could be accommodated.

    Eric knew full well that "bolting on" accessibility after the fact would be nightmarish, but he said it anyway.  

    That is why I’ll never use Linux if I have another choice of tools.

    About the DPI bugs:  I have concluded that most third-party software cannot deal with high DPI settings above 125%.

    Just another reason I would flame that person our Raymond talked about who changed personal settings around to make them "right".  Anyone changing my monitor’s resolution…would be sorry.

  37. violet says:

    <blockquote>"Sure, if you have infinite time and resources, everything is possible, but that’s usually not the case with open source projects."

    But rather poetically, was one of the original goals of open source.</blockquote>

    One of the original goals of open source development was to bring about a mathematically impossible situation?

Comments are closed.

Skip to main content