I'm creating a form similar to the one below (with <label/> tags, input field accesskeys and logically-ordered tabindices). The form will be filled a handful of times in rapid succession by seasoned office administrators -- so very comfortable with a keyboard.

This got me thinking: given similar use-cases should my form's accesskeys be semantically/linguistically mapped (p = project code, n = notes, etc), or mapped in a physical cluster (a, s, d, etc) for most rapid access?

(I do admit that most users will probably just tab through the form if they choose not abandon the mouse. Still, it will be something to consider for future projects.)

Edit: All fields are mandatory.


download bmml source – Wireframes created with Balsamiq Mockups

2 Answers 2


If all fields are mandatory, then I would just assign one to the first field. "P" for Project in this case. Rather than assigning hotkeys to all the fields, there are other things that can be done to ensure rapid data entry, such as:

  1. If this form is presented in a popup, making sure the Project Name input field gets the focus.
  2. If the "Note" is the last field that needs to be filled before submitting, making sure the Submit action can be invoked by hitting Enter-key.


But to answer your question... almost always semantic, unless there are better symbolic alternatives. Such as using Alt+< and Alt+> for "Previous" and "Next", rather than using P and N. Alt++ and Alt+- for increment and decrement. Using Alt+1, Alt+2, Alt+3 to cycle quickly between a handful of tabs, etc...

  • Edited; I forgot to mention all fields are indeed mandatory. Thanks for your suggestion!
    – msanford
    Mar 21, 2012 at 1:29
  • Just a quick comment on the enter-key in the Notes field: As a user you probably expect the enter-key to insert a newline in a multiline textbox. One solution would be to use Ctrl+Enter to submit. It is kind of the defacto standard in those situations I would think.
    – dotmartin
    Mar 21, 2012 at 9:44
  • 3
    @dotmartin: Funny, I’ve seen the opposite: Enter to submit, Ctrl- (or maybe it was Alt-) Enter to insert a new line. There really isn’t a good solution, except this: If the user is expected to enter paragraphs of text, the window should be a primary window, not a dialog box. With a primary window, the user can Save their work periodically (via menubar/toolbar) without leaving the window. The standard key for Save in a primary window is Ctrl-S, which frees Enter for entering new lines. Mar 21, 2012 at 11:51
  • @MichaelZuschlag yeah, I have seen both solutions too. I would definitively agree with you on the importance of focusing on what the general use case would be and make the choice with this in mind.
    – dotmartin
    Mar 21, 2012 at 12:16
  • 1
    Those are great points about people's expectation about what Enter key should do when the focus is on multi-line textbox. If the row height is 3 lines or so, then I guess people would expect "submit" when they hit Enter. But if it were 5-6+, and people expect to enter a lot of text, then people would expect a carriage return. Stackexchange already does. It handles the Enter key action differently depending on if you're adding a new Post vs Comment.
    – Jung Lee
    Mar 21, 2012 at 14:51

Semantic is better than physical. Users are not going to drum their fingers over the keys to sequentially navigate from one field to another. They’re going to navigate to field, type some input for it, then move on, so there’s no advantage for making it easy to hit the access keys in rapid sequence.

As you note, there is the tab key, which is generally better for go through each field in order anyway because the user doesn’t have to look to see what key to do next. For this reason, access keys are really for jumping to a specific field, such as when the user is updating the form, rather than entering the initial input. For this purpose every field should have an access key if possible. With few exceptions, that’s the MS standard anyway.

More important than semantically mapping the keys is to use a letter early in the corresponding label. For example, your Billing Code field should be Alt-B, not Alt-C, even if most of your users tend to think of it simply as “the code.” According to the MS UX guidelines, access keys aren’t intended to be memorized. It’s more important for users to quickly see what access key to use than for it to have mnemonic properties.

See page 409 of the MS Windows 7 User Experience Interaction Guidelines for more advice.

  • Thanks for the advice, Michael. You also found the word that was on the tip of my tongue, by which I replaced "linguistic association": mnemonic!
    – msanford
    Mar 22, 2012 at 13:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.