Thinking about accessibility

17 August 2006

Time again I think for you to take another look inside the CTO's brain to see what he's considering for the next major version of DXperience, 6.3. (Yes, I know, DXperience 6.2 is not quite out of beta, but we've got to consider the big picture here, so bear with me.)

Thanks to everyone who responded to my previous thoughts about exceptions and about support for VS2002. Your comments were extremely valuable, and suffice it to say, I'm going to push for a much better exception handling story and for dropping VS2002, preferably using latex gloves with the latter so I don't get contaminated with it.

This time I want to think about accessibility and Section 508. My thoughts here also apply to our Delphi VCL products, so wake up there at the back!

Section 508 is a clause in the Rehabilitation Act to "require Federal agencies to make their electronic and information technology accessible to people with disabilities." Furthermore, "[t]he law applies to all Federal agencies when they develop, procure, maintain, or use electronic and information technology. Under Section 508 (29 U.S.C. 794d), agencies must give disabled employees and members of the public access to information that is comparable to the access available to others."

In other words, if you sell your software to a Federal agency, it must comply with Section 508. The Feds have a lot of money, so selling to them is attractive, so it's worth making the effort to make your software accessible to people with disabilities. Since Section 508 also applies to Federal agencies when they develop their own software, presumably with third-party UI components, we, Developer Express, are also paying attention.

Luckily for us, Microsoft have done most of the heavy lifting. They provide, as part of the operating system, tools like the Magnifier, the on-screen keyboard, and the Narrator (this speaks text from the application you are using). You can access these tools from the Accessories | Accessibility menu from the Programs menu. They're pretty basic, but other companies produce better, more full-featured applications.

There are other features like a high-contrast color scheme and sticky keys. Vista is much improved in this area too: it has the "say what you see" feature, so that you can drive an application by reading out loud the various options on the screen and the mix of speech recognition and accessibility means that the option you speak is activated.

So, it pays to program for accessibility, right? Well, yes, but. Whaddya mean, but? Well, there's Vista, you see.

Windows comes with an accessibility API, which can be thought of as being in two parts. There's the API you need if you are going to write a screen magnifier, a text to speech program, and so on (Microsoft call this MSAA, Microsoft Active Accessibility), and then there's the API you need for your controls so that they can respond to accessibility events (Microsoft call this UI Automation).

Pre-Vista, both of these were COM-based APIs. Yummy, but when the going gets tough, DevExpress get going. Vista, though, via WinFX, makes UI Automation part of a managed framework. Oh joy. And being as it's WinFX, it's a .NET 2.0 managed framework (well, OK, .NET 3.0). Oh double joy.

Yes, once again, we have a problem of backwards compatibility and what to support.

So, a question for you all. Are you using our accessibility support now in your applications? Do you plan to? If your plans are in the future, would a .NET 2.0-only solution suit you? If you use our support at the moment, what if we froze it as it stands, and put all our efforts into the WinFX accessibility support? What about the Delphi crowd? Do you miss not having accessibility support in our VCL components?

I warn you, this time, the situation, and hence the decision, is not so cut-and-dried. Whereas before I knew what to do, this time I'm not so sure.

(Aside. I forgot to mention the first time I posted this: Raymond Chen talked about accessibility being for everyone today.)

Free DevExpress Products - Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We'll be happy to follow-up.
No Comments

Please login or register to post comments.