I had an interesting discussion with a good friend of mine recently about web accessibility that led her to a blog post and got me thinking. According to Human Resources & Skills Development Canada in 2006 (I was unable to find more recent numbers) approximately 1 in 7 individuals reported having some form of disability. To put this in perpective: If we treat that as a more or less global average – most of the statistics I pulled support this assumption – and we consider that as of September 2011 Facebook reached 800 million users then nearly 114 million of Facebook’s users have some form of disability. So what can we as developers do to make our services more friendly to these individuals?

I am going to put some bounds on this article before I start so it remains focused. First I am only going to cover applications with a user base that is representative of the HR&SDC statistics. Software that is designed solely for use with assistive technologies and software that is unlikely to be used by someone who requires assistive technologies are excluded. Second, I am primarily going to discuss web accessibility and only briefly touch upon issues relating to other types of software. Finally understand that I in no way believe anyone should be excluded (I got enough of that getting picked last in gym class) but I am writing this article as a realist. As developers we try and maintain a delicate balance between necessary functionality and releasing/finishing a product taking into account that we are operating with limited resources.

Existing Standards

The World Wide Web Consortium maintains the Web Accessibility Initiative(WAI) which is a collection of best practices for designing web content compatible with assistive devices. Microsoft maintains the windows accessibility guidelines for windows development and Apple maintains similar documentation for OSX and their various iDevices. If you are going to be developing for any of these platforms at the very least I recommend skimming these documents.

Governments tend to maintain their own software requirements as well; in Canada it is covered by the Canadian Human Rights Act of 1977 and in the States Section 508 of the Workforce Investment Act of 1998. A pretty extensive list with links to the various government policies can be found on the WAI policy page.

What Are Our Responsibilities?

Consider a service such as Yahoo’s flickr: to what extent is it possible to make it accessible to an individual who is visually impaired? Flickr already does a decent job of adhering to the WAI guidelines but there are some limitations. An image’s description is dependent on the uploading user, if that user decides not to enter a textual description then what use is a screen reader? Google’s YouTube suffers from similar issues; even though they support closed captioning it still relies on the end user providing a correct text transcript.

There are some tools available to us that can help us out. A few web frameworks provide extensions that have a certain amount of support for the WAI guidelines. CSS provides support for the @media directive for styling and arranging content so it behaves better with a selection of assistive devices. We can do our best to encourage our users to provide a textual description of multimedia content they upload to our service. This is a limited list but the tools are available to make our lives a little easier while making our software more accessible.

Testing & User Feedback

There are numerous existing tools available for automatically testing: most compare your sites DOM against the W3C’s best practices, or render your sites colours as viewed by someone with a color vision deficiency. Web applications that dynamically modify the DOM and improper form layout are only some of the things these tools won’t catch. Like any automated testing these can only take you so far and are no substitute for end-user feedback and decent QA.

How many of us have actually tried using the things we develop through an assistive device? For that matter how many of us actually have access to an assistive device? You probably answered ‘no’ to those questions; unless you actually have a disability that requires an assistive device and are covered by insurance they are prohibitively expensive. There are a few third party organizations that offer testing for accessibility (I did have trouble finding any in North America), a service like AbilityNet in the UK (not an endorsement just and example) could potentially provide incredibly valuable feedback.

Something to be Conscious of…

Perfect accessibility for everyone is certainly a noble goal; unfortunately I am not really sure if that is attainable given current standards. During the discussion I had the other day I presented the hypothetical case of an individual with tetraplegia and both vision and hearing impairment. Initially I approached this from a how do we even start designing for this? What assistive technologes would this individual use? This may not even be something we can reasonably accomodate; but consider that there are assistive technologies that don’t require special consideration during development. That particular case is rendered completely moot with thisthis and this.

Software development is already unnecessarily complicated and pretty much sucks: we deal with web security issues, localization and character encoding, scaling, cross browser compatibility, and getting your project to work in the first place just to name a few. Unfortunately this is not an easy issue and the question of “How many resources to devote to accessibility?”is not one with an easy or consistent answer. Like all things though being conscious of the problem is a good first step and means we can at least consider it and plan for it during the development process.