Most operating systems nowadays provide a Graphical User Interface (GUI), a graphic environment that provides the primary interface with which users interact with the device and its software applications (see Figure 1). The GUI provides accessibility features that allow the user to customize their experience to suit their individual needs or preferences. Customization options are numerous. They include using the numeric key pad in order to control the pointer; reversing the mouse buttons; producing an automatic click when dwelling over an item; using a high contrast color scheme; or showing text with a large font.
Figure 1: Mobile Device Desktop
Currently (as of 2011) Microsoft Windows does not make a clear separation between the GUI and the rest of the operating system. In the Linux world, however, there are several GUI projects quite distinct from the core Linux kernel. Thus, whilst on Linux, the accessibility features that are available will depend on which of several GUI is supplied. (Of course, the user may have installed a GUI of his/her choice rather than the supplied GUI.) Whilst Apple Mac OS X also has this clear separation, only a single GUI is supplied so this means there is not the same variation in accessibility features. The Solaris operating systems provide the Linux GNOME Desktop by default.
GUIs also offer tools that developers utilize in their programs in order to ensure maximum accessibility; for example the support for so-called 'mnemonic' key sequences (shortcuts), used for activating menu items and buttons. In addition, there are accessibility features that are largely conventions or good practice, which developers should provide. Sometimes developers overlook simple measures such as ensuring full keyboard access to a program or website. Keeping an eye on those details is an important step in ensuring that applications are accessible to the maximum number of people.