||This article has multiple issues. Please help improve it or discuss these issues on the talk page.
In human-computer interaction, computer accessibility (also known as Accessible computing) refers to the accessibility of a computer system to all people, regardless of disability or severity of impairment. It is largely a software concern;[dubious ] when software, hardware, or a combination of hardware and software, is used to enable use of a computer by a person with a disability or impairment, this is known as Assistive Technology.
There are numerous types of impairment that affect computer use. These include:
- Cognitive impairments and learning disabilities, such as dyslexia, ADHD or autism.
- Visual impairment such as low-vision, complete or partial blindness, and color blindness.
- Hearing-related disabilities including deafness, being hard of hearing, or hyperacusis.
- Motor or dexterity impairment such as paralysis, cerebral palsy, or carpal tunnel syndrome and repetitive strain injury.
Accessibility is often abbreviated as the numeronym a11y, where the number 11 refers to the number of letters omitted. This parallels the abbreviations of internationalization and localization as i18n and l10n respectively.
Special needs assessment
People wishing to overcome an impairment in order to use a computer comfortably and productively may require a "special needs assessment" by an assistive technology consultant (such as an occupational therapist or clinical scientist) to help them identify and configure appropriate assertive hardware and software.
When a disabled person is unable to leave their own home, it may be possible to assess them remotely using remote desktop software and a web cam. The assessor logs on to the client's computer via a broadband Internet connection and then remotely makes accessibility adjustments to the client's computer where necessary. Additionally, the assessor is able to observe their computer usage.
Considerations for specific impairments
Cognitive impairments and illiteracy
The biggest challenge in computer accessibility is to make resources accessible to people with cognitive disabilities - particularly those with poor communication skills - and those without reading skills.
Their further development relies on public domain icons being available. Many people with a learning disability learn and rely on proprietary symbols. They thus become tied to particular products. The copyright owners are generally unwilling to release them on the web.
An alternative approach where users want to access public computer based terminals in libraries, ATM, Information kiosks etcetera is for the user to present a token to the computer terminal, such as a smart card, that has configuration information to adjust the computer speed, text size, etcetera to their particular needs. The concept is encompassed by the CEN EN 1332-4 Identification Card Systems - Man-Machine Interface. This development of this standard has been supported in Europe by SNAPI and has been successfully incorporated into the LASSeO specifications.
Since computer interfaces often solicit visual input and provide visual feedback, another significant challenge in computer accessibility involves making software usable by people with visual impairment. For individuals with mild to medium vision impairment, it is helpful to use large fonts, high DPI displays, high-contrast themes and icons supplemented with auditory feedback and screen magnifying software.
In the case of severe vision impairment such as blindness, screen reader software that provides feedback via text to speech or a refreshable braille display is a necessary accommodation for interaction with a computer.
About 8% of people, mostly males, suffer from some form of colour-blindness. The main colour combinations that might be confused by people with visual deficiency include red/green and blue/green. However, in a well-designed user interface, color should not be the only way of distinguishing between different pieces of information.
Motor and dexterity impairments
Some people may not be able to use a conventional input device, such as the mouse or the keyboard. Therefore it is important for software functions to be accessible using both devices; ideally, software uses a generic input API that permits the use even of highly specialized devices unheard of at the time of software development. Keyboard shortcuts and mouse gestures are ways to achieve this. More specialized solutions like on-screen software keyboards and alternate input devices like switches, joysticks and trackballs are also available. Speech recognition technology is also a compelling and suitable alternative to conventional keyboard and mouse input as it simply requires a commonly available audio headset.
The astrophysicist Stephen Hawking is a famous example of a person suffering from motor disability. He uses a switch, combined with special software, that allows him to control his wheelchair-mounted computer using his remaining small movement ability. This performs as a normal computer, allowing him to research and produce his written work, and as an Augmentative and Alternative Communication and environmental control device.
While sound user interfaces have a secondary role in common desktop computing, usually limited to system sounds as feedback, software producers take into account people who can't hear, either for personal disability, noisy environments, silence requirements or lack of sound hardware. Such system sounds like beeps can be substituted or supplemented with visual notifications and captioned text (akin to closed captions).
- Microsoft Active Accessibility (MSAA) on Microsoft Windows
- Microsoft UI Automation on Microsoft Windows, replacing MSAA
- IAccessible2 on Microsoft Windows, a competitor of Microsoft UI Automation also replacing MSAA
- AT-SPI on UNIX and Linux
- Mac OS X Accessibility
- Java Accessibility and the Java Access Bridge for Java software.
Accessibility Features in Mainstream Software
Accessibility software can also make input devices easier to use at the user level:
- Keyboard shortcuts and MouseKeys allow the user to substitute keyboarding for mouse actions. Macro recorders can greatly extend the range and sophistication of keyboard shortcuts.
- Sticky keys allows characters or commands to be typed without having to hold down a modifier key (Shift, Ctrl, Alt) while pressing a second key. Similarly, ClickLock is a Microsoft Windows feature that remembers a mouse button is down so that items can be highlighted or dragged without holding the mouse button down throughout.
- Customization of mouse or mouse alternatives' responsiveness to movement, double-clicking, and so forth.
- ToggleKeys is a feature of Microsoft Windows 95 onwards. A high sound is heard when the CAPS LOCK, SCROLL LOCK, or NUM LOCK key is switched on and a low sound is heard when any of those keys are switched off.
- Customization of pointer appearance, such as size, color and shape.
- Predictive text
- Spell checkers and grammar checkers
Support for Learning Disabilities
Other approaches that may be particularly relevant to users with a learning disability include:
- Cause and effect software
- Switch accessible software
- Hand-eye co-ordination skills software
- Diagnostic assessment software
- Mind mapping software
- Study skills software
- Symbol-based software
- Touch typing software
Enabling access to Web content for all users is the concern of the Web accessibility movement. Websites can be designed to be more accessible by their conformance to certain design principles.
Screen readers are of limited use when reading text from websites designed without consideration to accessibility; this can be due to the differences between spoken and written language and the complexity of text, but it is mainly due to poor page design practices. The tendency to indicate semantic meaning using methods that are purely presentational (e.g. larger or smaller font sizes, using different font colors, or images or multimedia to provide information) restricts meaningful access to some users. Therefore designing sites in accordance with Web accessibility principles helps enable meaningful access for all users.
For example, web designers can ensure that navigation and content is as plain and simple as appropriate and long texts should provide summaries.
Open Accessibility Framework
The Open Accessibility Framework (OAF) provides a high-level outline of the steps that must be in place for any computing platform to be considered accessible. These steps are analogous to those necessary to make the physical/built environment accessible. The OAF divides the required steps into two categories: creation and use.
The “creation” steps describe the necessary precursors and building blocks to enable developers to create accessible applications and products. They are:
- Define what “accessible” means for the platform: It must be clear what is meant by “accessible” because this will differ according to the modality and capabilities of each platform. The definition may include accessibility features such as tabbing navigation, theming, and an accessibility API.
- Provide accessible stock user interface elements: Pre-built “stock” user interface elements, used by application developers and authoring tools, must be implemented to make use of the accessibility features of the platform.
- Provide authoring tools that support accessibility: The tools used by application developers and content authors must be implemented to encourage use of the accessibility features of the platform. This may include features such as encouraging the use of accessible stock user interface elements, prompting for information required to properly implement an accessibility API, and accessibility evaluation and repair tools.
The “use” steps describe what is necessary in the computing environment in which these accessible applications will run. They are:
- Provide platform support: Computing platforms must properly implement the accessibility features that are specified in their accessibility definition. For example, the accessibility API definitions must, in fact, be implemented correctly in the program code.
- Provide accessible application software: Accessible applications must actually be available for the platform. These applications must support the accessibility features of the platform. This may have been achieved using the accessible stock elements and authoring tools that support accessibility.
- Provide assistive technologies: Assistive technologies (e.g. screen readers, screen magnifiers, voice input, adapted keyboards) must actually be available for the platform.
The following examples show that the OAF can be applied to different types of platforms: desktop operating systems, web applications and the mobile platform. A fuller list can be found in the Open Source Accessibility Repository by the Open Accessibility Everywhere Group (OAEG).
- Accessibility APIs like the Assistive Technology Service Provider Interface and UI Automation on the desktop, WAI-ARIA in web applications, and the Blackberry Accessibility API on the Blackberry operating system.
- The implementation of accessibility APIs, keyboard access and theming in widget libraries like Java Swing for desktop applications, the jQuery UI and Fluid Infusion for Web applications, and the Lightweight User Interface Toolkit (LWUIT) for mobile applications.
- Support for accessible development using Glade (for the GTK+ toolkit), the DIAS plugin for NetBeans IDE, Xcode IDE for iOS applications. Accessibility inspection tools like Accerciser (for AT-SPI) and support for accessible authoring with the AccessODF plugin for LibreOffice and OpenOffice  also fit into this step.
- Support for UI Automation on Microsoft Windows, support for ATK and AT-SPI in Linux GNOME, WAI-ARIA support in Firefox, the MIDP LWUIT mobile runtime (or the MIDP LCDUI mobile runtime) that is available on mobile phones with Java.
- The DAISY player AMIS on the Microsoft Windows desktop and the AEGIS Contact Manager for phones with Java ME.
- The GNOME Shell Magnifier and Orca on the GNOME desktop, the web-based screen reader WebAnywhere, and the alternative text-entry system Dasher for iOS and Android are examples of assistive technologies.
The goal of the six steps and the corresponding tools is to embed accessibility into mainstream software.
- Assistive Technology
- Web accessibility
- Game accessibility
- Section 508 Amendment to the Rehabilitation Act of 1973
- Fire Vox
- AccessApps - a collection of accessibility software which fits on a USB drive
- CEN: Personal identification, electronic signature and cards and their related systems and operations - Structure.
- Draft EN 1332-4 Identification Card Systems - Man-Machine Interface - Part 4 : Coding of user requirements for people with special needs
- LASSeO: Feasibility Studies - Final Report. August 2011.
- Oracle: Java Accessiblity
- Oracle: Java SE Desktop Accessibility (page containing a link to the Java Access Bridge).
- Richard Hodgkinson: 7th Report on International ICT Accessibility Standards Proposed, Being Developed and Recently Published. 3 October 2008.
- Richard Hodgkinson: 10th Report on International ICT Accessibility Standards Proposed, Being Developed and Recently Published. 26 June 2009.
- Microsoft: Using ClickLock
- Microsoft: To turn on ToggleKeys. Windows XP Professional Product Documentation.
- Bates, Roger; Jones, Melanie (2003). "Using Computer Software To Develop Switch Skills". 2003 [Technology and Persons with Disabilities] Conference Proceedings. Retrieved 2007-02-08.
- Hawes, Paul; Blenkhorn, Paul (2002). "Bridging the Gap between Aspiration and Capability for Aphasic and Brain Injured People". 2002 [Technology and Persons with Disabilities] Conference Proceedings. Retrieved 2007-02-08.
- AEGIS Consortium: AEGIS OAF and high-level architecture. Accessed 2013-01-17.
- AEGIS Consortium: AEGIS Architecture Definition. Accessed 2013-01-17.
- Open Accessibility Everywhere Group (OAEG): Open Source Accessibility Repository. Accessed 2013-01-17.
- Research in Motion (RIM): Package net.rim.device.api.ui.accessibility. BlackBerry JDE 6.0.0 API Reference. Accessed 2013-01-17.
- Fluid Infusion. Accessed 2013-01-17.
- Glade - A User Interface Designer. Accessed 2013-01-17.
- DIAS Netbeans IDE plugin & Standalone. Accessed 2013-01-17.
- Apple Inc.: Xcode 4. Accessed 2013-01-17.
- AccessODF. Accessed 2013-01-17.
- Microsoft Developer Network: Accessibility (.NET Framework 4.5). Accessed 2013-01-17.
- Microsoft Windows Dev Center: UI Automation (Windows). Accessed 2013-01-17.
- GNOME Dev Center: Introducing ATK, AT-SPI, GAIL and GTK+. Accessed 2013-01-17.
- Access Mozilla. Accessed 2013-01-17.
- Access Firefox: Firefox Accessibility Features. Accessed 2013-01-17.
- AEGIS Consortium: LWUIT - Mobile Accessibility. Accessed 2013-01-21.
- DAISY Consortium: AMIS: DAISY 2.02 & DAISY 3 Playback Software. Accessed 2013-01-17.
- AEGIS Contact Manager. Accessed 2013-01-17.
- WebInSight: WebAnywhere: A Screen reader on the go. Accessed 2013-01-17.
- Inference Group (University of Cambridge): Mobile Dasher. Accessed 2013-01-17.
- Dasher for iOS on iTunes. Accessed 2013-01-17.
- Iosif Klironomos, Julio Abascal, Ilse Bierhoff: D3.1 Report with background material needed to support the SDDP-2 Meeting: An Introduction to the Key Issues Relating to Accessible User Interfaces. Accessed 2013-01-17.
- The annual ERCIM Workshop on 'User Interfaces for All' emphasising accessibility
- Better Living Through Technology - contains guides on accessibility options and information about specialist assistive hardware and software
- HP Accessibility
- Illinois Accessible Web Publishing Wizard for Microsoft Office
- AbilityNet - provides information on Accessibility, Assistive Technology and Remote Assessment
- C4EA Consortium For E-learning Accessibility
- W3C Web Accessibility Initiative (WAI)
- Accessibility in the Opera web browser
- Mozilla Accessibility Project
- Internet Explorer 6 Accessibility Resources
- Mono Accessibility Implementation
- Open Office Accessibility Project
- EU Project GUIDE: Multimodal user interfaces for elderly people with mild impairments
- The Computer Accessibility Wiki