Accessibility is about ensuring that software and content are accessible by people with special needs. Such limited abilities include restricted movement, vision, hearing and cognitive abilities either from birth on or acquired later in life. Nearly each individual of the before mentioned groups has a unique combination of requirements or preferences when it comes to interacting with information and communication technology systems.

Accessibility is also about good universal design that ensures usability in a range of situations. For example access should not depend solely on screen display, mouse control and keyboard text input. Providing various alternative input and output modes can bring benefits in many situations. These include using small screens in mobile devices, or dealing with inhospitable working environments. Considering such issues during the design of a user interface (UI) will bring extra flexibility and customization options. These may ultimately result in a design that is more attractive to the general public.

Currently, the common operating systems, Linux, Mac OS X and Microsoft Windows, all provide accessibility features for end users. On the mobile side iOS (Apple’s mobile operating system) has built in accessibility features, while Android require installation of specific software (e.g. screen readers). Windows Mobile 7 is still a new platform and it remains to be seen how successfully accessibility features will be integrated. Most platforms also include facilities that program developers can utilize to make their programs accessible. So it is theoretically possible for people with special needs to have an excellent user experience when using programs that run on these platforms. However, the reality often falls short of the ideal. This may be because developers are unaware of the requirements for a good user interface, how to apply appropriate design techniques or a general absence of this knowledge, or they are not obliged to. There may also be a lack of understanding of how to use the accessibility features provided by the operating systems.

Even when developers do understand the issues they may lack access to, or experience of, the wide range of the special software and hardware tools that provide enhanced accessibility. Even while special hardware input devices or adaptations are commonly used, in many cases programs interact with them as if they were standard input devices. This allows a useful level of accessibility testing using a standard computer and appropriate techniques. (See also [OAO].)