When is it appropriate to 'auto advance' from one text field to the next, as in phone numbers and SSN?
|
|
Because this behavior is rare and therefore unexpected, it will surprise most novice users, which can cause them to misunderstand how to use the interface, and interfere with usability. (An example of this interference might be if the user fills out the field and presses tab, while you have auto-advanced, and while they think they are typing in the next field, they discover that they are actually typing in the field after the next field). However if you have very experienced users who use your form every day, they will grow accustomed to this behavior and appreciate the shortcut. So I would say
|
|||||||||
|
|
With one of my previous assignments, this issue came up with our users. It turned out frustrating for both beginner and advanced users. Here are some major issues with auto-advancing:
With these in mind, I can't think of many benefits to auto-advancing fields. Just make sure your tab order is appropriate and it should be ok. |
|||
|
|
Very often we are trying to make it easier for the user to solve a problem for us, when really we should be solving the problem ourselves. In this case, the auto advance technique is used to make it easier for users to fill in multiple form fields, but why not make it easiest of all and skip the multiple form fields entirely? In the case of a phone number, for example, why not just have one form field for all numbers and then separate them programmatically on the backend if needed? This simplifies the task for the user, which is better than trying to make a more complex task easier. See this take on why Mint beat Wesabe (it's a little broad as it relates to this subject but is definitely relevant) for an example of this principle in action: Mint focused on doing everything for the user so they didn't have to do it themselves:
|
|||||||
|
|
I think you should always auto-advance to the next field, and include measures to guard against inadvertent user tabbing, eg. block the tab key for half a second or so after the last auto-advance if the current field is empty, etc. That way you get the best of both worlds and handle the expectations of both kinds of users. I personally find it somewhat frustrating when I try to fill out forms quickly then find out that there is no auto-advance. Not knowing what to expect, I always end up pausing for a second after typing the first part of a phone number or SSN. |
|||
|
|
|
Excellent answers on whether you should use the common auto-advance has already been written. Instead, I'll propose a bit of an alternative to the regular auto-advance. Instead of sending the user to the next field automatically after having typed in the mandatory 6 letters in the field (or whatever), you should keep the cursor in the first field. Only when a new key is pressed, the cursor should be moved to the next field, unless that key is backspace. Pros
Cons
|
|||
|