Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!cbosgd!mark From: mark@cbosgd.UUCP (Mark Horton) Newsgroups: net.info-terms,net.internat Subject: In search of a sane keyboard standard Message-ID: <2071@cbosgd.UUCP> Date: Thu, 1-May-86 17:02:04 EDT Article-I.D.: cbosgd.2071 Posted: Thu May 1 17:02:04 1986 Date-Received: Sat, 3-May-86 19:07:05 EDT Organization: AT&T Bell Laboratories, Columbus, Oh Lines: 264 Keywords: keyboard, standard, ANSI Xref: watmath net.info-terms:899 net.internat:257 Are you tired of incompatible keyboards that require you to stand on your head to type, or to use two hands to type Control S? I am. I've watched the most recent array of keyboards on IBM PC's and AT&T PC's, and instead of converging to a common standard, the new keyboards are diverging wildly and recklessly. I'd like to propose a standard to solve this problem. First off, you may ask, why doesn't ANSI or ISO already have a standard keyboard layout? Well, they do. In fact, there are several of them. Someone once said "the wonderful thing about standards is that there are so many of them to choose from." I hate to add to the mess, but the fact is that nobody is paying any attention to the ANSI standards. I suspect this is because the standards are so old and so bizarre that they don't meet today's needs. ANSI X4.14-1971 is probably the most appropriate standard for "Alphanumeric keyboard arrangements accommodating the character sets of ASCII and ASCSOCR." I'll briefly mention ANSI X4.23-1982 "for office machines and supplies - alphanumeric machines - keyboard arrangement", from which the IBM PC and DEC VT200 seem to have derived, with the extra key between left shift and Z, and ANSI X4.7-1973 "for typewriter keyboard arrangement". If there are other related standards that our library doesn't have, I'd appreciate it if someone would bring them up. I'll also ignore the bit-paired keyboard in X4.14, since most keyboards these days are typewriter-style. (Bit-paired keyboards are based on the Teletype Model 33, with shift 2 = ") ANSI X4.14 Typewriter Keyboard ------------------------------------------------------------------ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | ~ | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` | ------------------------------------------------------------------ | Q | W | E | R | T | Y | U | I | O | P | ] | | | | | | | | | | | | | | [ | \ | ------------------------------------------------------------------ |LOCK| A | S | D | F | G | H | J | K | L | : | " | } | | | | | | | | | | | | ; | ' | { | ------------------------------------------------------------------ |SHFT| Z | X | C | V | B | N | M | , | . | ? |SHFT| | | | | | | | | | , | . | / | | ------------------------------------------------------------- | SPACE | | | ------------------------------------ Note that it doesn't include any keys like CTRL, RETURN, TAB, ESC, and the like, and that it requires a SHIFT LOCK key to the left of A. The semantics of SHIFT LOCK aren't defined anywhere, so I suppose the CAPS LOCK keys you see today don't violate this, but it would seem that they intended a typewriter style SHIFT LOCK. The bit paired keyboard requires a SHIFT LOCK key in the same place. It does require a CONTROL FUNCTION key, but doesn't say where. It specifies that this CTRL key works as we expect for bit paired keyboards, but seems to leave it up in the air for typewriter keyboards. You get the impression that they never expected typewriter keyboards to catch on for ASCII in 1971. There are provisions for leaving off some of the keys at the far right (the ~, \, and } keys) if you aren't going to support those characters, but not for moving them or rearranging them. Note that there are three required keys to the right of 0 before you can put in a backspace key, even though a selectric has only two. Note that the popular practice of putting [ and ] unshifted and { and } shifted to the right of P is forbidden. And note that there are three required keys to the right of L before the RETURN key, compared to two for the selectric. I only know of one keyboard that conforms to this standard: the HDS Concept 100. It puts the CTRL key to the left of CAPS LOCK. The more recent Concept AVT swapped CTRL and CAPS LOCK, so it doesn't conform any more. So let's ask: what should a keyboard look like? Well, if you ask a human factors person, the answer is "all keyboards should be consistent so that a user won't be confused by them." If any given user only uses one particular keyboard, there's no problem. But for users who switch between different keyboards all the time, standards would be nice. Since the people out there selling computers and terminals would like to create a fairly high turnover, consistency is important. I've used lots of keyboards over the years, starting with an ASR 33 and an old manual typewriter. The worst keyboard I ever used was a Hazeltine 2000, where shift space created a zero. The best is an IBM Selectric. It's unfortunate that the Selectric isn't an ASCII keyboard. But industry has come to the rescue, converting the Selectric layout to ASCII. Too bad they can't agree on how to do it. And too bad they can't reproduce the marvelous mechanical feel of the Selectric in an electronic keyboard. (Some keyboards, like the Sun-2 or the AT&T PC 302, come close, however.) In the process of using lots of keyboards, I learned to type with heuristics that seem to work on most keyboards. Lately, these heuristics are falling apart, as new keyboards get wilder and wilder. Let's examine the heuristics. (1) Regular touch typing of letters, typewriter style, should work. This means the QWERTY arrangement of letters, also , . ; / should be in the normal places, with shifts < > : ? respectively, and that there should be shift keys directly to the left of Z and to the right of /. This worked nicely until the IBM PC came out, breaking all attempts at touch typing. It's especially serious to have the left shift key broken, since some of us used keypunches a lot, and only the left shift key works on keypunches. I find myself overusing the left hand shift key to this day because of this. (2) The CTRL, TAB, and ESC keys are very heavily used in computer work. Control characters are critical for most applications, especially in UNIX, most DEC operating systems, and MS DOS. The CTRL key must be to the left of A. I've discovered that my fingers don't seem to mind if there is a small CAPS LOCK key between CTRL and A, such as the Concept 100 or Ann Arbor Ambassador use, and even a large one like the VT100 or Keytronics doesn't get in the way too much. But any keyboard with CAPS LOCK to the left of CTRL, such as the HP 2621 or Concept AVT, breaks my ability to type completely. Tab is used as a text character a lot, and ESC is very heavily used in VI, EMACS, and in DOS as an exit character. TAB must go directly to the left of Q, and ESC directly to the left of 1. (3) The return key should be as large as possible, with exactly two keys between it and L. These keys are generally ;: and '". It should be at least two keys wide, and an L or 2x2 square are even better. In practice, however, I never seem to hit the top part of the L. (4) The numbers 1-0 should be in the standard places. The shifted numbers should be !@#$%^&*(), typewriter style. (Bit paired keyboards, where ( and ) are shift 8 and 9, are very difficult to use.) (5) The location of backspace doesn't matter much. It has never been very well standardized, sometimes there are two keys between it and 0, sometimes three, and sometimes it's put in a strange place, like on the right side of the QWERTY row in the Ambassador. I find that CTRL H is more dependable, and always seems to work as backspace, so I use it instead. (This means I depend on CTRL even more.) Nonetheless, it seems reasonable to me that backspace should be within touch typing distance, which means only two keys between it and 0. Keyboards with three keys in between force the user to remove the right hand from the home row to hit it. (6) The strange ASCII punctuation ( [] {} \| `~ ) varies so much from keyboard to keyboard that I can't touch type these keys, so I'm used to having to hunt for them. The same applies to DEL and LINEFEED and BREAK keys, which wander all over the keyboard and sometimes aren't even present. Many operating systems, such as DEC and ITS, use DEL as backspace. X4.14 suggests that 3.2.1. In Fig 1, key D 13 produces underline in both the shifted and unshifted modes, but may optionally produce DEL (delete) in the shifted mode and underline in the unshifted mode. in the section on bit-paired keyboards. Terminals that do this are quite painful to use on such systems. Fortunately, this practice has been dying out. Unfortunately, PC keyboards usually don't have DEL or BREAK keys on them at all. Xenix on a PC uses the DELETE (as in DELETE CHAR) key to generate DEL, but DOS doesn't, and this practice hasn't caught on. Here is the minimum "sane keyboard" layout required to be able to touch type on a keyboard: Horton's Minimum Sane Keyboard ------------------------------------------------------------------ | ESC| ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | -------------------------------------------------------------------- | TAB | Q | W | E | R | T | Y | U | I | O | P | | | | | | | | | | | | | --------------------------------------------------------------------------| |CTRL| ** | A | S | D | F | G | H | J | K | L | : | " | RETURN | | | | | | | | | | | | | ; | ' | | --------------------------------------------------------------------------| | SHIFT | Z | X | C | V | B | N | M | < | > | ? | SHIFT | | | | | | | | | | , | . | / | | -----------------------------------------------------------------------| | SPACE | | | ---------------------------------------------- ** This position may contain either CAPS LOCK or the right half of a wide CTRL key. It is almost, but not quite, possible to conform to X4.14 and still have a sane keyboard. The problems are the RETURN and BACKSPACE keys, which X4.14 would have you move one more space to the right. To conform, a CAPS LOCK key must also go between CTRL and A. Some examples of widespread keyboards and why they are insane: IBM PC: The \ | key moves the left shift key over too far, and the RETURN (enter) key is one space to far to the right. Keytronics has done nicely by picking up the pieces of this mess, even though their CAPS LOCK key is awfully large. IBM AT: They fixed the SHIFT and RETURN problems, producing mostly very nice keys. But they put ESC in a separate pad off to the right, and put ` ~ where ESC should be. IBM RT: CAPS LOCK and CTRL are interchanged. Fortunately, their 4.2BSD port has an option to reverse them in software. NEW IBM PC and AT: The latest keyboard from IBM has yet another random rearrangement of the keys on the left. AT&T 6300 301: "Bug for bug" compatible with the IBM PC - left shift and RETURN are in the wrong places. AT&T 6300 PLUS 302: CAPS LOCK and CTRL are interchanged. AT&T seems to be doing this on many new keyboards lately. HP 2621: Many felt this was HP's best keyboard. CAPS LOCK was to the left of CTRL, otherwise this was a sane keyboard. (Putting DEL on shift ESC is unusual and slightly annoying, but not really insane.) HP 150: ESC is to the left of LEFT SHIFT, and DEL is shift ESC. Also, CAPS LOCK is to the left of CTRL. HP seems to be using this keyboard on all new products. You'll notice one trend: putting CAPS LOCK to the left of A and CTRL to the left of SPACE. This is especially alarming, since it makes 25% of the ASCII character set unusable. (Ever try to quickly lunge for CTRL S on such a keyboard? It's a two handed operation.) AT&T's Teletype division tried this a few years back, but Bell Labs spoke out, and Teletype fixed the problem. The 5425 and 5620 keyboards now have an excellent layout. (If only they could reproduce the feel of the 302 while keeping this layout.) A sane keyboard such as the above will meet with general acceptance from the current user community, and allow them to touch type. It is also a useful property for a vendor to claim their existing products conform to. But it prevents them from gaining the degree of proficiency they should have, because some of the extra keys aren't specified. This lack of specification in the ANSI standards is precisely what got us into trouble in the first place. So let's finish the job and create a complete standard keyboard arrangement. Horton's Standard Keyboard ------------------------------------------------------------------------++++++ | ESC| ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | BACK + DEL+ | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | SPACE+ + ------------------------------------------------------------------------++++++ | TAB | Q | W | E | R | T | Y | U | I | O | P | { | } | | | ~ | | | | | | | | | | | | | [ | ] | \ | ` | ------------------------------------------------------------------------++++++ | CTRL | A | S | D | F | G | H | J | K | L | : | " | RETURN +LINE+ | | | | | | | | | | | ; | ' | +FEED+ ------------------------------------------------------------------------++++++ | SHIFT | Z | X | C | V | B | N | M | < | > | ? | SHIFT +BRK + | | | | | | | | | , | . | / | + + ------------------------------------------------------------------------++++++ |CAPS| SPACE | |LOCK| | --------------------------------------------- This keyboard is sane, it uses the popular convention of [ ] unshifted and side-by-side, with { } shifted, and it's complete. It puts CAPS LOCK out of the way, yet easily reachable. (CAPS LOCK isn't a key that is used a lot, even by secretaries who make up the largest demand for IBM Selectric style keyboards.) The only problem here is that I had to make up placements for the \ | and ` ~ keys, which seem to be different on every keyboard, and for DEL, LINE FEED, and BREAK, which are different or missing on every keyboard. Perhaps one of the readers can do something better with these keys. I've put the printing characters in the arrangement used by the AT&T/Teletype 4425/5425, which seems as good as any, and put the nonprinting ones in +'s to indicate that they are optional. Comments and suggested improvements are welcome. Vendors are especially encouraged to follow this discussion. Input from international sources as to what can be done to easily internationalize this is welcome. Many of the opinions in here represent my own experience, although I believe that much of it applies to the community at large. I would like this to result in a standard layout which is useful to all of the community, of course, not just me.