Linux Access HOWTO

Michael De La Rue, access-howto@ed.ac.uk v2.8, 4 May 1996

The Linux Access HOWTO covers the use of adaptive technology with Linux, In particular, using adaptive technology to make Linux accessible to those who could not use it otherwise. It also covers areas where Linux can be used within more general adaptive technology solutions.

Contents

1 Introduction 3 1.1 Distribution Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Comparing Linux with other Operating Systems 4 2.1 General Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Availability of Adaptive Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Inherent Usability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Visually Impaired 5

3.1 Seeing the Screen with Low Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.1 SVGATextMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.2 X windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.3 Producing Large Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.4 Outputting Large Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Aids for Those Who Can’t Use Visual Output . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.1 Braille Terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.2 Speech Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.3 Handling Console Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.4 Optical Character Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3 Braille Embossing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Hearing Problems 9 4.1 Visual Bells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5 Physical Problems 10

5.1 Unable to Use a Mouse/Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5.1.1 Unable to Use a Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2 Speech Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.3 Making the Keyboard Behave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5.3.1 Getting Rid of Auto Repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.3.2 Sticky Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.3.3 Strange Input Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.3.4 Controlling Physical Hardware From Linux . . . . . . . . . . . . . . . . . . . . . . . . 11

6 General Programming Issues 12 6.1 Try to Make it Easy to Provide Multiple Interfaces . . . . . . . . . . . . . . . . . . . . . . . . 12 6.2 Make software configurable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.3 Test the Software on Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.4 Make Output Distinct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7 Other Information 12

7.1 Linux Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 7.1.1 The Linux Info Sheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1.2 The Linux Meta FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1.3 The Linux Software Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1.4 The Linux HOWTO documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1.5 The Linux FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

7.2 WWW References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 7.3 Suppliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 7.4 Manufacturers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

7.4.1 Alphavision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 7.4.2 Blazie Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.4.3 Digital Equipment Corporation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.4.4 Kommunikations-Technik Stolper GmbH . . . . . . . . . . . . . . . . . . . . . . . . . . 16

8 Software Packages 16 8.1 Emacspeak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 8.2 BRLTTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.3 Rsynth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.4 xocr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.5 xzoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.6 NFBtrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

8.6.1 Compiling NFBtrans on Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

9 Hardware 21

9.1 Braille terminals driven from Screen Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9.1.1 Braillex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9.1.2 Brailloterm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9.1.3 Patching the Kernel for Braillex and Brailloterm . . . . . . . . . . . . . . . . . . . . . 22

9.2 Software Driven Braille Terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 9.2.1 CombiBraille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 9.2.2 Alva B.V. and Telesensory Systems Inc. displays . . . . . . . . . . . . . . . . . . . . . 23 9.2.3 Braille Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

9.3 Speech Synthesisers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9.3.1 DECTalk Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

10 Acknowledgements 24

1 Introduction

The aim of this document is to collect all information on the use of Linux by people who have any special difficulty using it which can be overcome with specific aids, either in software or hardware. In other words, the blind, the partially sighted, deaf and the physically disabled. As any other technologies or pieces of information are discovered they will be added. The biggest problem is that, right now, very few of such people are using Linux due to the difficulties involved among other things. This means that development is not taking account of special needs and so the system is becoming more difficult to use. I hope this HOWTO will solve that problem. Please send any comments or extra information or offers of assistance to access-howto@ed.ac.uk This address might become a mailing list in future, or be automatically handed over to a future maintainer of the HOWTO, so please don’t use it for personal email. Normal mail can be sent to

     Linux Access HOWTO
     23 Kingsborough Gardens
     Glasgow G12 9NH

     Scotland
     U.K.

And will gradually make its way round the world to me. Email will be faster by weeks.

I can be personally contacted using miked@ed.ac.uk. Since I use mail filtering on all mail I receive, please use the other address except for personal email. This is most likely to lead to an appropriate response.

1.1 Distribution Policy

     The ACCESS-HOWTO is copyrighted (c) 1996 Michael De La Rue
     A verbatim copy may be reproduced or distributed in any medium physical or electronic
     without permission of the author.  Translations are similarly permitted without express
     permission if it includes a notice on who translated it.
     Short quotes may be used without prior consent by the author.  Derivative work and
     partial distributions of the UUCP-HOWTO must be accompanied with either a verbatim copy
     of this file or a pointer to the verbatim copy.
     Commercial redistribution is allowed and encouraged; however, the author would
     appreciate being notified of any such distributions (as a courtesy).
     In short, we wish to promote dissemination of this information through as many channels
     as possible.  However, we do wish to retain copyright on the HOWTO documents.
     We further want that ALL information provided in the HOWTOs is disseminated.  If you
     have questions, please contact Greg Hankins, the Linux HOWTO coordinator, at
     gregh@sunsite.unc.edu.

2 Comparing Linux with other Operating Systems

2.1 General Comparison

The best place to find out about this is in such documents as the ‘Linux Info Sheet’, ‘Linux Meta FAQ’ and ‘Linux FAQ’ (see 7.1). Major reasons for a visually impaired person to use Linux would include it’s inbuilt networking which gives full access to the Internet. More generally, users are attracted by the full development environment included.

2.2 Availability of Adaptive Technology

There is almost nothing commercial available specifically for Linux. There is a noticeable amount of free software which would be helpful in adaptation, for example, a free speech synthesiser and some free voice control software. There are also a number of free packages which provide good support for certain braille terminals, for example.

2.3 Inherent Usability

Linux has the vast advantage over Windows that most of it’s software is command line oriented. This is now changing and almost everything is now available with a graphical front end. However, because it is in origin a programmers operating system, line oriented programs are still being written covering almost all new areas of interest. For the physically handicapped, this means that it is easy to build custom programs to suit their needs. For the visually impaired, this should make use with a speech synthesiser or braille terminal easy and useful for the foreseeable future.

Linux’s multiple virtual consoles system would make it practical to use as a multi-tasking operating system by a visually impaired person.

The windowing system used by Linux (X11) comes with many programming tools, and should be adaptable. However, in practice, the adaptive programs available up till now have been more primitive than those on the Macintosh or Windows. They are, however, completely free (as opposed to hundreds of pounds) and the quality is definitely improving.

In principle it should be possible to put together a complete, usable Linux system for a visually handicapped person for about $500 (cheap & nasty PC + sound card). This compares with many thousands of dollars for other operating systems (screen reader software/ speech synthesiser hardware). I have yet to see this. I doubt it would work in practice because the software speech synthesisers available for Linux aren’t sufficiently good. For a physically handicapped person, the limitation will still be the expense of input hardware.

3 Visually Impaired

I’ll use two general categories here. People who are partially sighted and need help seeing / deciphering / following the text and those who are unable to use any visual interface whatsoever.

3.1 Seeing the Screen with Low Vision

There are many different problems here. Often magnification can be helpful, but that’s not the full story. Sometimes people can’t track motion, sometimes people can’t find the cursor unless it moves. This calls for a range of techniques, the majority of which are only just being added to X.

3.1.1 SVGATextMode

This program is useful for improving the visibility of the normal text screen that Linux provides. It allows full access to the possible modes of an SVGA graphics card. For example, the text can be made larger so that only 50 by 15 characters appear on the screen (normally it’s 80 by 25). There isn’t any easy way to zoom in on sections of a screen, but you can resize when needed.

3.1.2 X windows

There are a large number of ways of improving X windows. They don’t add up to a coherent set of features yet, but if set up correctly could solve many problems.

Different Screen Resolutions The X server can be set up with many different resolutions. A single key press can then change between them allowing difficult to read text to be seen.

In the file /etc/XF86Config, you have an entry in the Screen section with a line beginning with modes. If, for example, you set this to

     Modes       "1280x1024" "1024x768" "800x600" "640x480" "320x240"

with each mode set up correctly (which requires a reasonably good monitor for the highest resolution mode), you will be able to have four times screen magnification, switching between the different levels using

Ctrl+Alt+Keypad-Plus and Ctrl+Alt+Keypad-Minus

Moving the mouse around the screen will scroll you to different parts of the screen. For more details on how to set this up you should see the documentation which comes with the XFree86 X server.

Screen Magnification There are two known screen magnification programs, xmag which will magnify a portion of the screen as much as needed but is very primitive. The other one is xzoom. Previously I said that there had to be something better than xmag, well this is it. See 8.5.

Change Screen Font The screen fonts all properly written X software should be changeable. You can simply make it big enough for you to read. This is generally accomplished by putting a line the file .Xdefaults which should be in your home directory. By putting the correct lines in this you can change the fonts of your programs, for example

Emacs.font: -sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-*

To see what fonts are available, use the program xfontsel under X.

There should be some way of changing things at a more fundamental level so that everything comes out with a magnified font. This could be done by renaming fonts, and by telling telling font generating programs to use a different level of scaling. If someone gets this to work properly, please send me the details of how you did it.

Cross Hair Cursors etc.. For people that have problems following cursors there are many things which can help;

• crosshair cursors (horizontal and vertical lines from the very edge of the screen)

• flashing cursors (flashes when you press a key)

There is no known software for this. I tried really hard to find something; it must exist somewhere, it would be so easy to write I’m sure

For now the best that can be done is to change the cursor bitmap. Make a bitmap file as you want it, and another one which is the same size, but completely black. Convert them to the XBM format and run

        xsetroot -cursor cursorfile.xbm black-file.xbm

actually, if you understand masks, then the black-file doesn’t have to be completely black, but start with it like that. The .Xdefaults file controls cursors used by actual applications.

3.1.3 Producing Large Print

Using large print with Linux is quite easy. There are several techniques.

LaTeX / TeX LaTeX is an extremely powerful document preparation system. It may be used to produce large print documents of almost any nature. Though somewhat complicated to learn, many documents are produced using LaTeX or the underlying typesetting program, TeX.

this will produce some reasonably large text

     \font\magnifiedtenrm=cmr10 at 20pt  \% setup a big font
     \magnifiedtenrm
     this is some large text
     \bye

For more details, see the LaTeX book which is available in any computer book shop.

3.1.4 Outputting Large Text

Almost all Linux printing uses postscript, and Linux can drive almost any printer using it. I output large text teaching materials using a standard Epson dot matrix printer.

Can people please suggest other tools for generating large text. what word processor would be good to suggest?

3.2 Aids for Those Who Can’t Use Visual Output

For someone who is completely unable to use a normal screen there are two alternatives Braille and Speech. Obviously for people who also have hearing loss, speech isn’t always useful, so braille will always be important.

If you can choose, which should you choose? This is a matter of ‘vigorous’ debate. Speech is rapid to use, reasonably cheap and especially good for textual applications (e.g. reading a long document like this one). Problems include needing a quiet environment, possibly needing headphones to work without disturbing others and avoid being listened in on by them (not available for all speech synthesisers).

Braille is better for applications where precise layout is important (e.g. spreadsheets). Also can be somewhat more convenient if you want to check the beginning of a sentence when you get to the end. Braille is, however, much more expensive and slower for reading text. Obviously, the more you use Braille, the faster you get. Grade II Braille is difficult to learn, but is almost certainly worth it since it is much faster. This means that if you don’t use Braille for a fair while you can never discover its full potential and decide for yourself. Anyway, enough said on this somewhat controversial topic.

based on original by James Bowden jrbowden@bcs.org.uk

3.2.1 Braille Terminals

Braille terminals are normally a line or two of braille. Since these are at most 80 characters wide and normally 40 wide, they are somewhat limited. I know of two kinds

• Hardware driven braille terminals.

• Software driven braille terminals.

The first kind works only when the computer is in text mode and reads the screen memory directly. See section 9.1.

The second kind of braille terminal is similar, in many ways, to a normal terminal screen of the kind Linux supports automatically. Unfortunately, they need special software to make them usable.

There are two packages which help with these. The first, BRLTTY, works with several Braille display types and the authors are keen to support more as information becomes available. Currently BRLTTY supports Tieman B.V.’s CombiBraille series, Alva B.V.’s ABT3 series and Telesensory Systems Inc.’s PowerBraille and Navigator series displays. theuseofBlazieEngineering′sBrailleLiteasaBrailledisplayisdiscouraged, butsupportmayberenewedondemand. See section 9.2.

The other package I am aware of is Braille Enhanced Screen. I still haven’t seen a version of this. This should allow user access to a braille terminal with many useful features such as the ability to run different programs in different ‘virtual terminals’ at the same time.

3.2.2 Speech Synthesis

Speech Synthesisers take (normally) ASCII text and convert it into actual spoken output. It is possible to have these implemented as either hardware or software. Unfortunately, the free Linux speech synthesisers are, reportedly, not good enough to use as a sole means of output.

Hardware speech synthesisers are the alternative. The only one that I know of that works is DECtalk from Digital, driven by Emacspeak.

3.2.3 Handling Console Output

When it starts up, Linux at present puts all of its messages straight to the normal (visual) screen. This could be changed if anyone with a basic level of kernel programming ability wants to do it. This means that it is impossible for most braille devices to get information about what Linux is doing before the operating system is completely working.

It is only at that stage that you can start the program that you need for access. If the BRLTTY program is used and run very early in the boot process, then from this stage on the messages on the screen can be read. Most hardware and software will still have to wait until the system is completely ready. This makes administering a Linux system difficult, but not impossible for a visually impaired person.

There is one braille system that can use the console directly, called the Braillex. This is designed to read directly from the screen memory. Unfortunately the normal scrolling of the terminal gets in the way of this. If you are using a Kernel newer than 1.3.75, just type linux no-scroll at the LILO prompt or configure LILO to do this automatically. If you have an earlier version of Linux, see section 9.1

The other known useful thing to do is to use sounds to say when each stage of the boot process has been reached. (T.V.Raman suggestion)

3.2.4 Optical Character Recognition

There is a free Optical Character Recognition program for Linux. It needs training to recognise the particular font that it is going to use and I have no idea how good it is. In principle, if it is good enough, it should allow visually impaired people to read normal books to some extent (accuracy of OCR is never high enough..).

More details would be nice. It seems to have to be trained which may make it useless?

3.3 Braille Embossing

Linux should be the perfect platform to drive a braille embosser from. There are many formatting tools which are aimed specifically at the fixed width device. A braille embosser can just be connected to the serial port using the standard Linux printing mechanisms. For more info see the Linux Printing HOWTO.

There is free software package which acts as a multi-lingual grade two translator available for Linux from the American “National Federation for the Blind”. This is called NFBtrans. See section 8.6 for more details.

4 Hearing Problems

For the most part there is little problem using a computer for people with hearing problems. Almost all of the output is visual. There are some situations where sound output is used though. For these, the problem can sometimes be worked round by using visual output instead.

4.1 Visual Bells

By tradition, computers go ‘beep’ when some program sends them a special code. This is generally used to get attention to the program and for little else. Most of the time, it’s possible to replace this by making the entire screen (or terminal emulator) flash. How to do this is very variable though. xterm

for xterm, you can either change the setting by pressing the middle mouse button while holding down the control key, or by putting a line with just ‘XTerm*visualBell: true’ (not the quotes of course) in the file .Xdefaults in your home directory.

the console The console is slightly more complex. Please see Alessandro Rubini’s Visual Bell mini HOWTO for details on this. Available along with all the other Linux documentation (see section 7.1). Mostly the configuration has to be done on a per application basis, or by changing the Linux Kernel its self.

5 Physical Problems

Many of these problems have to be handled individually. The needs of the individual, the ways that they can generate input and other factors vary so much that all that this HOWTO can provide is a general set of pointers to useful software and expertise.

5.1 Unable to Use a Mouse/Pointer

Limited mobility can make it difficult to use a mouse. For some people a tracker ball can be a very good solution, but for others the only possible input device is a keyboard (or even something which simulates a keyboard). For normal use of Linux this shouldn’t be a problem (but see the section 5.3), but for users of X, this may cause major problems under some circumstances.

Fortunately, the fvwm window manager has been designed for use without a pointer and most things can be done using this. I actually do this myself when I lose my mouse (don’t ask) or want to just keep typing. fvwm is included with all distributions of Linux that I know of. Actually using other programs will depend on their ability to accept key presses. Many X programs do this for all functions. Many don’t. I think sticky mouse keys, which is due in a future release of X, should make use of most programs possible.

5.1.1 Unable to Use a Keyboard

People who are unable to use a keyboard normally can sometimes use one through a headstick or a mouthstick. This causes calls for special setup of the keyboard, which is, as far as I know, impossible at present for Linux. This should become available very soon though because the software needed to implement the main parts of this is already written and in testing.

At that point, there should be a program which will display a keyboard on the screen and accept input from some kind of pointer, including, for example, eye movement.

5.2 Speech Recognition

Speech recognition is a very powerful tool for enabling computer use. There are two recognition systems that I know of for Linux, the first is ears which is described as “recognition is not optimal. But it is fine for playing and will be improved”, the second is AbbotDemo “A speaker independent continuous speech recognition system” which may well be more interesting, though isn’t available for commercial use without prior arrangement. See the Linux software map for details (see section 7.1).

5.3 Making the Keyboard Behave

5.3.1 Getting Rid of Auto Repeat

To turn off key repeat on the Linux console run this command (I think it has to be run once per console; a good place to run it would be in your login files, .profile or .login in your home directory).

setterm -repeat off

To get rid of auto repeat on the X server, you can use the command

xset -r

which you could put into the file which get runs when you start using X (often .xsession or .xinit under some setups)

Both of these commands are worth looking at for more ways of changing behaviour of the console.

5.3.2 Sticky Keys

Sticky keys are not available on Linux in any form as far as I know. For the normal console they would need changes to the kernel code. This wouldn’t be very difficult, but would need someone who had basic kernel programming skills to do it.

For X windows under Linux, the code already exists, but is not available for normal users. Since ‘normal users’ includes me, at present, I cannot confirm that this will be usable.

5.3.3 Strange Input Hardware

There are a number of devices worth considering for input such as touch screens and eye pointers. Most of these will need a ‘device driver’ written for them. This is not terribly difficult if the documentation is available, but requires someone with good C programming skills. Please see the Linux Kernel Hackers guide and other kernel reference materials for more information. Once this is set up, it should be possible to use these devices like a normal mouse.

5.3.4 Controlling Physical Hardware From Linux

The main group of interest here are the Linux Lab Project. Generally, much GPIB (a standard scientific equipment interface also known as the IEEE bus) hardware can be controlled.

6 General Programming Issues

Many of the issues worth taking into account are the same when writing software which is designed to be helpful for access as when trying to follow good design.

6.1 Try to Make it Easy to Provide Multiple Interfaces

If your software is only usable through a graphical interface then it can be very hard to make it usable for someone who can’t see. If it’s only usable through a line oriented interface, then someone who can’t type will have difficulties.

Provide keyboard shortcuts as well as the use of the normal X pointer (generally the mouse). You can almost certainly rely on the user being able to generate key presses to your application.

6.2 Make software configurable.

If it’s easy to change fonts then people will be able to change to one they can read. If the colour scheme can be changed then people who are colour blind will be more likely to be able to use it. If fonts can be changed easily then the visually impaired will find your software more useful.

6.3 Test the Software on Users.

If you have a number of people use your software, each with different access problems then they will be more likely to point up specific problems. Obviously, this won’t be practical for everybody, but you can always ask for feedback.

6.4 Make Output Distinct

Where possible, make it clear what different parts of your program are what. Format error messages in a specific way to identify them. Under X, make sure each pane of your window has a name so that any screen reader software can identify it.

7 Other Information

7.1 Linux Documentation

The Linux documentation is critical to the use of Linux and most of the documents mentioned here should be included in recent versions of Linux, from any source I know of.

If you want to get the documentation on the Internet, here are some example sites. These should be mirrored at most of the major FTP sites in the world.

• ftp.funet.fi (128.214.6.100) : /pub/OS/Linux/doc/ • tsx-11.mit.edu (18.172.1.2) : /pub/linux/docs/

• sunsite.unc.edu (152.2.22.81) : /pub/Linux/docs/

7.1.1 The Linux Info Sheet

A simple and effective explanation of what Linux is. This is one of the things that you should hand over when you want to explain why you want Linux and what it is good for.

The  Linux  Info  Sheet  is

available on the World Wide Web from <http://sunsite.unc.edu/mdw/HOWTO/INFO-SHEET.html> and

other mirrors.

7.1.2 The Linux Meta FAQ

A list of other information resources, much more complete than this one. The meta FAQ is available on the

World Wide Web from <http://sunsite.unc.edu/mdw/HOWTO/META-FAQ.html> and other mirrors

7.1.3 The Linux Software Map

The list of software available for Linux on the Internet. Many of the packages listed here were found through this. The LSM is available in a searchable form from <http://www.boutell.com/lsm/>. It is also available in a single text file in all of the FTP sites mentioned in section 7.1.

7.1.4 The Linux HOWTO documents

The HOWTO documents are the main documentation of Linux. This Access HOWTO is an example of one.

The home site for the Linux Documentation Project which produces this information is <http://sunsite.unc.edu/mdw/linux.html>. There are also many companies producing these in book form. Contact a local Linux supplier for more details.

The Linux HOWTO documents will be in the directory HOWTO in all of the FTP sites mentioned in section 7.1.

7.1.5 The Linux FAQ

A list of ‘Frequently Asked Questions’ with answers which should solve many common questions. The FAQ list is available from

<http://www.cl.cam.ac.uk/users/iwj10/linux-faq/> as well as all of the FTP sites mentioned in section

7.1.

7.2 WWW References

The World Wide Web is, by it’s nature, very rapidly changing. If you are reading this document in an old version then some of these are likely to be out of date. The original version that I maintain on the WWW shouldn’t go more than about two weeks out of date, so refer to that please. I’ll be using MOMspider to check for links disappearing.

Linux Documentation is available from <http://sunsite.unc.edu/mdw/linux.html>
Linux Access On the Web <http://www.tardis.ed.ac.uk/~mikedlr/access/> with all of the versions of
the HOWTO in <http://www.tardis.ed.ac.uk/~mikedlr/access/HOWTO/>. Preferably, however, down-

load from one of the main Linux FTP sites. If I get a vast amount of traffic I’ll have to close down these pages and move them elsewhere.

Emacspeak  WWW  page

<http://www.research.digital.com/CRL/personal/raman/emacspeak/emacspeak.html>
BRLTTY unofficial WWW page <http://www.sf.co.kr/t.linux/new/brltty.html>

Yahoo  (one  of  the  most  major  Internet  catalogues)

<http://www.yahoo.com/Society and Culture/Disabilities/Adaptive Technology/>
The Linux Lab Project <http://www.fu-berlin.de/~clausi/>

7.3 Suppliers

This is a UK supplier for the Braillex.

Alphavision Limited

7.4 Manufacturers

7.4.1 Alphavision

I think that they are a manufacturer? RNIB only lists them as a supplier, but others say they make the Braillex.

Alphavision Ltd
Seymour House
Copyground Lane
High Wycombe
Bucks HP12 3HE
England
U.K.
Phone: +44 1494-530 555

Linux Supported Alphavision AT Products

• Braillex

7.4.2 Blazie Engineering

The Braille Lite was supported in the original version of BRLTTY. That support has now been discontinued. If you have one and want to use it with Linux then that may be possible by using this version of the software.

Blazie Engineering
105 East Jarrettsville Rd.
Forest Hill, MD 21050
U.S.A.
Phone: +1 (410) 893-9333
FAX:   +1 (410) 836-5040
BBS:   +1 (410) 893-8944
E-Mail <htmlurl url="mailto:info@blazie.com" name="info@blazie.com">
WWW <url url="http://www.blazie.com/">

Blazie AT Products

• Braille Lite (support discontinued)

7.4.3 Digital Equipment Corporation

Digital Equipment Corporation
P.O. Box CS2008
Nashua
NH 03061-2008
U.S.A
Order: +1 800-722-9332
Tech info: +1 800-722-9332
FAX :  +1 603-884-5597
WWW <url url="http://www.digital.com/">

Linux Supported DEC AT Products

• DECTalk Express 7.4.4 Kommunikations-Technik Stolper GmbH

KTS Stolper GmbH
Herzenhaldenweg 10
73095 Albershausen
Germany
Phone: +49 7161 37023
Fax:   +49 7161 32632

Linux Supported KTG AT Products

• Brailloterm

8 Software Packages

References in this section are taken directly from the Linux Software map which can be found in all standard places for Linux documentation and which lists almost all of the software available for Linux.

8.1 Emacspeak

Emacs is the ultimate text editor. In fact it’s far beyond a text editor, and so this package is much more useful than you might imagine. You can run any other program from within emacs, getting any output it generates to appear in the emacs terminal emulator. The advantage though, is that Emacspeak can understand the layout of the screen and can intelligently interpret the meaning of, for example, a calendar, which would just be a messy array of numbers otherwise. The originator of the package manages to look after his own Linux machine entirely, doing all of the administration from within emacs.

     B.Begin3
     Title:           Emacspeak
     Version:        3.52
     Entered-date:    04JUL95
     Description:     Emacspeak an Emacs extension  to provide
          complete spoken feedback to a visually impaired user.
                 Requires a speech synthesizer.
                 I'm visually impaired
                     I currently use Emacspeak  on my laptop.
                         Note--  You are not restricted to just Emacs --emacspeak
                             provides spoken access
                                 to everything you can do from a terminal.
     Keywords:        Speech Access, Screen Reading,
         Access for Visually Impaired Users.
     Author:          raman@crl.dec.com (T. V. Raman)

8. Software Packages 17

Maintained-by:  raman@crl.dec.com (T. V. Raman)
Primary-site:    ftp://crl.dec.com:/pub/digital/emacspeak
                                  85K emacspeak-3.52.tar.gz
                                          150K sounds.tar
Alternate-site: http://www.research.digital.com/CRL/personal/raman/emacspeak/emacspeak.html
Original-site:   Implemented originally for Linux
Platforms:       Dectalk Synthesizer, GNU Emacs 19, TCLX (Extended TCL)
Copying-policy:  GPL
End

8.2 BRLTTY

This is a program for running a serial port Braille terminal.

22 March 1996: The authors hope to make the first official release, version 1.0, sometime in the next few months. This version will support Alva B.V.’s ABT3 series and Telesensory Systems Inc.’s PowerBraille Navigator series displays, but support for Blazie Engineering’s Braille Lite will be discontinued, as it is not really designed to be a Braille display and so does not have the necessary features. In the meantime, if you have an Alva or TSI display and want to use BRLTTY, contact the maintainer, Nikhil Nair <nn201@cus.cam.ac.uk>.

Begin3
Title:          BRLTTY - Access software for Unix for a blind person
                         using a soft Braille terminal
Version:        0.22, 22SEP95
Entered-date:   24SEP95
Description:    BRLTTY is a daemon which provides access to a Unix console
                for a blind person using a soft Braille display (see the
                README file for a full explanation).
                BRLTTY only works with text-mode applications.
                We hope that this system will be expanded to support
                other soft Braille displays, and possibly even other
                Unix-like platforms.
Keywords:       Braille console access visually impaired blind
Author:         nn201@cam.ac.uk (Nikhil Nair)
                jrbowden@bcs.org.uk (James Bowden)
Maintained-by:  nn201@cam.ac.uk (Nikhil Nair)
Primary-site:   sunsite.unc.edu /pub/Linux/utils/console
                30kb brltty-0.22.tar.gz (includes the README file)
                 5kb brltty-0.22.README
Alternate-site:
Original-site:
Platforms:      Linux (kernel 1.1.92 or later), not X/graphics.
                Tieman B.V.'s CombiBraille (25/45/85 cell),
                (with no support for the parallel interface or
                in-built speech synthesizer;

                     Blazie Engineering's Braille Lite (not recommended).
     Copying-policy: GPL
     End

8.3 Rsynth

This is a speech synthesiser listed in the Linux Software Map. It doesn’t apparently work well enough for use by a visually impaired person. Use hardware instead, or improve it.. a free speech synthesiser would be really really useful.

8.4 xocr

xocr is a package which implements optical character recognition for Linux. As with Rsynth, I don’t think that this will be acceptable as a package for use as a sole means of input by a visually impaired person. I suspect that the algorithm used means that it will need to be watched over by someone who can check that it is reading correctly. I would love to be proved wrong.

8.5 xzoom

xzoom is a screen magnifier, in the same vein as xmag, but sufficiently better to be very useful to a visually impaired person. The main disadvantages of xzoomare that it can’t magnify under its self, that some of the key controls aren’t compatible with fvwm, the normal Linux window manager and that it’s default configuration doesn’t run over a network (this can be fixed at some expense to speed). Apart from that though, it’s excellent. It does continuous magnification which allows you to, for example, scroll a document up and down, whilst keeping the section you are reading magnified. Alternatively, you can move a little box around the screen, magnifying the contents and letting you search for the area you want to see. xzoom is also available as an rpm from the normal RedHat sites, making it very easy to install for people using the rpm system (such as Redhat users).

     Begin3
     Title:<sect1>xzoom<label id="xzoom">
     <P><tt/xzoom/ is a screen magnifier, in the same vein as <tt/xmag/,
     but sufficiently better to be very useful to a visually impaired
     person.  The main disadvantages of <tt/xzoom/are that it can't magnify
     under its self, that some of the key controls aren't compatible with
     <tt/fvwm/, the normal Linux window manager and that it's default
     configuration doesn't run over a network (this can be fixed at some
     expense to speed).  Apart from that though, it's excellent.  It does
     continuous magnification which allows you to, for example, scroll a
     document up and down, whilst keeping the section you are reading
     magnified.  Alternatively, you can move a little box around the
     screen, magnifying the contents and letting you search for the area
     you want to see.  <tt/xzoom/ is also available as an rpm from the

8. Software Packages 19

normal RedHat sites, making it very easy to install for people using
the rpm system (such as Redhat users).
<tscreen><verb>
Begin3
Title:          xzoom
Version:        0.1
Entered-date:   Mar 30 1996
Description:    xzoom can magnify (by integer value) rotate
                (by a multiple if 90 degrees) and mirror about
                                the X or Y axes areas on X11 screen
and display
                                them in it's window.
Keywords:       X11 zoom magnify xmag
Author:         Itai Nahshon <nahshon@best.com>
Maintained-by:  Itai Nahshon <nahshon@best.com>
Primary-site:   sunsite.unc.edu
                probably in /pub/Linux/X11/xutils/xzoom-0.1.tgz
Platforms:      Linux+11. Support only for 8-bit depth.
                Tested only in Linux 1.3.* with the XSVGA 3.1.2
driver.
                                Needs the XSHM extension.
Copying-policy: Free
End
          xzoom
Version:        0.1
Entered-date:   Mar 30 1996
Description:    xzoom can magnify (by integer value) rotate
                (by a multiple if 90 degrees) and mirror about
                                the X or Y axes areas on X11 screen
and display
                                them in it's window.
Keywords:       X11 zoom magnify xmag
Author:         Itai Nahshon <nahshon@best.com>
Maintained-by:  Itai Nahshon <nahshon@best.com>
Primary-site:   sunsite.unc.edu
                probably in /pub/Linux/X11/xutils/xzoom-0.1.tgz
Platforms:      Linux+11. Support only for 8-bit depth.
                Tested only in Linux 1.3.* with the XSVGA 3.1.2
driver.
                                Needs the XSHM extension.
Copying-policy: Free
End

8.6 NFBtrans

nfbtrans is a multi-grade braille translation program distributed by the National Federation for the Blind in the U.S.A. It is released for free in the hope that someone will improve it. Languages covered are USA English, UK English, Spanish, Russian, Esperanto, German, Biblical Hebrew and Biblical Greek, though others could be added just by writing a translation table. Also covered are some computer and math forms. I have managed to get it to compile under Linux, though, not having a braille embosser available at the present moment I have not been able to test it.

NFBtrans is available from <ftp://nfb.org/ftp/nfb/braille/nfbtrans/>. After downloading it, you will have to compile it.

8.6.1 Compiling NFBtrans on Linux

I have returned this patch to the maintainer of NFBtrans and he says that he has included it, so if you get a version later than 740, you probably won’t have to do anything special. Just follow the instructions included in the package.

        unzip -L NFBTR740.ZIP   \#or whatever filename you have
        mv makefile Makefile

Next save the following to a file (e.g. patch-file)

     *** nfbpatch.c.orig     Tue Mar 12 11:37:28 1996
     --- nfbpatch.c  Tue Mar 12 11:37:06 1996
     ***************
     *** 185,190 ****
     --- 185,193 ----
         return (finfo.st\_size);
       \}                /* filelength */
     + \#ifndef linux
     + /* pretty safe to assume all linux has usleep I think ?? this should be
     + done properly anyway */
       \#ifdef SYSVR4
       void usleep(usec)
         int usec;
     ***************
     *** 195,200 ****
     --- 198,204 ----
       \}                /* usleep */
       \#endif
     + \#endif
       void beep(count)
         int count;

and run

     patch {\(<\)} patch-file

then type

     make

and the program should compile.

9 Hardware

9.1 Braille terminals driven from Screen Memory

These are braille terminals that can read the screen memory directly in a normal text mode. It is possible to use it to work with Linux for almost all of the things that a seeing user can do on the console, including installation. However, it has a problem with the scrolling of the normal Linux kernel, so a kernel patch needs to be applied. See 9.1.3.

9.1.1 Braillex

The Braillex is a terminal which is designed to read directly from the Screen memory, thus getting round any problems with MS-DOS programs which don’t behave strangely. If you could see it on screen, then this terminal should be able to display it in braille. In Linux, unfortunately, screen handling is done differently from MS-DOS, so this has to be changed somewhat.

To get this terminal to work, you have to apply the patch given below in section 9.1.3. Once this is done. The Braillex becomes one of the most convenient ways to use Linux as it allows all of the information normally available to a seeing person to be read. Other terminals don’t start working until the operating system has completely booted.

The Braillex is available with two arrangements of braille cells (80x1 or 40x2) and there is a model, called the IB 2-D which also has a vertical bar to show information about all of the lines of the screen (using 4 programmable dots per screen line)

Price: 8,995 UKP (pounds sterling) or 11495 UKP for 2-D
Manufacturer: Alphavision Limited (UK)
Suppliers: ????

9.1.2 Brailloterm

“What is Brailloterm?

It’s a refresh-able display braille, made by KTS Kommunikations-Technik Stolper GmbH. It has 80 braille cells in an unique line. Each cell has 8 dots that are combined(up/down) to represent a character. By default, Brailloterm shows me the line in which the screen cursor is. I can use some functions in Brailloterm to see any line in the screen.”

Jose Vilmar Estacio de Souza <jvilmar@embratel.net.br>

Jose then goes on to say that the terminal can also use the serial port under DOS but that it needs a special program. I don’t know if any of the ones for Linux would work.

As with Braillex, this needs a special patch to the kernel work properly. See section 9.1.3.

Price: about 23.000,- DM /  \$ 15.000,
Manufacturer: Kommunikations-Technik Stolper GmbH
Suppliers: ????

9.1.3 Patching the Kernel for Braillex and Brailloterm

This probably also applies to any other terminals which read directly from screen memory to work under MS-DOS. Mail me to confirm any terminals that you find work.

I am told this patch applies to all Kernels version 1.2.X. It should also work on all Kernel versions from 1.1.X to 1.3.72, with just a warning from patch (I’ve tested that the patch applies to 1.3.68 at least). From 1.3.75 the patch is no longer needed because the Kernel can be configured not to scroll using ‘linux no-scroll’ at the LILO prompt. See the Boot Prompt HOWTO for more details.

     *** drivers/char/console.c\~{}  Fri Mar 17 07:31:40 1995
     --- drivers/char/console.c      Tue Mar  5 04:34:47 1996
     ***************
     *** 601,605 ****
       static void scrup(int currcons, unsigned int t, unsigned int b)
       \{
     !       int hardscroll = 1;
             if (b > video\_num\_lines || t >= b)
     --- 601,605 ----
       static void scrup(int currcons, unsigned int t, unsigned int b)
       \{
     !       int hardscroll = 0;
             if (b > video\_num\_lines || t >= b)

To apply it:

1. Save the above text to a file (say patch-file)

2. change to the drivers/char directory of your kernel sources

3. run

                          patch {\(<\)} patch-file

4. Compile your kernel as normal

Apply those patches and you should be able to use the braille terminal as normal to read the Linux Console.

Put in words, the patch just means ‘change the 1 to a 0 in the first line of the function scrup which should be near line 603 in the file drivers/char/console.c’. The main thing about patch is that program understands this, and that it knows how to guess what to do when the Linux developers change things in that file.

If you want to use a more modern kernel with completely disabled scrolling, (instead of the boot prompt solution I already mentioned), please use the following patch. This does not apply to kernels earlier than 1.3.75.

     *** console.c\~{}       Fri Mar 15 04:01:45 1996
     --- console.c   Thu Apr  4 13:29:48 1996
     ***************
     *** 516,520 ****
       unsigned char has\_wrapped;          /* all of videomem is data of fg\_console */
       static unsigned char hardscroll\_enabled;
     ! static unsigned char hardscroll\_disabled\_by\_init = 0;
       void no\_scroll(char *str, int *ints)
     --- 516,520 ----
       unsigned char has\_wrapped;          /* all of videomem is data of fg\_console */
       static unsigned char hardscroll\_enabled;
     ! static unsigned char hardscroll\_disabled\_by\_init = 1;
       void no\_scroll(char *str, int *ints)

9.2 Software Driven Braille Terminals

The principle of operation of these terminal is very close to that of a CRT terminal such as the VT100. They connect to the serial port and the computer has to run a program which sends them output. At present there is one known (BRLTTY, see section 8.2) and one rumoured program for Linux (Braille enhanced screen.. no details yet).

9.2.1 CombiBraille

This is the recommended braille terminal to use with version 0.22BETA of the BRLTTY software. It comes in three versions with 25, 45 or 85 braille cells.

Price: around 4600 UKP for the 45 cell model ...
Manufacturer: Tieman B.V.
Suppliers: Concept Systems, Nottingham, England (voice +44 115 925 5988)

9.2.2 Alva B.V. and Telesensory Systems Inc. displays

These will be supported in the forthcoming version 1.0 of BRLTTY.

9.2.3 Braille Lite

This is more a portable computer than a terminal. It could, however, be used with BRLTTY version 0.22 (but not newer versions) as if it was a normal braille terminal. Unfortunately, many of the features available with the CombiBraille cannot be used with the Braille Lite. This means that it should be avoided for Linux use where possible.

Price: \$3,395.00
Manufacturer: Blazie Engineering
Suppliers: ????

9.3 Speech Synthesisers

Speech synthesisers normally connect to the serial port of a PC. Useful features include

• Braille labels on parts

• Many voices to allow different parts of document to be spoken differently

• Use with headphones (not available on all models)

9.3.1 DECTalk Express

This is a hardware speech synthesiser. It is recommended for use with Emacspeak and in fact the DECTalk range are the only speech synthesisers which work with that packages at present. This synthesiser has every useful feature that I know about. The only disadvantage that I know of at present is price.

Price: \$1195.00
Manufacturer: Digital Equipment Corporation
Suppliers: Many.  I'd like details of those with Specific Linux
        support / delivering international or otherwise of note only
        please.  Otherwise refer to local organisations.
        Digital themselves or the Emacspeak WWW pages.

10 Acknowledgements

Most of this document was created from various information sources on the Internet, many found from Yahoo and DEC’s Alta Vista Search engine. Included in this was the documentation of most of the software packages mentioned in the text.

T.V. Raman, the author of Emacspeak contributed comments, and information and put me in touch with other people who he knew on the Internet.

Kenneth Albanowski <kjahds@kjahds.com> provided the patch needed for the Brailloterm and information about it.

Roland Dyroff of S.u.S.E. GmbH (Linux distributors and makers of S.u.S.E. Linux (English/German)) looked up KTS Stolper GmbH at my request and got some hardware details and information on the Brailloterm.

The most major and careful checks over of this document were done by James Bowden, jrbowden@bcs.org.uk and Nikhil Nair nn201@cus.cam.ac.uk, the BRLTTY authors who suggested a large number of corrections as well as extra information for some topics.

A number of other people have contributed comments and information. Specific contributions are acknowledged within the document.

No doubt you made a contribution and I haven’t mentioned it. Don’t worry, it was an accident. I’m sorry. Just tell me and I will add you to the next version.