This design presents characterss (A-Z, 0-9, some punctuation) in a column
underneath the cursor's position in the textbox; we call this column the
character selector. This attempts to solve several problems that exist in the
current model.
- Can easily find the letter you want to type.
- If you don't see your character in the currently display, page up/down
until you do. We exploit the fact that the user knows the alphabet which
defines a natural ordering on letters.
- Current systems require searching characters laid out in a non-standard
rectangular grid on screen.
- Easier to edit
- Arrow keys allow you to navigate the textbox's current contents and the
character selector follows you around.
- Current systems try to mimic physical keyboard by putting including
backspace and arrow 'keys' in the onscreen keyboard. The user has to find
and navigate to these in order to manipulate already entered text. This
unnecessarily adds and extra level of indirection between the controller
in the user's hands and the effect of the user's actions on the entered
text.
Our scenario involves a user with a controller offering 4 arrow keys and a
select button. We define the controls as follows:
up arrow - move currently selected character in the selector up one
down arrow - move currently selected character in the selector down one
right arrow - move the cursor right one
left arrow - move the cursor left one
hold up or double-press up - page up the character selector
hold down or double-press down - page down the character selector
hold right or double-press right - insert character before the character under the cursor
hold left or double-press left - delete character under the cursor
select - advance to the next form, submit the form, etc
hold select - accept the auto-completed entry and advance to the next form
Learnability:
- Pros
- Natural mapping between the controls and the actions they produce
onscreen.
- User knows the alphabet, so he knows where to find his desired
character in the character selector.
- Cons
- Numbers and punctuation are also listed in the character selector.
A new user may not know to look for these characters after the
alphabetic characters.
- Complex movements (page up/down, backspace, etc) will require
on-screen instructions. These should either always be present when
the textbox has focus or be easily accessible in some other way.
- The user may expect to be able to type lowercase letters, but we do
not include these in the character selector to prevent the list of
choices from becoming too long. We think this is a reasonable
decision, since no current use case really requires case senstivity
for a function other than aesthetic. A new user might will have to
learn this perhaps through exploration or an instructional message.
Efficiency:
- Pros
- Arranging characters linearly makes it easy to find the desired
character.
- There is no indirection between user controls and navigating
on-screen. The textbox looks like something that you can move left
and right in, and the left and right arrows do just that. The
character selector looks like something that you can move up and down
in, and the up and down arrows do just that.
- Cons
- Because we have limited physical controls (4 arrow keys + 1 select
key), we need to overload these keys to allow for more operations.
This introduces long keypress or double keypresses which naturally
take longer than a single keypress would.
Safety:
- Pros
- The user is able to edit anything he as already typed, so if he
changes his mind and wants to type something completely different he
can.
- Recent errors are very easy to correct. A mistyped letter can be
erased or overwritten with 1 navigation movement.
- We will make use of audio cues (like an aesthetic beep) to signal the
user that he has held the key long enough for the long keypress
operations.
- Cons
- Hiding the character selected in the character selector will be
difficult for textboxes the perform password entry. There will be a
short period of time when the character just typed is visible to
anyone looking at the screen.
|
1. Billy wants to enter his username "BILLY". He moves up/down until 'B' is |
|
2. The cursor now points to the second position in the text box. The character |
|
3. Billy has finished entering his username and presses 'select' to move on. He |
|
4. Billy has finished entering his password and presses select. He is now in |
|
5. This is not what Billy wants, so he continues typing and enters 'R'. Now |