Jump to content

Screen reader

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Benjamin Hawkes-Lewis (talk | contribs) at 12:58, 6 February 2007 (Refactored and removed spam warning as most of the links are now internal.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A screen reader is a software application that attempts to identify and interpret what is being displayed on the screen. This interpretation is then represented to the user with text-to-speech, sound icons, or a braille output. Screen readers are a form of assistive technology (AT) potentially useful to people who are blind, visually impaired, or learning disabled, often in combination with other AT such as screen magnifiers.

Types of screen reader

CLI (text) screen readers

In early operating systems such as MS-DOS which employed a Command Line Interface (CLI), the screen display consisted of characters mapping directly to a screen buffer in memory and a cursor position. Input was by keyboard. All this information could therefore all be obtained from the system either by hooking the flow of information around the system and reading the screen buffer or by using a standard hardware output socket[1] and communicating the results to the user. This was relatively easy to engineer.

In the 1980s, the Research Centre for the Education of the Visually Handicapped (RCEVH) at the University of Birmingham developed Screen Reader for the BBC Micro and NEC Portable.[2]

GUI screen readers

Off-screen models

With the arrival of graphical user interfaces (GUIs), the situation became more complicated. A GUI has characters and graphics drawn on the screen at particular positions, and as such there is no textual representation of the graphical contents of the display. Screen readers were therefore forced to employ new low-level techniques, gathering messages from the operating system and using these to build up an "off-screen model", a representation of the display in which the required text content is stored.

For example, the operating system might send messages to draw a command button and its caption. These messages are intercepted and used to construct the off-screen model. The user can switch between controls (such as buttons) available on the screen and the captions and control contents will be read aloud and/or shown on refreshable Braille display.

Screen readers can also communicate information on menus, controls, and other visual constructs to permit blind users to interact with these constructs. However, maintaining an off-screen model is a significant technical challenge: hooking the low-level messages and maintaining an accurate model are both difficult tasks.

Accessibility APIs

Operating system and application designers have attempted to address these problems by providing ways for screen readers to access the display contents without having to maintain an off-screen model. These involve the provision of alternative and accessible representations of what is being displayed on the screen accessed through an API. Examples include AT-SPI, Microsoft Active Accessibility (MSAA), IAccessible2, the Java Access Bridge, and the Apple Accessibility API. Screen readers can query the operating system or application for what is currently being displayed and receive updates when the display changes. For example, a screen reader can be told that the current focus is on a button and the button caption to be communicated to the user. This approach is considerably easier for screen readers, but fails when applications do not comply with the accessibility API: for example, Microsoft Word does not comply with the MSAA API, so screen readers must still maintain an off-screen model for Word or find another way to access its contents. One approach is to use available operating system messages and application object models to supplement accessibility APIs: the Thunder screenreader operates without an off-screen model in this way.

Screen readers can be assumed to be able to access all display content that is not intrinsically inaccessible. Web browsers, word processors, icons and windows and email programs are just some of the applications used successfully by screen reader users. However, using a screen reader is, according to some users, considerably more difficult than using a GUI and many applications have specific problems resulting from the nature of the application (e.g. animations in Macromedia Flash) or failure to comply with accessibility standards for the platform (e.g. Microsoft Word and Active Accessibility).

Self-voicing applications

Some programs speak or make other sounds so that they can be used by blind people or people who cannot see the screen. These programs are termed self-voicing and can be a form of assistive technology if they are designed to remove the need to use a screen reader.

Screen reader products

Many different commercial screen readers are available, with different approaches and features. For example, some screen readers can be scripted. Scripts are written for individual applications and users so the behaviour of the screen reader can be tailored to the application and user. JAWS enjoys an active script-sharing community, for example.

A person's choice of screen reader is dictated by many factors, including cost — screen readers can cost many hundreds of U.S. dollars — and the role of organisations like charities and schools. Screen reader choice is contentious and strong opinions and preferences are common.

Increasingly, screen readers are being included with operating system distributions. Recent versions of Microsoft Windows come with the rather basic Narrator. Apple has built VoiceOver, a much more fully-featured screen-reader, into Mac OS X. The console-based Oralux Linux distribution ships with three screen-reading environments: Emacspeak, Yasr and Speakup. The open source GNOME desktop environment long included Gnopernicus and now includes Orca, and as such Orca is shipped with many GNOME-based Linux distributions.

The most widely used screen readers[3] are separate commercial products: JAWS from Freedom Scientific, Window-Eyes from GW Micro, Hal from Dolphin Computer Access being prominent examples in the English-speaking market. There are also Open Source screen readers at varying levels of ability, including BRLTTY and Linux Screen Reader for *nix and more recently for Windows too, in the case of NonVisual Desktop Access.

A relatively new development in the field is web-based applications like Talklets that use JavaScript to add text to speech functionality to web content. The primary audience for such applications is those who have difficulty reading because of learning disabilities or language barriers. Although functionality remains limited compared to equivalent desktop applications, the major benefit is to increase the accessibility of said websites when viewed on public machines where users do not have permission to install custom software, giving people greater 'freedom to roam'.

Emulators

References

  1. ^ "Talking Terminals. BYTE, September 1982". Retrieved September 7. {{cite web}}: Check date values in: |accessdate= (help); Unknown parameter |accessyear= ignored (|access-date= suggested) (help)
  2. ^ Paul Blenkhorn, "The RCEVH project on micro-computer systems and computer assisted learning", British Journal of Visual Impairment, 4/3, 101-103 (1986). Free HTML version at Visugate. See also "Access to personal computers using speech synthesis. RNIB New Beacon No.76, May 1992". Retrieved August 17. {{cite web}}: Check date values in: |accessdate= (help); Unknown parameter |accessyear= ignored (|access-date= suggested) (help)
  3. ^ Theofanos, Mary Frances, and Redish, Janice (Ginny) (November-December 2003). "Guidelines for Accessible and Usable Web Sites: Observing Users Who Work With Screen Readers" (HTML). Self-published version. Redish & Associates. Retrieved 2007-26-01. {{cite journal}}: Check date values in: |accessdate= (help); Cite journal requires |journal= (help)CS1 maint: multiple names: authors list (link)

See also