Keyboard Optimizer       


Shari Trewin photo

Keyboard Optimizer - User Guide

Keyboard Optimizer User Guide

August 10, 2005

Licensed Materials - Property of IBM

Copyright IBM Corp 2000, 2005 All Rights Reserved

US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.


People with mild to moderate motor disabilities can usually use a keyboard, but sometimes with some difficulty. Windows includes functions that can help, but the parameters of the Windows Keyboard Accessibility Options must be set manually, or by responding to a series of questions. The Keyboard Optimizer was developed by IBM Researchers at Hawthorne, New York, to automate the adjustment of the Windows keyboard settings.

The Keyboard Optimizer is a quick, easy and accurate way to adjust a keyboard to suit your way of typing. It allows you to demonstrate how you type, determines what accessibility settings would be best, and offers to set them for you. You do not need to know about the available settings in advance. Instead, you can try out each of the Keyboard Optimizer's suggestions and decide whether or not they are helpful. It focuses on the most common typing difficulties. These include long key presses; difficulty in holding down keys like Shift while pressing other keys; the activation of a key adjacent to the intended key; and bounce errors, which occur when the user unintentionally presses a key more than once. The program was developed and evaluated using empirical data from a study of keyboard users with and without motor disabilities.

Adjusting your keyboard settings

From the welcome screen, choose the 'Test and adjust now' button (Ctrl-n).

Start typing. You don't have to copy the sample sentence, but do type real text rather than random keystrokes. Try to type normally. You can type in English or any other language, including languages such as Chinese that use an input method editor.

The Keyboard Optimizer examines your typing and looks for patterns that indicate typical typing problems. For example, using the Caps Lock key for a single capital letter suggests that you may have difficulty holding down one key while pressing another. Long key presses producing repeated letters indicate problems with making very short key presses.

If the Keyboard Optimizer sees enough evidence to suggest that a different setting might be helpful, the screen will change to make a suggestion. Each suggestion is described in non-technical language. If you want to try the suggestion, press the 'Try it now' button (Ctrl-t). If you want to ignore that suggestion, press the 'Skip it' button (Ctrl-k).

Continue typing to see the effect of the new setting, and to see if any further suggestions are made. Two or three sentences is usually enough for all suggestions to be offered.

If you decide that you don't like the new setting, you can undo the change by pressing the 'Undo' button (Ctrl-z).

When you skip or undo a suggestion, the Keyboard Optimizer will not offer that suggestion again.

If you choose the 'Start again' button, all changes to the settings will be undone and the typing analysis restarted.

When you are happy with the current settings, choose 'Finish' (Ctrl-f). If changes have been made, you will be asked whether those changes should be kept after the Keyboard Optimizer closes. Choose 'Yes' to keep your new settings, or 'No' to put the keyboard back to how it was when you started. See the section 'Automatic adjustment' below for an explanation of the 'Dynamic' option.

Settings the Keyboard Optimizer can adjust

The Keyboard Optimizer focuses on the most common typing difficulties. It may offer the following:

  1. Change the key repeat delay: The key repeat delay is the time between pressing down a key and when the key starts to repeat. It can be adjusted, or repeats can be switched off altogether.
  2. Change the key repeat rate: This is the speed at which the keys repeat after the repeat delay time has elapsed. If it is too fast, you will over- or under-shoot when holding down keys like the arrow keys. To get a recommendation for this feature, use the arrow keys to get to an earlier point in your typing and insert a word.
  3. Use Sticky Keys: If you type with one hand, using Shift, Control and Alt can be awkward. Sticky Keys, when active, allows you to press these keys independently of the keys to be modified, instead of having to hold them down. The model guesses who might like to use Sticky Keys by looking for typical keystroke patterns that indicate you are having difficulty with modifier keys like Shift. Sticky Keys will be suggested if your typing demonstration includes several of these patterns, for example if you use the Caps Lock key to type a single capital letter, or press Shift and release it and then press it again.
  4. Debounce time: If you accidentally press each key more than once, a debounce time could be used to suppress these additional characters, so that only the first copy of each character appears.
  5. Key acceptance delay: If you hit many unwanted keys, an acceptance delay could be helpful. Each key must be pressed down for longer than the delay time in order to register. You can then slide your hands over as many keys as you like, so long as you hold down the key you want until it has registered.
  6. Keyguard: A keyguard is a plastic sheet that fits over a keyboard. It has holes through which each key is pressed. It can be useful if you type by sliding over the keyboard, but it can also be useful if you often end up pressing down two or more keys at once. At present Windows has no built in software solution for this problem.

Finding out your current settings

At any time, you can see the technical details of the keyboard settings by pressing the 'See details' button (Ctrl-d). This opens a drop-down panel containing a table. Each row of the table is a setting the Keyboard Optimizer covers. For each setting, the table lists the current value of the setting, the Keyboard Optimizer's suggested value, and the original value that was being used when analysis started. Values may be a number (in milliseconds), a dash indicating that the current value is unknown, the word 'on', or the word 'off', indicating the status of something like Sticky Keys.

Using Keyboard Optimizer without a mouse

All of the Keyboard Optimizer's functions are accessible using the keyboard. Most functions can be accessed directly through menus and through keyboard shortcuts.

The following keyboard shortcuts are available:

  • Test and adjust keyboard settings now Ctrl-t
  • Adjust/stop adjusting settings automatically Ctrl-u
  • See/hide details of the keyboard settings Ctrl-d
  • Start analysis again Ctrl-a
  • Finish adjusting Ctrl-f, Ctrl-q
  • Try the current suggestion Ctrl-t
  • Skip the current suggestion Ctrl-k
  • Undo the last change made to the settings Ctrl-z

The tab key will move through all the active buttons (those visible on the screen) and the text box when it is visible. The space and return keys will choose the current button.

Accurate keyboard navigation can be difficult if the keyboard is not correctly adjusted in the first place. To make keyboard navigation easier, the Keyboard Optimizer ignores extra characters generated when the tab, space or return key is held down. The buttons also have a debounce time in place, so that the same button cannot be pressed twice within 0.5s. These features are designed to aid keyboard navigation for those who require a long key repeat delay, or a debounce time.

Automatic adjustment

Another way to adjust your keyboard is to ask the Keyboard Optimizer to analyse your typing while you go about your regular work in other applications. Choose 'Adjust automatically' (Ctrl-u) from the main screen, or 'Dynamic' after using the 'Test and adjust now' option. When you choose this option, the Keyboard Optimizer will remain active. It will continue to monitor your typing. Changes to the key repeat delay, key repeat rate and debounce time will be made automatically. If Sticky Keys or a key acceptance delay is recommended, the Keyboard Optimizer will explicitly offer that suggestion, and you can decide what to do.


If you have a reproducible problem with the program, you can record your session to help with troubleshooting. The log file records information about your typing but DOES NOT contain the exact text you typed. All alphabetic characters are recorded as the character 'x', and all numerals are recorded as '1'. No-one could obtain passwords or read what you have typed by using this logging feature.