1999 Conference Proceedings

Go to previous article 
Go to next article 
Return to 1999 Conference Table of Contents


Paul Hawes
Ability Net

Paul Blenkhorn
University of Manchester Institute of Science and Technology

This session looks beyond word prediction and grid layout to examine a range of useful switch techniques such as corrective scanning, switch coding and disambiguation.

Text Despite the emergence of exciting new technologies such as eye tracking and speech recognition, a large number of people with disabilities are dependant on the use of switches for communication, both verbal and written. Using a switch in this way can be a slow and frustrating business, and much thought has gone into ways of improving the rate of input with switch systems.

Most people who use switch input systems are aware of the advantages of smart typing (word prediction) and of the importance of an efficient layout of the scanning grid. However, there are some less widely used techniques that enable a user to achieve a faster rate of input.

In this session, we will be looking at some of these and considering which users may benefit from them. Some will be appropriate for spellers and some for symbol users. The improvements in switch activation methods will help any switch user.


It is inevitable that a switch user will make mistakes in selection. Switches may be pressed too soon, or too late, or a momentary loss of concentration results in a frustrating mis-selection.

Here are some devices that we have used to improve the accuracy of switch input and to allow users to recover from mistakes without the need to perform a second scan to delete the error (and a third to re-make the selection).

Reverse scan

A frequent error is to miss a cell by failing to press the switch in time. When this happens, it is very annoying to have to watch the highlight moving further away from the cell that you wanted. Depending on the software, you may need to wait for the system to cycle around again, or use another switch to cancel and start all over again. Reverse scanning allows the user to send the scan backwards when the correct cell has been passed. In our software we implement this by using a long hold on the switch. A user setting enables the definition of a long hold to be adjusted to suit the user. Most people using this technique find that a time of between one quarter and one half of a second is appropriate.

Options to quit

The reverse scan technique will work as long as the user is still within range of the desired cell. However, if the wrong row has been selected in a row/column scan then it will be too late to use a reverse scan. A second switch may be used to quit the scan, but the user may not have the use of a second switch. In this case, we provide an option that will automatically allow the user an opportunity to quit the scan without making a selection at the end of each row.

Critical overscan

Some users with a gross tremor will find that no matter how ready they are to press the switch when the scan comes up, their reactions are frequently delayed, and the switch is pressed too late. It is also common for such users to find it difficult to hold down a switch until the desired cell is reached. The result is often a painfully slow automatic scan. This technique works by ensuring that only the cells close to the target are scanned slowly. When the scan starts, it moves forward at a fairly high speed, and the user tries to hit the switch again when the target cell is reached. Depending on the speed setting, the highlight has moved two or three cells beyond the target, but the scan automatically goes into reverse at a much lower speed. In this way, only a few cells are scanned at the lower speed.

More forgiving switch modes

The use of a delay before the software processes a selection is another way of making a switch input more effective for people with poor motor control. This is particularly effective for people using switches by holding them down until the target is reached. One example of this is using two head switches for row/column scanning. One switch is used to advance from row to row, while the other is used to move along the row. When one of the switches is held down, the scan moves in the appropriate direction at predetermined rate. When the switches are released, nothing will happen until a time out has occurred. In this way, if the user should accidentally release the switches at the wrong time, there is a chance to continue the scan by pressing one of the switches again.


Using the switch, or switches, to enter a code can be faster than scanning. Most people do not have a great deal of difficulty in mastering the basic alphabet codes, but to memorise a completely arbitrary code to cover all the possible functions of a computer keyboard is much harder. Imagine how much longer the Morse code would be if we had to invent sequences to cover such possibilities as CTRL F7 or holding down the ALT key while tabbing through the open windows.

We approached this by embedding the codes into a normal scanning grid. A quick switch code swaps between coded input and scanning. This allows word prediction, rarely used obscure keystrokes and special macro functions to be embedded in the on-screen keyboard and avoids the need for an extended code sequence.

Two kinds of code are useful here; binary codes and chord codes:

Binary codes

The attraction of a binary code is that it is very adaptable for switch users. If the user can manage two switches, then one switch can represent each part of the code. The most common example is Morse code. Normally, pressing down a Morse key for a short or long time enters the dots and dashes. A switch user can use two switches in the same way. In theory, the ASCII code (the computer binary alphabet made from 1s and 0s) could be used in the same way.

Another binary code that has enjoyed popularity in the UK is CID (Computer Input Device). In this code, either switch 1 or switch 2 is held down for a number of counted beeps. Then the switch is released for a given number of beeps. Finally, switch 2 is pressed for a given number of beeps. Although this requires a longer sequence than Morse, it can be useful in cases where a more regular pattern helps the user.

Chord codes

These are based on a scanning version of a chord keyboard. A chord keyboard is one with a limited number of keys which are pressed in combinations to generate the different characters. The most famous example of a chord keyboard is Braille, where six keys are pressed in various combinations to represent the characters.

It is possible to use a scanning version of the code, where the keys are highlighted in turn. As the scan progresses, the user presses the switch each time that a key that is a part of the desired character is lit. At the end of the scan, the system looks at which keys were selected and enters the character. This is hard to describe, but easy to do. Using this type of scanning can be quite restful, as each character takes the same amount of time to generate, and no letter is further than a few scans away from the start position.

Our implementation of this idea is to incorporate the chord keyboard into a scanning grid, so that it replaces one of the rows. In this way, the user can easily pass the chord keys, and get to functions such as predicted words or shift keys.

Another chord keyboard that works very well is the Microwriter keyboard. This uses 5 keys, one for each finger of the hand. The code is based roughly on the shapes of the letters, and is one of the easiest of all codes to learn.


Oh, what a lovely word! This is the code that you do not need to learn. Disambiguation uses a smaller number of cells, or keys, to represent the entire alphabet. Each cell contains a number of characters, normally three. All that is necessary is to select the cells that contain the letters you need. The software then works out which possible letter combinations could be the start of a real word, and gives the user a set of predictions based on these.

The main advantage of disambiguation to a switch user is the ability to scan the alphabet on a grid of 9 cells instead of 26, greatly reducing the scanning time for each character.

For example, imagine that the first cell contained the letters ABC and the second cell contained DEF. If we wish to spell the word "BED", we would choose 1-2-2. (In reality, you can achieve a far higher efficiency by arranging the letters differently).

When cell 1 is selected, the system knows that the word will begin with either A, B or C and will suggest some words beginning with these letters. Then cell 2 is selected. The system now tries to predict words beginning with AD AE AF BD BE etc. Already, some of the combinations are impossible. By the time we have selected a third cell, most combinations will no longer match any words in the dictionary and can be ignored by the system. The ambiguous selection ceases to be ambiguous when enough selections have been made.

Of course, many words (especially short ones) will still be ambiguous when all the characters have been selected. For this reason, word prediction is especially important here. As well as allowing the user to complete a word before all the letters have been selected, it solves the problem of more than one word still being available if all the selections have been made.


The size of the scanning grid has a direct bearing on the efficiency of the layout. Symbol users in particular need quick access to a large number of cells as each cell will typically represent a word. Many people make the erroneous assumption that the more cells that you can fit onto each grid, the more quickly the user can find the desired function. Nothing could be further from the truth. Even those who have realised that smaller scanning grids lead to greater efficiency rarely appreciate just how big the difference can be. Let us do some simple arithmetic.

On a grid of 128 cells, you may find 8 rows of 16 symbols. Using a row/column method you would need 22 scans (7 + 15) to cover all the symbols. So waiting for 22 "beeps" gives you the choice of 128 locations.

Now try reducing the grid to 24 (4 rows of 6). We now need only 8 scans (3 + 7) to cover each grid, so you can scan three grids in the same time. This gives access to nearly fourteen thousand symbols for the same amount of scanning!

It is highly unlikely that anyone would try to use a simple forward scan on a grid as large as 128 but, just for fun, let us see how many locations we could find in a 24 cell dynamic array with 127 scans. The answer is 5 layers and just under eight million locations!

Of course, these numbers do not mean that much, as many cells will contain common tools and others will contain nothing at all as a logical distribution of vocabulary will not fit neatly into equally sized blocks. Nonetheless, the message is clear; more layers equals faster access, provided that the user always knows where to find the desired symbol.


In this paper, we have looked at some of the many ways in which the simple idea of switch access can be refined to allow the user to work faster and better. We have tried to concentrate on those methods that are less well known.

There is now a wider range of switch software than ever before, and choosing a suitable program has become more difficult. When considering switch software, try to look beyond the pretty screens and consider how well the programs cope with the very special needs of switch users.

Go to previous article 
Go to next article 
Return to 1999 Conference Table of Contents 
Return to Table of Proceedings

Reprinted with author(s) permission. Author(s) retain copyright.