For a complicated enterprise-class application to be used successfully by a person with a disability, many things have to work together 'just right.' We call this the 'Accessibility Puzzle'.
Operating System (OS) Vendor: The OS vendor needs to build accessibility services and options into the basic platform. This includes features that make the OS itself accessible, and exposing settings for color, contrast, font type, font size, and focus cursor. The basic widgets provided by the OS (windows, dropdown lists, scrollbars, etc.) must properly interoperate with the keyboard and assistive technology, via standard accessibility Application Program Interfaces (APIs) that are, ideally, available on multiple platforms.
Hardware vendor: Manufacturers of computers need to ensure that keyboards and other assistive technology hardware devices can properly connect to the system using standard interfaces and protocols. The machines themselves need to adhere to accessibility standards, such as large print and appropriate force needed to operate mechanical controls. Devices such as microphones and headsets should also account for the unique needs of the disabled.
Assistive Technology (AT) Vendor: The AT vendor plays a huge role in the ultimate success of the user. AT has an incredibly difficult task to fulfill - it has to transform a UI which is often painstakingly crafted for rendering on a monitor, into a completely different medium. To accomplish this, AT has to interact completely and accurately with the underlying platform, parse the application, and re-render it in a manner that is optimal for the user, while not making the AT itself the hardest part for the user to learn. While many AT vendors tend to be much smaller than enterprise-class IT vendors, they nevertheless have to adopt some of the same processes such as timely delivery of fixes and prevention of regressions in those fixes. AT also has to be on the 'leading edge' of new technologies, matching the capabilities of the underlying platform as soon as possible.
Browser vendor: The browser vendor has responsibilities similar to the OS vendor.
Standards: Technical standards play a critical role in the puzzle, as they are the force that focuses the coding practices of the OS, Browser, Application, and AT vendors. Standards must be complete so that an end-to-end solution is well described, yet tolerant of unique solutions. Standards must also be measurable, with minimal subjective evaluation. One significant risk is too many standards; at some point, an IT vendor has to draw the line on what standards it can follow within a particular release cycle. And too many standards often results in conflicting requirements. Further, adherence to standards alone does not necessarily make a product 'accessible'; it is possible to build a product that adheres to all standards, yet it might be unusable by a large class of persons with disabilities because the individual pieces are not usable as a whole.
Application Vendor: The application vendor uses international standards and regulations to develop its own set of standards and best practices, then implements them throughout the product set. This requires training and commitment for a broad variety of roles at the company, including UI designers, developers, QA testers, support engineers, consultants, and even legal and sales. The Application vendor conducts testing with a variety of automated tools, AT, and users. Not all of the software necessary to produce an accessible solution for the user is under the control of the application vendor, but the vendor must make a reasonable attempt to make all of the pieces inter-operate. At the end of the day, the vendor must state to the buyer whether the product meets particular standards, and what the support policy is if issues are encountered.
Consultant/Implementer/IT department: This group of people has the responsibility to configure the product to make it accessible, according to documentation provided by the OS, Browser, Application and AT vendors. They also need to follow appropriate development guidelines when customizing or creating new content; in this respect they need to follow many of the exact same steps as the application vendor itself, from design through testing.
Trainer: Proper training requires knowledge of the product, knowledge of AT, and materials tailored to that specific combination. The trainer also may need to tailor the training to the end-user's specific needs, as the range of ability and proficiency with AT (or IT in general) may vary significantly between users.
Employer: Compliance with discrimination laws, such as the Americans with Disabilities Act in the US, or the Disability Discrimination Act in the UK, are the responsibility of the employer. Because each employee is unique, this may entail a very broad range of accommodations including:
installing ergonomic devices, such as keyboards, chairs, desks and lighting
privacy, especially for those using voice recognition AT
adjusting policies concerning 'standard' computer hardware if they are insufficient to run AT
adjusting policies concerning software configuration by end-users, including allowing experimentation with newer releases of AT
providing additional product training, tailored to specific AT
adjusting productivity quotas, especially for new or infrequent users
Employee: The end-user of an enterprise-class application needs to attend training on both the application and the AT. Many AT modules are quite complex - perhaps the most complex software that the average computer user will ever encounter. But complicated enterprise-class applications require a high proficiency level with these modules, and the user must take the time to learn them.
Helpdesk: The Helpdesk at a company must be sensitive to the unique needs of a disabled user. An issue which may be a minor annoyance to one user may be a complete show-stopper to a disabled user. Helpdesk personnel need training on AT so they can assist a disabled user, and more often than not may need to meet one-on-one to fully understand and reproduce a problem. Of course, a disabled user must be able to access the Helpdesk in the first place, with an accessible interface.
Application Vendor Support: The application vendor must have a Support organization that is capable of handling issues related to a disabled user. Just like the employee's company Helpdesk, this requires that Support personnel be trained in AT, and that the Support tools themselves are accessible (web applications, phone lines, and TTY lines.)