Джон Бумгарнер (John Bumgarner), работавший в компании Information Appliance, предложил хорошее решение проблемы автоповтора. Он заметил, что в большинстве фонетических языков одна буква почти никогда не встречается три раза подряд. Он также заметил, что автоповтор редко используется, если букву требуется повторить менее пяти раз (в этом случае пользователь просто нажимает на клавишу необходимое число раз). При использовании метода Бумгарнера автоповтор начинается, если клавиша удерживается более 100 мс после третьего подряд нажатия на клавишу. Другими словами, чтобы получить строку, состоящую из знаков равенства, требуется нажать следующую последовательность:
===↓
После этого клавишу со знаком равенства следует удерживать в нажатом положении до тех пор, пока не появится необходимое количество символов, и затем отпустить.
Многократное нажатие на одну и ту же клавишу выполнить быстрее, чем набирать разные символы, и GOMS-анализ показывает, что задержка перед началом автоповтора падает с 700 мс при обычных методах до 400 мс в предложенном методе. Метод автоповтора Бумгарнера достаточно прост в использовании и, как показали тестирования, такой автоповтор никогда не запускается случайно (даже если ваша кошка сядет на клавиатуру). Отрицательной стороной, которая свойственна также и стандартному методу автоповтора, является то, что автоповтор работает как невидимая функция, которая нигде в системе не обозначена.
Хорошо разработанные компьютеры и информационные устройства снабжаются аккордными клавиатурами (chord keyboards), чтобы в программном обеспечении можно было предусматривать распознавание одновременного нажатия нескольких клавиш. Старые и более примитивные компьютеры имели клавиатуры, в которых только некоторые специальные клавиши (например, «Shift») можно было одновременно нажимать вместе с другими клавишами. Аккордные клавиатуры позволяют решить ряд сложных интерфейсных проблем. Например, рассмотрим наложение символов. Требуется логически ясный метод создания двух символов в одном месте. Например, для того чтобы сделать знак доллара с помощью наложения буквы s и вертикальной черты (|), должна быть предусмотрена возможность одновременного нажатия клавиш:
s↓ |↓ |↑ s↑
Это не мешало бы совмещенному нажатию на клавиши, которое обычно происходит при большой скорости набора и при котором клавиша, нажатая первой, отпускается только после того, как нажимаются одна или несколько других клавиш. Слово the часто набирается не так:
t↓ t↑ h↓ h↑ e↓ e↑
а вот так (приведем один из множества возможных вариантов):
t↓ h↓ e↓ t↑ h↑ e↑
Современные клавиатуры и их программное обеспечение допускают использование таких совмещенных нажатий клавиш, что называется циклическим буфером (rollover). Большинство клавиатур имеют n-клавишный циклический буфер. Это означает, что система сможет различить n-е количество одновременно нажатых клавиш. С учетом человеческой анатомии коэффициент n вряд ли должен превышать 10, хотя с технической точки зрения вообще нет надобности его ограничивать, если компьютер оснащен аккордной клавиатурой.
С учетом общепринятого метода создания наложений с помощью нажатия на одну клавишу во время того, как удерживается другая, знаки ударения и диакритические символы могут также рассматриваться как налагаемые символы и вводиться аналогичным образом. Например, в компьютере Macintosh букву e, как в слове Dupre, можно набрать с помощью сложной последовательности клавиш:
Option↓ e↓↑↑ e↓ e↑
Обратите внимание на то, что здесь используется модальный метод типа «глагол-существительное», что является нарушением собственных принципов компании Apple. Кроме того, этот метод работает непоследовательно. Если вы используете нижеприведенную последовательность, то будет получена кавычка, за которой стоит буква t, а не буква t со знаком ударения, как можно было бы ожидать:[50]
Option↓ t↓↑↑ t↓ t↑
Если же наложение выполнять с помощью квазирежима, ввод знаков акцента и других диакритических символов упрощается и делается более последовательным:
e↓ '↓ ↑ e↑
Вы нажимаете на букву е и, удерживая ее, нажимаете на символ ударения. То же самое сочетание можно получить и в обратном порядке: