Trace Center, University of WI-Madison
Madison, WI
info@trace.wisc.edu
Aimee J. Luebben
University of Southern Indiana
Evansville, IN
aluebben.ucs@smtp.usi.edu
The Apple Macintosh (TM) version of SerialKeys, like its DOS and Windows predecessors, converts data arriving at the serial port into keyboard and mouse events in the computer. SerialKeys follows the general input device emulating interface (GIDEI2) proposal (1), thus providing users with the same SerialKeys access to the Macintosh that they have for IBM computers running DOS/Windows.
Despite these enhancements, some people still cannot use the standard keyboard and mouse because of physical disabilities, but could use their AAC system to access a computer. Many AAC systems are equipped with external connector(s) or serial ports, allowing for a connection to a computer's serial port. The typical computer, however, is designed to receive input from the user via the keyboard and mouse, not through the serial port. Therefore, simply connecting an AAC system to the computer's serial port will not allow the user to access or operate the computer.
As Apple and IBM personal computers became more powerful, numerous, and less expensive in the 1980s, more and more AAC system users found themselves in need of computer access in education and employment. Unfortunately, when AAC system users wished to connect to a personal computer, they were usually forced to contact the AAC system manufacturer, each of whom in turn were left with the problem of creating computer hardware or operating system specific software to make the AAC system-to-computer connection.
In an effort to solve this problem, the keyboard emulating interface (KEI) concept was proposed (2). Essentially, the KEI concept was the first attempt to split this computer access problem into two manageable parts: a) the external connection and communication protocol which was non-computer specific and b) the injection of information into the operating system to emulate keyboard events which was computer specific. By separating the connection and communication protocol from the computer hardware and operating system, AAC users could utilize their systems to access different computers. In other words, the same protocol or "language" preprogrammed on their AAC systems could be used to access different computers, thus eliminating the need for constant AAC system reprogramming. Also, AAC system manufacturers would no longer be required to develop their own protocols. However, because the KEI did not interpret or decode the communication from the AAC systems into the specific computer or operating system equivalent keyboard events, the KEI still left some burden on the AAC system manufacturer.
Since keyboard access by itself could no longer provide complete computer access, the "K"EI was eventually replaced by the "GID"EI ("keyboard" versus "general input device" emulating interface), shortly after the introduction of the Apple Macintosh and IBM PS/2(TM) computers. Both the Macintosh and PS/2 included non keyboard input capability in the form of a pointing device, commonly called a mouse. The GIDEI provided communication protocol that allowed for more generalized input devices, especially pointing devices such as the mouse.
When Apple originally developed Easy Access, SerialKeys was not included. Over the past 5 years, several software or combination hardware/software devices which support SerialKeys have appeared on the market. Each is capable of interfacing to the Apple Macintosh (e.g., a Macintosh equipped with the Apple Desktop Bus), and the least expensive is the T-TAM available for about $500.
During the same time, however, both IBM and Microsoft have introduced "free" software solutions which include SerialKeys: AccessDOS and Access Pack for DOS and Windows respectively. Microsoft is also Beta testing the next release of their desktop operating system known as Windows 95, which has a built-in version of SerialKeys. AAC system users were therefore requesting a similar solution be provided for the Macintosh.
The GIDEI protocol has two modes of operation for sending keystroke and mouse information: Character Mode and Escape Sequence Mode. Character Mode is used for typing characters (e.g., to type a character means to emulate the press and release of a key as if the user had actually "typed" on the keyboard). To type characters, simply send that character (sometimes referred to as an "ASCII character") from the AAC device to the computer running SerialKeys. Some examples of ASCII characters are the lowercase letters "a-z"; uppercase letters "A-Z"; most common punctuation characters like a comma ",", or period "."; and the numbers "0 through 9." Typing characters does not require any special action on the part of the AAC system user. For example, to type an "a" key on the computer, the AAC system should send the ASCII character "a" to SerialKeys. For this example, SerialKeys would decode the character(s) and determine that the user wished to type the "a" key.
Escape Sequence Mode is used for typing specific keys or those keys which do not have an ASCII character name (e.g., page up, home, etc.), for keyboard commands, mouse activity, and other miscellaneous GIDEI commands. Escape Sequence Mode is entered by sending an ESCAPE character, which marks the beginning of an escape sequence. An escape sequence is simply the ESCAPE character (ASCII 27, represented as "<esc>" below), followed by a sequence of other ASCII characters, and ending with the PERIOD character (ASCII 46, "."). Since each key is designated by a key name, the user can type any key by using that key name in an escape sequence. For example, to type the "page up" key, the users needs to use an escape sequence with the key name for the "page up" key as follows: "<esc> pageup.". For this example, SerialKeys would decode the escape sequence and determine that the user wished to type the "page up" key.
Other keyboard actions may involve the typing of multiple keys simultaneously, or typing keys which are used to "modify" other keys when used together, such as the "shift" key. To perform these types of keyboard actions within escape sequences requires the use of a keyboard command. Escape sequences for keyboard commands would use the general form: "<esc> , command name, key name.". (Please refer to the GIDEI2 proposal for a complete listing of GIDEI commands and key names.)
Escape sequences are also used to send mouse commands from the AAC system to SerialKeys. This includes all mouse actions such as button clicks, click and drag, mouse cursor movement, etc. New mouse commands, which allow for saving the mouse cursor position to facilitate faster navigation in the Macintosh graphic user interface, have also been added to the protocol with the first full implementation in SerialKeys for the Macintosh.
SerialKeys for the Macintosh is currently under going beta testing at several sites around the country.
The authors would like to thank Apple Computer and the National Institute on Disability and Rehabilitation Research (grant number H133E30012) for providing funds for this project.
2 Vanderheiden, G. (1980) "Practical Applications of Microcomputers to Aid the Handicapped," in Computer IEEE Computer Society, January. (Invited)
IBM PC and IBM PS/2 are trademarks of International Business Machines.
Apple Macintosh is a trademark of Apple Computer. Windows is a trademark
of the Microsoft Corporation.
* For an index of Trace Center information on SerialKeys go to Information on Macintosh SerialKeys.
![]()
This document is hosted on the Trace R&D Center Web site. Please visit our home page for the latest information about Designing a More Usable World - for All.