Electronics and Software
Engineering Innovation


    Screen Magnification and Screen reader software for the Linux Operating system


In 1995 BEAM designed and produced the "XVI Terminal". The "XVI Terminal" was designed as an X-Windows network terminal that provided screen magnification and other tools to allow visually impaired users access to any Unix X-Windows GUI based system. In 1997 BEAM, with some support from a major UK bank who required such a system, designed and developed a screen reader for the "XVI Terminal" allowing severely visually impaired and the blind access to the same UNIX X-Windows GUI based systems.  Today we have an installed base of over 230 users.

The Screen reader system is designed to work with standard applications running on the host server and requires no modification of the application or libraries on that server. The screen reader intercepts communications at the X-Protocol level, from a modified X-Server, and builds up a model of the application.

We played a minor role in getting the Ultrasonix screen reader system to run under Linux, with a view to porting our XVI system to Linux one day. During the XVI development years we have had a number of requests from users asking for the XVI system on Linux, but we have been so busy developing, producing and supporting the "XVI Terminal" system we haven't had a chance, until now.

We have almost completed the port to the Linux operating system and intend to release an Alpha version system in RPM form soon.
At present there is limited support for speech/braille devices but the speech/braille server system we have developed specifically supports
the easy "plug-in" of additional drivers by third parties. The system remains based on gathering information at the X-Protocol level, but we have produced a prototype BEAM screen reader application interface, BSRAPI, to allow applications to provide information directly to the screen reader. We intend to provide BSRAPI support for the the main Linux GUI tool kits to simplify integration with current applications.

Future Development and Sales

We currently are developing this product on our own, there is no outside funding so we expect to gain a revenue selling the system as a product. However, we would like to open the project so that others could participate, but are as yet unsure on how to proceed with this.
Our current plan is to provide the XVI system to individual users for free and charge commercial organisations a sum equivalent to Microsoft Windows based screen readers. We may provide the Speech/braille server and the BSRAPI system under a GPL type license, but this has yet to be decided.
We would welcome information from anyone who wishes to help.

XVI System User Interface

The XVI system was designed to operate in a manner  based on the way sighted people use the applications. That is the application would present itself to the user in a 2D manner as on a screen. This approach aids both the teaching and support of visually impaired and blind users. Colleagues are familiar with the application, application documentation, teaching tools remain appropriate and sighted trainers can visually track use of the applications.

XVI System Technical Overview

The XVI system was designed to be as flexible as possible and keep the number of changes to system components minimal. The core protocols used in the system are:-

XVI X-Server extension protocol

Our X-Server extension provides: magnification functions and Keyboard Focus area events for the screen magnifier, X-Protocol snooping functions for the Screen Reader and keyboard overrides for applications.

XVI Speech/Braille Device protocol

The XVI speech/braille server provides application access to speech and/or braille devices. Multiple applications can use this server allowing console screen readers such as BrailleIn or speech enabled applications such as Emacs speak to function with the XVI system. The server can be implemented as software server on the local computer talking to attached devices or software speech synthesisers, or because of its network socket approach, by a dedicated speech/braille device on the network.

XVI Screen Reader Application protocol

The XVI Screen Reader can get information on the X-Windows applications by means of snooping on the X-Protocol and building up a model of the applications GUI. However this does not provide full information. The XVI Speech/Braille applications protocol is designed for this. When an application starts up it connects to the screen readers BSBAPI socket. The screen reader can now get information on the applications GUI and current state as well as be informed of events such as a change of keyboard focus. This allows the screen reader to provide the user with information and data from the applications GUI. The BSBAPI interface can be implemented by any application, not just GUI applications. With GUI applications the BSBAPI generally connects to the GUI library in use and can be built in to the standard Linux GUI libraries such as Motif, LessTif, KDE, GNOME and Tk.

Picture of tasks running on an XVI system

The tasks running on the system include:

The X-Server

The X-Server is a standard XFree86 X-Server with the addition of the XVI Extension. This displays the GUI onto a screen as normal, allowing, in the case of blind people, teachers and other users to see what is going on. The XVI Magnification and Screen Reader clients connect through the XVI extension.

The XVI Magnification Application

The XVI Screen Magnifier provides the ability to zoom and pan the display. It also provides other tools such as a magnifying glass, large cursors, cursor finding and colour override.
  • XVI Screen Magnifier User Manual, in HTML format
  • XVI Screen Magnifier User Manual, in PDF format
  • XVI Screen Reader Application

    The XVI Screen Reader provides a user interface to navigate and interrogate the running applications GUI displaying the information in braille or spoken forms. It maintains a model of each applications GUI gathered from either the X-Protocol requests the application makes and/or, if available, the applications BSBAPI interface. The Screen reader uses the BEAM Speech/braille server to access the speech and/or braille devices.
    Because it is based on the X-Protocol, limited application information is available, so additional information is provided by an application information system that creates a file describing the application that can be used by the screen reader.
  • XVI Screen Reader User Manual
  • XVI Speech/Braille Device server

    The XVI Speech/Braille server provides access to the speech and/or braille devices in the system.
    Multiple applications can use this server allowing console screen readers such as BrailleIn or speech enabled applications such as Emacs speak to function with the XVI system. Physical device access is provided by "plug-in" driver modules. Currently defined driver modules support the Alva Delphi 440 Braille display, the Apollo 2 speech Synthesisor and the IBM Via Voice software speech synthesisor.
  • XVI Speech/Braille Device Server API
  • XVI Demo Software Downloads

    To show the state of play with the XVI software, we have packaged up the current development binarirs together with a simple set of demo applications that the screen reader will work with. The XVI software is packaged as RPM's for the RedHat 7.0 distribution. They may work with other distributions but this has not been tested.

    Information on the downloading, installation and using the demo is given in demo.html.

    XVI Software Development Tools

    BEAM has produced a number of software development tools to aid development on the XVI system. Some of these include:
    Tool Usage
    Alvaem Alva Braille display emulator. Allows development of screen readers with braille interface, without an expensive braille line display unit.
    sbtest Speech/Braille system test program

    Other Information

    Contact beam at: xvil@beam.demon.co.uk