Accessibility in Web Apps
There are two types of disabilities that effect a users interaction with an application. The first are motor function disabilities which alter a users ability to control an application. A user with parkinson's disease, who has difficulty keeping their hand steady, will have trouble using a mouse. The second and more diverse type of disability are sensory problems, where a user has trouble receiving information from the application. This second type can be split into four subtypes: color blind, poor vision, blind, and deaf.
It's important to note that there is a difference between having poor vision and being blind, and the methods for catering to users with these two types of disability differ significantly. A user with poor vision needs the application to have very obvious visual cue's. Text boxes that are focused (the one you're typing in) must show some visual indication that differentiates them from other text boxes, as a user with poor sight might not be able to see the caret very well. (The caret is the vertical line that shows typing position.)
Motor function disabilities.
Motor function disabilities are often the easiest for which to account. There are a vast array of motor function problems that a user might have, but the solution in all cases is to simply allow for full use of the application with just the keyboard. A user who cannot effectively use the mouse will need to be able to navigate the application and interact with elements through button presses alone, which we will get to in a moment.
It should be noted that even users who can't use a keyboard—say, due to some full upper body paralysis—will still rely on keyboard controls for interacting with applications. Unlike the mouse, which captures precise motions in a two dimensional plane, the keyboard only captures discrete events—button presses. A user who relies on custom equipment to interact with applications—anything from larger, custom keyboards to eye-trackers—will still have that custom equipment mapped to keyboards in some way.
Users who can use a mouse but can't use a keyboard need not be accounted for, as they'll generally use an onscreen keyboard for typing. Just ensure that your app never exclusively relies on keyboard commands for any form of interaction, as keyboard commands can be difficult and slow to execute with an onscreen keyboard.
The user experience for keyboards consists of…
Color blind users.
The application should avoid using color to convey information. In cases where