"What is Accessible Software": Dr. James Thatcher, IBM. http://www.austin.ibm.com/sns/software.html WHAT IS ACCESSIBLE SOFTWARE? From Remarks at the National Conventions of the National Federation of the Blind (NFB in Computer Science) and American Council of the Blind (Visually Impaired Data Processors International) July 1997 Dr. James Thatcher thatch @ us.ibm.com 512-838-0432 INTRODUCTION My subject is "accessible software." What does it mean to say that software is accessible? Some would say that it means that everybody can use it. Not me. By software, I mean programs running on a computer. Maybe it would be better if I spoke of accessible computer programs. What I mean by accessible computer programs is programs that can be used with a screen reader. I believe that programs usable by screen readers will be usable with other assistive technologies, thus making screen readers the acid test for accessibility. I assume that many of you have read about, heard about, or even used Lotus Notes. As I was working on problems of accessing Notes, I found that I needed a workable definition of accessibility. Of course I knew before that there is an issue of defining accessible software and guidelines for writing accessible software, but I was faced at this particular time very specifically by Lotus' developers asking the question, "what can I do to make my product accessible?" I will use Notes as the example of what can be done to make software accessible and not. My plan here is to talk about my definition of accessible software. Then I will discuss Notes, and finally summarize what software developers and screen reader vendors can do to make software accessible. I hope that with this, you will have a better appreciation of the problems and solutions for making accessible software. THE DEFINITION OF ACCESSIBLE SOFTWARE As a screen reader developer I have never been very comfortable with the definitions of accessibility or guidelines for accessible software that I have read. I needed a definition of accessible software that I could use at Lotus Development Corporation. My assumption was that most of the programmers and development managers there (like many other places) were not aware of accessibility; of accessible software, or of screen readers. They needed to understand exactly what was wrong and what was needed to correct it. Lets look at some suggestions. Recently I reviewed the American National Standards Institute (ANSI) draft standards for accessible software. It was a 32 page document. Consider the following quotation (which may be amended): "These guidelines are aimed at reducing the need for add-on assistive technologies ..." If the writers of the guidelines see their work as reducing the need for assistive technology, then they are not talking about the same problem I am. A screen reader is needed if a blind person is going to use computer software and no guidelines are going to change that. About the same time that I was working on the Notes problem, John Matioli, on dev-access list, asked the question, 'what is accessibility anyway?' He answered his own question with something like the following which I have paraphrased, replacing 'assistive technology' with 'screen reader': Software is accessible if a blind person can use all major features of it with a screen reader. That is a good definition. It is good because it works for the user. It is a good definition because it stresses 'major features.' We don't want to declare a software product inaccessible because of some redundant feature being accessible. An example would be an application that permitted redrawing toolbar icons. If otherwise accessible, no problem. This definition is not adequate because it does not help the programmer. How can a software developer at Lotus have the foggiest idea of how to make his product work with a screen reader? (I know there is an apparent answer to that. Get blind users and screen readers on site. But neither developer nor screen reader user is going to know why the screen reader is not speaking.) John's definition does not suggest to the programmer what can be done to make the program accessible. The programmer who wants to fix things would need to know how screen readers work. The Development manager is told that his product is not accessible, and frankly, wants to know why screen reader packages do not work for him. They work for Microsoft Word! It is correct that the concept of accessibility depends on a screen reader working with the program. But as a definition of accessible software it clouds responsibility. Is Lotus Notes accessible software because it works with Screen Reader/2? No. Is Microsoft Word 6.0 accessible software because it works with Windows screen readers? No. As I will mention again below, in both cases screen reader developers had to modify their product at the very basic level, after analyzing and even reverse engineering the application software. Here is my proposed definition of accessible application software. At least in retrospect, it is the obvious definition. There are three parts, remember them as: I've gotta be able to (1) get there (2) know where I am and (3) know what I can do. THE THREE PRINCIPLES 1. Get There! Mouse usage depends on visual feedback of the location of the mouse pointer. Therefore blind people don't use a mouse to get to the tool bar, the radio button, the pushbutton, or whatever. Accessible software includes keyboard equivalents for all mouse actions. You have to be able to quickly, i.e., competitively, navigate through the application with the keyboard, using Tab and Arrow keys, for example. It's easy to check if keyboard access is available in an application - have the test team use the product without the mouse. 2. Where am I? Imagine using the tab key in a dialog, or the cursor keys in a text area, without any indication of where you are. It would be tough. With keyboard access (Item 1) all users can move around the application with the keyboard. Such navigation is useless without a visual indication of "current focus." Software which is accessible has a visual focus indicator that moves with the keyboard actions. But, if you cannot see, accessible software would then make sure that the position and contents of the visual focus indicator is knowable by a screen reader either by using standard operating system focus rectangles and "carets," known to screen readers already, or the adapting the software with Microsoft Active Accessibility (MSAA) or equivalent. MSAA provides a framework for application software to keep screen readers and other accessibility aids (which employ MSAA) aware of this kind of information. It is easy to test for accessibility. The sighted tester makes sure that the visual indicator follows keyboard navigation. In the same way, a screen reader or equivalent tool is needed to test availability of the focus indicator to the screen reader. 3. What can I do? The last principle of accessible software is "know thy focus object." If you know the focus object you will know what you can do. Think again about tabbing around a dialog; the visual indicator rests around text on some object which is drawn with lines and colors and shading. The graphical objects purposes are something you learn. You learn these "controls" so that you now know what to do next time you see one. If you can't see, the screen reader must tell you what the focus object is when the focus indicator lands there. The accessible software has the responsibility of revealing to a screen reader the purpose or role of the object. It can do that by using standard controls or by implementing MS Active Accessibility (or equivalent). The only way to test the software for object identification, i.e., that it satisfies this third principle, is to use a screen reader or equivalent testing tool. THE NOTES STORY Now in this context, lets look at Lotus Notes. I suspect that what you've heard about notes has not been all good. On the good side, Notes is an extremely rich and multifaceted groupware product including mail, shared data management, discussions and much more. Notes is also very popular, with a rapidly increasing presence in corporate America and in government. I see more and more people who find that they have to use Notes on the job. In fact you learn to love Notes! So what is the problem? When you start Notes, the very first screen, called the Notes Workspace, is a window full of small rectangles, about 1 inch by 1 inch, representing the databases that you frequently use. Each of these rectangles contains the name of a database, its location, an icon, and the number of unread records. You can move to these with the keyboard arrow keys (keyboard access) and they change color as a visual indicator. You can open one of these data bases with the enter key. No screen reader that has not been specifically modified for Notes (like IBM Screen Reader/2 has) will speak these rectangles, because the focus indicator is non-standard. And Notes does nothing to help the screen reader know about the visual focus. It is possible to access a database without using these little rectangles. File/ Database/ Open yields a list of servers and on each server, a list of databases and of database folders. From this large range of choices it is possible to find your mail data base and open it. Your favorite screen reader would speak as you go through that process of finding your mail database because the visual indicators and objects are standard. This process, however, is not equivalent to double clicking on one of the boxes on the Workspace page; it is far to cumbersome. When you do this you would get into your mail database only to find two windows (frames), one on the left with a list of folders, the other on the right with a list of the individual mail items in the current folder. This organization is like a table of contents on the left and the contents of the highlighted section on the right. Another frequent found example is a list of directories of the left and the directory contents of the current directory on the right. This is a useful organizational scheme which is growing in acceptance, for application software, mail programs and on the web (frames). If done well (application developer responsibility), then screen readers should support it. Say the current folder on the left side is the inbox. Then the right side is a list of all mail items yet to be read and/or filed. As you arrow in the list of mail, two vertical lines highlight the current mail item. Move to the folder list with key F6, and now there is a selector (visual focus indicator) on the current folder which can be moved with the arrows. If you are using a screen reader you heard nothing. No screen reader will read the mail list or the folder list unless the screen reader has been modified to find the corresponding focus indicator. There are many examples like this with Notes. The final example I'm going to use is Lotus' property boxes. These dialogs, are common across a number of Lotus products, just as Microsoft's Standard Dialogs (which are non-standard), are common amongst their Office applications. For property boxes, the keyboard access is there, though awkward at times. The visual indicator is there as well. Your favorite screen reader will know about the visual indicator, because they are standard, but as with Microsoft dialogs, it won't have the foggiest idea what the objects are. These dialogs fail the third test for accessible software. WORKING WITH NOTES AND SCREEN READER/2 Why, you should ask, do Microsoft's dialogs speak with the screen reader and not Lotus'? Because screen reader developers have devoted considerable time and energy to making that happen. This makes it appear as though the application is accessible. The kind of work required here is not so-called configuration work. It is modifying the way the base screen reader code recognizes things. Along that line let me briefly mention what we have done that with Screen Reader/2 for Lotus Notes. Around April of 1997, two IBM employees, who are Screen Reader/2 users, compiled a list of serious problems with access to Notes. They had special interest in accessibility of Notes because they needed to use it on their jobs. Some of the problems came from not knowing keyboard controls in Notes. For example, Alt+Enter opens and closes "property boxes" and F6, as I mentioned above, switches between views in a database. All the other problems were, or stemmed from, failure of Notes to include keyboard access or to use standard focus indicators (selectors) and objects. Notes is not accessible by the definition discussed here. We, in IBM Special Needs Systems, undertook a significant revision of Screen Reader/2 to tackle these problems. It took about two months. The fixpack was released in July, 1997. This update corrects the problems so that Notes version 4 now works well with IBM Screen Reader/2. LOTUS AND THE DEPARTMENT OF EDUCATION The fact that Notes now works well with Screen Reader/2 is good news only if you happen to be an OS/2 user. If you are a Windows user, which you probably are, this is no news at all As many of you probably know the department of Education contacted Lotus about the lack of access to Notes. The letters from the Department were widely posted, which I think is good. There was a lot of discussion about Notes access on lists that I watch. The effect was positive. Jeff Papows, the president of Lotus responded, also publicly, saying that the interfaces of the Notes client and SmartSuite would change to provide accessibility. The statement was as strong a commitment to correct the situation as I have ever seen from a software vendor. Another effect that the DOE/Lotus communication had, was that I was invited to come to Lotus and Iris Associates (where Notes is developed) to discuss accessibility of Lotus software. This is full circle in my discussion. I wanted the definition of accessible software for that Lotus visit. And it worked. The developers understood. Each case we looked at fell into one of the three points. And we demonstrated the problems with a windows screen reader and with IBM Screen Reader/2. IN CONCLUSION When more software companies could respond as I believe both Lotus and Microsoft are now responding, it will make a huge difference for accessibility. That response requires understanding the nature of accessible software (in simple terms), and taking the steps to make their software usable by people who are blind -as we have discussed here. It also requires involving individuals from the blindness community and screen reader developers in early testing of their products. ---------- End of Document