Product Reviews

KeyStrokes 4.1 is the latest version of what this reviewer has called the best on-screen keyboard, not just for the Macintosh, but for any platform. Let’s see if that accolade is still deserved.

The Keyboard

As with most on-screen keyboards, KeyStrokes defaults to a QWERTY layout, with which most typists will be familiar.  This layout is available in “standard” (typewriter style), and extended versions. The extended version includes function and navigation keys, and both standard and extended keyboards can be shown with or without the number pad. In addition, three single-digit patterns (Chubon, Modified Chubon, and Damper) are provided.

When the Chubon pattern was created in 1988, text entry was limited to the physical keyboard, so the layout is designed around the standard key arrangement.  Damper, the third one-handed keyboard pattern, breaks this mold, and positions the keys more closely by usage frequency.  This places the space bar (1 in 6 keystrokes on average) in the very center of the keyboard, with other high-frequency keys clustered around it.

The appearance of keyboards in KeyStrokes 4.1, as with previous versions, is one of its strengths. The keys are subtly shaded to provide a 3-dimensional appearance without being garish. In version 4.1, the keys can be given color, so that vowels or function keys share a common color, to provide an element of cognitive support.

Because screen "real estate" can be at a premium for on-screen keyboard users, KeyStrokes has an option to make the keyboard transparent when the mouse is not over it. While it isn't possible to manipulate any screen features beneath the keyboard, if the transparency level is set high enough, it is possible to read what has been written there. This allows the area covered by the keyboard to be used when proof-reading, for example. If the transaprency is set too high, a user with limited vision might "lose" the keyboard on the screen, so some care must be taken when setting the transparency level.

Of course, no set of pre-defined keyboards can meet the needs of every user.  Version 4.1 of KeyStrokes now includes “Layout Kitchen,” a utility that allows a user to quickly create custom layouts that are as simple or as complex as the user wishes.

As with most commercial (as opposed to freeware) on-screen keyboards, KeyStrokes includes word completion/word prediction.  Actually, KeyStrokes includes the word prediction both within the keyboard and as a separate window.  In addition, however, KeyStrokes includes a context bar on the keyboard.  The context bar shows the sentence that is currently under construction.  While one might think this redundant (after all, you can see the words in the target application), the display does allow monitoring your typing without looking away from the keyboard, which for many users can be an advantage.

One of the key qualifications for an on-screen keyboard is being able to communicate with programs where it is to be used.  KeyStrokes appears to work with virtually any Mac OS X application. (I haven’t tested it with all possible applications, so I can’t say “any.”)  In addition, it can be used with Windows applications running in the Parallels environment. The only limitation that I’ve found is that KeyStrokes does not communicate with software running in the VMWare Fusion environment.  In order to avoid slowing the Mac side unnecessarily, Fusion may be bypassing the operating system’s keyboard components, and hence any software that modifies input.  This theory is bolstered by the fact that Apple’s “Keyboard Viewer,” part of the OS, also cannot communicate with VMWare Fusion applications.

Word Prediction

In the early days of computer access, “word prediction” meant that the software was able to guess what word you were currently typing, and allow completion of that word with a single selection.  As computers became more powerful, software gained the ability to guess what word you were going to type next, and allow that word to be typed with a single keystroke as well.  In order to accommodate these changes, we’ve had to change terminology somewhat.  Today, guessing the current word is referred to as “word completion,” and guessing the next word is “word prediction.”  Some programs do word completion, and some add word prediction to that. (No known program does word prediction without also doing word completion.)

In evaluating word prediction programs, two features are key: the number of the words a person uses that are predicted, and how quickly they are found.  Some word prediction applications try to offer as large a portion of the English language (or other languages: KeyStrokes, unlike me, is multilingual) as possible, so that any word you are likely to type will be predicted.  The weakness of this approach is that it also causes prediction of a good many words that are near, but not the same as, the word being typed. This presentation of many words that are near the target requires more careful thought on the part of the user to examine the list, increasing cognitive overhead.

On the other extreme, a word prediction program might have a small vocabulary (as most programs did when memory and processing speed were at a premium) to minimize the distractions. But then, in many cases, the word you are trying to type would not appear.

One key question in word prediction is how large a vocabulary is optimum. The English language recently surpassed 1,000,000 words. But the "use vocabulary," the number of words a person actually uses in their writing, is much smaller. It's been estimated that a college-educated adult typically uses between 7,000 and 10,000 words. In specialized topics, a person will use words that are not part of the general vocabulary, but even in these cases, the number of special words is often fairly small.

So, a word prediction program must learn the words that you want, and be able to find them quickly. One approach to honing vocabulary selection is to have vocabulary topics. This allows specialized vocabularies to be used when they are needed, and dismissed when they are not. Another approach, used by most word-prediction programs, is to track use frequency. Words that are used more are predicted with fewer letters typed.

KeyStrokes uses a fairly large vocabulary to begin with. My copy tells me that I have a bit over 90,000 words in the dictionary. The KeyStrokes word prediction algorithm, in addition to using frequency of use, also uses "recency of use" in deciding what words to present. If I've recently used the word "elephant" in a sentence, it's likely that I'll use elephant again, so it is more likely to be predicted than "elegance." As a result of this combination of approaches, KeyStrokes determines the current word with surprising accuracy and speed. In addition, it is quite good at predicting the next word as well.

Once the likely words have been selected by the program, they must be displayed to the user. There are two common strategies for this: alphabetical and frequency. Alphabetical display has the advantage of arranging words in an easy to identify sequence, but also often means that the desired word is several places down the list. In a frequency based list, the most probable words are listed first, with less likely words farther down the list. The choice of which approach is best is largely one of personal preference. In the case of KeyStrokes, the user can decide, in the program preferences, which approach is to be used.

In addition to the order of word presented, how the words are presented is a significant component of software design. Some programs, in order to provide maximum help, are very much "in your face." While this is very much a personal choice, I find that such programs interfere with the writing process. Some programs, in an effort to minimize distraction, are so unobtrusive as to be overlooked. If the program is never used, it will not be a good investment. KeyStrokes seems to provide a good balance of visibility and ignorability. It's always available and ready to help, but doesn't get in the way of your work.


Many years ago, shortly after the first on-screen keyboards arrived with the ability to select a letter just by "dwelling" over it, I spent some time going from manufacturer to manufacturer suggesting that, useful as this feature is, it would be improved if you could also select menu items, screen icons, and the like. (Once upon a time, this was a novel idea!) Somewhat later, DwellClick, a Windows program with that capability was developed at Washington State University.

Today, every developer of on-screen keyboards has a feature like this. The feature in KeyStrokes is called "Dwellix." Like all such programs, Dwellix allows the full vocabulary of button actions: right and left clicking, double-clicking, and dragging. Like many such programs, Dwellix allows the user to adjust the amount of time that a dwell must be maintained, and how large an area counts as "the same place." This last adjustment is made in pixels, without any graphical indication of how large a circle of 200 pixels might be. Having a circle around the cursor that changes size with the setting would be a nice enhancement for the next version.

However, Dwellix goes beyond most dwell programs in allowing the user to decide which controls should be visible and active. You don't need a right click? Turn the control off! The user can also determine whether Dwellix is active only on the KeyStrokes keyboard, or everywhere.

Three Products in One

One of the interesting features of KeyStrokes is that it can be used as three different programs. It's possible to show just the keyboard, just the word prediction window, or just Dwellix, or any combination of the three. This high degree of tunability allows a single product to meet a wide range of needs. For areas where a computer is shared between users with differing needs, this might be very useful.

The Bottom Line

Assistive technology, to the extent possible, should provide support for the task that the user is trying to perform without interfering with the task. All engineering is done by trade-offs: adding capacity here removes capacity there. Finding the right balance can be very difficult.

KeyStrokes 3 was a tough act to follow. As a best-in-class product, it simply worked, and virtually never got on the way. KeyStrokes 4 adds an enormous degree of customization, to make a very good product even better. With this version, the user may select the keybaord arrangement that best fits his/her style, the word prediction features that are most useful, the degree of visibility that works best. The keyboard is visible without being garish, works smoothly everywhere I've been able to test it, and never seems to fight with the user.

The only trade-off that I've been able to find with this product is the trade of some of your money for the product. You could, if you chose, use the Keyboard Viewer of the OS X operating system as an on-screen keyboard. It works, just as your keyboard works. But, it doesn't have full functionality (no sticky keys, for example). For the person with no resources, one of the free-ware on-screen keyboards would be a better solution. But KeyStrokes adds many more features that are very useful to a person with a disability. This is, to me, still the best on-screen keyboard on any platform.

Product Details
Keystrokes 4.1
Operating System(s):
Mac OS X
Company Contact:
Van Speijkstraat 73-D
1057 GN Amsterdam
The Netherlands
fax: +31-20-6128266
Web Site: