public class SoftKeyboardExperiment
extends java.lang.Object
SoftKeyboardExperiment |
In designing a soft keyboard, the goal is often to improve input over the standard Qwerty keyboard. Sometimes improvements are achieved by rearranging keys, with keys bearing common letters clustered in the middle of the keyboard. An example is Opti which minimizes stylus or finger movement for English text entry on a soft keyboard (1st reference above). Consider the movements required to enter "airplane":
Clearly, there is less finger or stylus movement for the Opti design. The trick is to minimize movement as an overall average for text entry in a particular language, such as English.
Sometimes improved performance is achieved by adding word completion: As a word is entered, a list of suggested words is presented to the user. The entries in the list are based on the current word stem and a built-in dictionary of words and word-frequencies in the target language. Before entering the full word, the user selects a word from the word completion list, thus saving keystrokes.
Another consideration is size. Many computing devices, such as mobile phones or smart watches, are small. In such cases, a design with fewer keys might work well. One approach is an ambiguous keyboard. With an ambiguous keyboard, there are fewer letter-keys than letters. The classic example is the phone keypad which positions 26 letters on 8 keys (2nd reference above). But, other possibilities exist where there are even fewer keys. An example is the L4K keyboard which positions 26 letters on just 4 keys (3rd reference above). Both the phone and L4K keyboards are implemented herein.
Click here for instructions on launching/running the application.
The default parameter settings are read from a configuration file called
SoftKeyboardExperiment.cfg
. This file is
created automatically when the application is launched for the first time. The default parameter
settings may be changed through the setup dialog. The setup parameters are as follows:
Parameter Description Participant code Identifies the current participant. This is used in forming the names for the output data files. Also, the sd2 output data file includes a column with the participant code.
Condition code An arbitrary code used to associate a test condition with this invocation. This parameter might be useful if the software is used in an experiment, since conditions might be tested that are not inherently part of the application (e.g., Gender → male, female; Input method → mouse, stylus). The condition code is used in forming the name for the output data file. Also, the sd2 output data file contains a column with the condition code.
Session code Identifies the session. Useful if testing proceeds over multiple sessions to gauge the progression of learning. The session code is used in forming the name for the output data file. Also, the sd2 output data file contains a column with the condition code. Note: The setup dialog does not include an entry for "Block code". The block code is generated automatically by the software.
Number of phrases Specifies the number of phrases presented to the participant in the current block.
Phrases file Specifies a file containing phrases of text to be presented to participants for entry. Phrases are drawn from the file at random. Typically, phrases2.txt is used. This is the phrase set published by MacKenzie and Soukoreff in 2003 (see Related references, above). Other file names may be specified. For example, the file quickbrownfox.txt contains the phrase
the quick brown fox jumps over the lazy dogThis phrase might be useful for demonstration or specialized testing.
Dictionary file Specifies a word-freq file containing words and their frequencies to be used for word completion and for disambiguation (for ambiguous keyboards). The default is d1phrases2-wordfreq.txt
which contains about 10,000 words, including all words inphrases2.txt
.An alternative is
phrases2-wordfreq.txt
which contains only the 1163 unique words inphrases2.txt
. Obviously, there is less ambiguity with a small dictionary. Using such a dictionary is perhaps unrealistic, since text entry involves considerably more words. However, using a small dictionary might be realistic if contextual word completion or correction is also used.
Show presented text during input A checkbox item that determines whether or not the presented text is visible during entry of a phrase. Either way, the text phrase appears at the beginning of a trial. If this option is unchecked, the phrase will disappear when the first keystroke is entered.
Keyboard Identifies the soft keyboard to use in the experiment. The options currently supported are as follows: (click to enlarge)
Qwerty
Custom
(see below)
Keyboard scale A scaling factor to increase or decrease the default size of the soft keyboard. The scalling factor is used in forming the name for the output data file. Also, the sd2 output data file contains a column with the condition code.
Custom keyboard Used in conjunction with the Custom option above to select a custom keyboard layout. The layout is read from a keyboard definition file which is selected from a file chooser. The file chooser opens when the "Browse..." button is clicked. Word completion list size Specifies 0, 1, 3, or 5 words for a word-completion list. Choosing zero effectively disables this options. If 1, 3, or 5 is chosen, suggested words appear above the keyboard as entry proceeds. Selecting words from the word completion list has the potential to reduce the number of keystrokes and speed-up entry. Words are suggested based on a built-in dictionary. The default dictionary contains about 10,000 words.
At the end of each phrase, a popup dialog gives results for the phrase. Here's an example:
The last item in the Keyboard drop-down list is "Custom (select below)". If this option is selected, a custom keyboard is then selected using the setup item below, "Custom keyboard". This option allows the software to use a custom layout which is read from a text file. The "Browse..." button pops up a file chooser to select the keyboard definition file for the custom layout. Three examples are provided. Study the definition files to learn how to define additional customized soft keyboards.
Dvorak. A custom example is provided for the well-known Dvorak layout:
dvorak.txt
. If this file is selected, the program launches
with the following soft keyboard:
L2K. Another example is L2K, an ambiguous keyboard that contains just two letter-keys:
letters_on_two_keys.txt
. If this file is
selected, the program launches with the following soft keyboard:
As an ambiguous keyboard, the L2K keyboard works with word completion and a disambiguation algorithm. See the 3rd reference above for details on the design, operation, and rationale for the L2K and other ambiguous keyboards.
L6K. Another example is L6K, an ambiguous keyboard with six letter-keys. To provide ideas for designs to compare in a user study, four variations are provided:
letters_on_six_keys_a.txt
– 2x3 small,
letters_on_six_keys_b.txt
– 2x3 big,
letters_on_six_keys_c.txt
– 3x2 small, and
letters_on_six_keys_d.txt
– 3x2 big.
Here they are: (click to enlarge)
Perhaps you can think of other designs suitable for empirical testing.
Actual output files use "SoftKeyboardExperiment" as the base filename. This is followed by the
participant code, the condition code, the keyboard, the session code, and the block code. An
example might be SoftKeyboardExperiment-P01-C01-OP-Scale_1.00-S01-B01.sd1
.
In most cases, the sd2 data files are the primary files used for data analyses in an experimental evaluation. The data in the sd2 files are full-precision, comma-delimited, to facilitate importing into a spreadsheet or statistics application. Below is an example for the sd2 file above, after importing into Microsoft Excel: (click to enlarge)
Columns A-H are the conditions present for entry of a phrase. Columns I-P are the user performance measures computed during entry of the phrase. Most of the performance measures are well known in text-entry research.
Efficiency (column J) is computed as Keystrokesmin / Keystrokesactual, where Keystrokes min is the minimum number of keystrokes required to enter a phrase, and Keystrokesactual is the actual number of keystrokes entered by the user. Efficiency is only valid if the error rate is 0%. If the phrase is entered error-free and the user enters it in as few keystrokes as possible, efficiency = 1, or 100%. If the transcribed phrase is error-free, it is still possible that the user's input is sub-optimal, resulting in efficiency < 1. Sub-optimal input occurs, for example, if there are additional keystrokes for correcting mistakes or if the user does not select words in the word completion list when they first appear.
For demonstration, a mouse can be used for input, but finger or stylus input is more appropriate and should be used if possible.
Constructor and Description |
---|
SoftKeyboardExperiment() |
Modifier and Type | Method and Description |
---|---|
static void |
main(java.lang.String[] args) |