In my recent project I had to work on a ‘not so hot’ topic of developing accessibile UIs for an already existing application. Although my fellow developers thought that I was stuck in a topic which doesn’t give the usual development kicks(!), I enjoyed every bit of it and each step taken to make the UIs accessible had all the challenges (infact more!) of developing any software product. Apart from the normal accessiblity standards which are described in http://www.sapdesignguild.org/editions/edition9/acc.asp and the usual http://www.section508.gov/ I would like to talk about the process and the approach which in my opinion works really well towards developing a really good accessible product including some of the key points which a developer must keep in mind while developing a product/solution.( Even though all webdynpro UIs are by default accessible :)) It makes a lot of sense according to me to include accessibility testing at the end of every software development life cycle apart from the normal functional testing. This test should be done by a UI/Accessiblity expert who understands what exactly is meant by UIs being accessible (believe me it is extremely difficult to imagine the problems). Just to give you an example a server roundtrip on selection of a choice box would seem to be perfectly okay for us developers but ideally to make things comfortable from the accessiblity point of view each choicebox should have nice little button next to it which would be responsible for making the server roundtrip. Just imagine a blind person selecting a value in the choice box – he has no clue what’s going on after the selection. It is nice to collect all the acessiblity issues for the product/application by the UI experts and then discuss each one of them with the developers. (Preferably the ones who developed the UI). The smallest issue could turn out to be a technology challenge. After this an estimate can be made for the development effort and then a small implementation-test cycle can start. A very logical question by any developer would be – Why can’t we combine this with the actual product development? Believe me it is extremely difficult to keep the accessiblity issues in mind during the actual product development for any developer, so if you really want a high quality accessible UI you need to keep a plan for special development activity towards the end of the product development. If you really want your customers to enjoy a truly accessible product/solution then I would definitely recommend the above process to be included in your project plan. Some of the general concepts which can be kept in mind while developing UIs so that they are accessible are:
Every image should have an alternate detailed description which a screen reader can read.
Every server roundtrip should be on a click of a dedicated button.
If a UI action does not change the layout of the screen but only one or more content values then the user must be notified the changed content in the accessibility mode.
All tables/trees should have values which are read by the screen readers.The actions which happen on the trees (collapse/expand nodes) and tables(select, highlight) should be made clear not only from the visual perspective but also from the non-visual perspective(provide appropriate tooltips of what happened and what is highlighted).
All status icons must have an alternate detailed description.
Group UI elements which are responsible for performing one function and describe the group.
The list can grow endlessly…. The message I want to convey here is that we need a special focussed approach to make any product accessible completely and there is a considerable development effort involved in it.