User talk:Capstan Clift
Accessibility for the Blind in Second Life
Linden Labs has established an Architecture Working Groupto help steer development over the next two years. The AWG has Viewpoint Advocacy subgroups which focus on particular issues. This page is the draft document of a Viewpoint Advocacy for enabling blind users in Second Life.
Stakeholders
I am assembling a list of stakeholders, please feel free to join.
- Bill Carter - IBM Human Ability and Accessibility Center
- Eelke Folmer - University of Nevada, Reno
- Gareth White - University of Sussex, UK
You've Got to be Kidding!
This is generally the thought that crosses a person's mind when the idea of blind users participating in virtual worlds is first encountered. The very notion seems preposterous. Virtual worlds are intensely visual by nature, how can it ever be possible for a blind person to operate in them? As one continues to think about the problem, however, endless possibilities begin to present themselves. In many ways it is not so different from ordinary GUI and web applications, and please be assured that we have a good understanding about how to enable blind users to interact with them very effectively. The basic trick involves the use of an assistive technology called a screen reader. Applications which are suitably enabled can give the screen reader access to textual information about all their GUI widgets, and GUI apps which are appropriately designed allow blind users to navigate them by means of the keyboard alone. Extending this technique to virtual worlds applications is very challenging of course, but it is entirely doable if the right infrastructure is put into place.
Why Bother?
Chances are the reader of this document can see pretty well. Most people have reasonably good vision, less than 1% of the population is blind. Why should we care if those few folks have access to modern computer applications? The first reason is that it is the decent and considerate thing to do. Everyone should be able to participate in our civilization regardless of their disabilities. If its necessary to see this in a selfish light, remember that you may fall victim to an accident or a disease someday which robs you of your eyesight. Surely you will want to be able to continue as before in as many ways as possible.
But beyond the humane considerations there are business reasons for making applications accessible. Similar to the legal requirement that buildings be constructed in a manner which is wheelchair-friendly, the government and many educational organizations have standards in place which require that computer applications be accessible to people with disabilities. An example; Many universities use secondlife as a virtual classroom, therefore it needs to comply with section 508 of the US rehabilitation act -which states that Federal agencies, such as universities relying on federal funding, make their electronic and information technology accessible.
You can't sell your app to them unless blind people can use it. That can be a powerful motivator.
What Can Be Done?
To start with, the Second Life client needs to be enhanced such that blind users can navigate it without using a mouse. This means all the buttons, dropdown menus, dialogue boxes, and other standard GUI widgets need to be accessible via the keyboard only. This is done by means of allowing selection of widgets via alternative key combinations, hotkeys, accelerators, etc. One navigates through the widget hierarchy by using the tab and arrow keys. You can make selections by hitting the return key or the spacebar. Also the widgets all need to have accessible names, descriptions, and tooltips which are spoken out for the user by the screenreader. Much of the Second Life user interface is comprised of conventional GUI components and it doesn't require invention of any new technology in order to make them accessible. It will be much more challenging to make the virtual world content of Second Life accessible via keyboard navigation. Currently it is necessary to mouse-click on the various items you see in order to activate them in some way. These items may be ambulatory (in the sense that they can move around in virtual space rather than remaining fixed in place). There needs to be a discussion about how these are identified and made available to people who can't see them.
Metadata
Beyond the obvious fixing up of the user interface chrome in the SL viewer we need to have a way to put accessibility metadata into the Second Life content. As things currently stand the creator (and sometimes the owner) of a prim or a linked set can assign a name and a description to it. Obviously these need to be made available to a screenreader. Often however, names and descriptions are not initialized because people figure that you can see what they are. Should it be possible for non-owners to be able to contribute an accessible name and description for content in SL? Or have a mechanism that enforces the user to add "meaningful" metadata to an object before it is created. That would help with the created content, but what about the space? What if I want to be able to allow a blind user to know what we call the particular spot his avatar is standing on, to give him a useful description of his surroundings, etc. Second Life has the concept of a region which has a name, and that's nice, but clearly there needs to be a way to add much more descriptive information about discrete spaces which would be made available to a screenreader.
Taxonomy
For a blind player to know if an object is of interest we need to know its name. Retrieving the name of an object requires us to communicate with the server (you need to send a message to the server retrieving the contents of the object which includes the name.) Blind players are unable to see objects nor click on them so we would need to query all the objects around the player and only list the ones of interest to the player. This is a problem as at any given moment the player may be surrounded by hundreds of objects. Querying for the names of hundreds of objects may burden the server and lead to a Denial of Service response from the server. Certain objects with very distinct geometrical properties like billboards or houses may be of interest to a blind user. Can we come up with a taxonomy of objects in SL and embed this information in the geometrical properties of an object so we can avoid burdening the server with requests for names? the geometrical properties (size/textures) are already send out to the user as they are used to render the SL world.