Open Accessibility - an overview of projects and communities
by Steve Lee on 1 February 2010, last updated
Archived This page has been archived. Its content will not be updated. Further details of our archive policy.
In many countries, it is a legal requirement that ICT systems and software are accessible to people with disabilities. Ensuring accessibility requires an understanding of the surrounding issues as well as the use of appropriate techniques during design and development. This article introduces the key issues, techniques, technologies and communities that provide accessibility, allowing open source to reach as many users as possible.
Introduction to accessibility issues
Accessibility is about ensuring that software and content are available to people with disabilities. Such disabilities include restricted movement, blindness, deafness, learning difficulties and age related deteriorations like low vision or arthritis. Every one of these people has a unique combination of requirements or preferences when it comes to interacting with computer technology.
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 customisation options. These may ultimately result in a design that is more attractive to the general population.
Currently, the common operating systems, Linux, Mac OS X and Windows, all provide accessibility features for end users. They also include facilities that program developers can utilise to make their programs accessible. So it is perfectly possible for people with disabilities 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, or how to apply appropriate design techniques. There may also be a lack of understanding of how to use the accessibility features provided by the operating system.
Even when developers do understand the issues they may lack access to, or experience of, the wide range of the specialist software and hardware tools that provide enhanced accessibility. Even while specialist 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. However, accessibility software is usually expensive, or must be obtained from specialist suppliers. Fortunately, the availability of open source accessibility software reduces the barriers to obtaining such software in order to test. For example, the open source NVDA screen reader is a free download and compares favourably with commercial offerings. Users can also freely evaluate open source software tools and consequently make their requirements known. They can even contribute more directly to a project.
Let’s look at some of the projects and communities who are using open development techniques to create open source accessibility solutions.
Basic accessibility features
Most operating systems provide a desktop, a graphic environment that provides the primary interface with which users interact with the computer and its software applications. The desktop provides accessibility features that allow the user to customise their experience to suit their individual needs or preferences. Customisation options are numerous. They include using the numeric key pad to control the pointer; reversing the mouse buttons; producing an automatic click when dwelling over an item; using a high contrast colour scheme; or showing text with a large font.
Windows does not make a clear separation between the desktop and the rest of the operating system. In the Linux world, however, there are several desktop projects quite distinct from the core Linux kernel. Thus, whilst on Linux, the accessibility features that are available will depend on which of several desktops is supplied. (Of course, the user may have installed a desktop of their choice rather than the supplied desktop.) Whilst Mac OS X also has this clear separation, only a single desktop is supplied so this means there is not the same variation in accessibility features. The Solaris operating system provides the Linux GNOME Desktop by default.
Desktops also offer services that developers utilise in their programs in order to ensure maximum accessibility. For example the support for so-called ‘mnemonic’ key sequences, used for activating menus 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 the application is accessible to the maximum number of people.
Of the Linux desktop projects, the GNOME community is particularly proactive in developing accessibility features and services. It also advises program developers on how to use these features. In addition, GNOME also acts as the home for a number of separate accessibility projects that are usually bundled with it in Linux distributions. These include the Orca screen reader and the GNOME on-screen keyboard (GOK).
Assistive technology and APIs
More complex accessibility features come under the banner of assistive technology. These are programs designed to convert between an application’s graphical user interface (GUI) and some other means of access. Among these are on-screen keyboards (OSKs) like GNOME GOK, OnBoard and Special Access to Windows (SAW). These allow computer control and text entry using only the mouse pointer, or switch devices with a simple on/off action. Screen readers such as NVDA (NonVisual Desktop Access) and GNOME’s Orca provide for full access with only a keyboard and speak the screen content using synthetic speech. Programs like MouseTrap detect head and eye motion with a low-cost web cam and use it to simulate a pointing device. Dasher is an innovative program that allows text entry using only a couple of distinct input ‘gestures’ through various input devices, for example a breath operated switch. Other useful technologies include magnification and speech input.
Assistive technology software requires software access to a program’s user interface to determine what the program is doing and control it as required. This is facilitated by Accessibility Application Program Interfaces (Accessibility APIs), which provide a consistent way for programs to access common functionality provided by other software. It is interesting to note that the facilities offered by Accessibilty API’s are also ideal for automatically testing programs as they allow the user interface to be driven and monitored.
The Linux GNOME desktop has a well-developed and full-featured solution called AT-SPI. KDE is another popular Linux desktop. The community is currently investigating how to best provide support, with some effort going into how to harmonise with GNOME. Recently, a new open standard IAccessible2 has been published in conjunction with a reference implementation. It provides an API for Windows. Interestingly, it is published and maintained by the Linux Foundation’s open accessibility workgroup, largely as its design closely follows AT-SPI. This extends the limited MSAA API that is supplied with Windows. Microsoft has also developed their own enhancement to MSAA, called UIA.
Whereas desktop application accessibility is supported by the desktop component of the operating system, web accessibility largely depends on the web browser application. In addition, as the web browser is itself a desktop application, desktop accessibility still has a critical part to play. Web accessibility depends on collaboration between the website, the browser, the desktop and any assistive technology being used. The W3C recognises the importance of this. As part of its WAI accessibility work it has produced a number of standards that cover the web aspects.
Web accessibility is reasonably straightforward in the case of websites that display content in fairly static pages. Here the requirement is to ensure that the content is well structured, can be easily navigated and may be presented in forms suitable for the user. This may be directly supported by features added to the site itself, such as provision of different text sizes. Alternatively, adaptation can be left to the browser, desktop or assistive technology, as long as the website design follows some basic good practice. The advantage of the latter approach is that user experience will be more consistent for all sites visited. However, not all sites are well designed and some may be impossible to adapt.
The so called ‘Web 2.0’ has seen a proliferation of Rich Internet Applications (RIAs), such as Gmail, which behave like desktop applications in the browser. These require that web developers and web browsers work a little harder in order to provide similar support to that available on desktop applications. The main issues are that the user needs to be notified of unexpected updates to any part of the page. Also, assistive technology needs to be aware when web structures are re-purposed to create new types of interactive controls. For example, lists are often used to create dynamic menus. Fortunately, the W3C has recently released the WAI ARIA standard to address these requirements. Open source projects like Firefox and screen readers such as Orca and NVDA are at the forefront of support for these new technologies, with the commercial vendors following closely.
Mozilla’s Firefox browser has many accessibility features, extensions and themes that help make the web more accessible as described on the AccessFirefox.org community site. One of the current issues addressed by a Firefox extension is that of CAPTCHA solving, which is a problem for blind users. The text included in these distorted graphics images must be entered to prove you are not a ‘bot’ program. Sites with CAPTCHA often do not provide an alternative presentation such as audio and so cannot be accessed. Solutions like the Webvisum extension for Firefox provide CAPTCHA solving services. Webvisum also provides community tagging, allowing web pages to be annotated with suitable notes that will be available to other visitors. Other accessibility add-on tools for Firefox enable web developers to ensure that their work is accessible by providing simulations of disabilities or performing accessibility checks.
While some open source accessibility programs are individual projects, there are also a couple of larger communities actively working on the bigger accessibility picture. Most notable are the GNOME and Mozilla accessibility communities. The communities are actively participating with other projects and products to develop new accessibility solutions. For example, Mozilla has collaborated with proprietary screen reader vendors, including the owners of JAWS and Window Eyes, to ensure that they work well with Firefox. In addition, in the open source sphere, Mozilla has worked closely with the NVDA team. The Mozilla Foundation has also provided funding. In addition, Mozilla’s accessibility team has played a critical role in the formulation and acceptance of the W3C WAI ARIA standard through working with the many interested parties.
Two recently launched open accessibility programmes encapsulate a vision for wide-reaching community participation. Raising the Floor believes that those needing accessibility features should be able to freely use new and emerging Internet tools and resources, at low cost, and sets out to achieve this. The European AEGIS project aims to develop new open source accessibility technologies for the desktop, web and mobile platforms through collaborations.
The OATSoft.org community pre-dates these projects. It was created to provide a central resource for discovering and discussing open source assistive technology and accessibility software. Their website provides a community-created repository that lists projects. It also provides some social networking features, such as user comments, that augment the mailing list. Raising the Floor has proposed this repository for use as its master list of projects.
Education and open accessibility
A number of open accessibility projects have been developed in academia, while others are used primarily in education. Providing inclusive access to education raises such issues as students’ needing personalised access on a number of different computers. The wide variation in student requirements means that a selection of tools is required and support staff need some familiarity with options for customisation. Educational and mainstream software may not be particularly accessible but it is interesting to note that accessible versions of some programs are available. There is a strong case for ensuring that students learn about accessibility issues, whether it is for any content they produce or as part of a computer science course.
A convenient way to sample open source accessibility programs is to download the AccessApps USB memory stick image from the JISC-funded Regional Support Centre for Scotland North & East. This includes programs that can be run on a Windows PC without any installation. In addition, some of the best known general purpose open source programs are included. This not only showcases the programs, but allows users to evaluate the options. They can also freely use them on any of the various computers they may use. AccessApps is part of the EduApps family of USB stick tool collections.
The TechDis Toolbar combines several web accessibility tools into a single toolbar. As a result students can more easily interact with the web and so improve their study skills. The toolbar can be installed for use with one of several web browsers. In addition, the ‘lite’ version may be launched from a web page or browser bookmark without any prior installation. OSS Watch is pleased to have provided open development and community advice to the Toolbar development team.
ATutor, from the Adaptive Technology Resource Centre (ATRC) in Toronto, Canada, is a mature learning content management system (LMS) and social network. It features a high level of standards compliance and accessibility features. The related AChecker Tool tests for web accessibility issues. The Moodle LMS has a large active community that includes an accessibility forum.
Accessibility is a broad subject that spans a range of user requirements and several design techniques across the major operating systems. Open accessibility communities and projects are taking the lead in bringing open development practices to the accessibility community and creating tools of value for users. Users and developers alike have access to low-cost solutions, and may become involved in the projects. Open Accessibility projects such as NVDA are now becoming well known by members of the user communities and are useful tools for developers. The EduApps initiative provides a collection of open accessibility tools that may be run from a USB stick plugged into a computer running Windows.
- EduApps [http://www.rsc-ne-scotland.ac.uk/eduapps/]
- Linux Foundation open accessibility (a11y) workgroup [http://www.linuxfoundation.org/collaborate/workgroups/accessibility]
- AT-SPI [http://library.gnome.org/devel/accessibility-devel-guide/nightly/]
- IAccessible2 [http://www.linuxfoundation.org/en/Accessibility/IAccessible2]
- W3C WAI accessibility [http://www.w3.org/WAI/]
- W3C WAI ARIA [http://www.w3.org/TR/wai-aria/]
- W3C WAI ARIA references [http://www.w3.org/TR/wai-aria/references]
- AccessFirefox.org [http://www.accessfirefox.org/]
- GNOME accessibility community [http://projects.gnome.org/accessibility/]
- Mozilla accessibility community [http://www.mozilla.org/access/]
- OATSoft [http://www.oatsoft.org/]
- Moodle accessibility forum [http://moodle.org/mod/forum/view.php?f=820]
- Raising the Floor[http://raisingthefloor.net]
- Python Powered accessibility [http://live.gnome.org/Accessibility/PythonPoweredAccessibility]
Related information from OSS Watch:
- ATutor LMS: a case study
- Avoiding abandon-ware: getting to grips with the open development method
- Open source for absolute beginners
- A guide to participating in an open source software community
Note: This document is derived from a document first published on the Open Source Schools project website at http://opensourceschools.org.uk/open-source-accessibility-making-programs-and-content-available-everyone.html.