When is it appropriate to 'auto advance' from one text field to the next, as in phone numbers and SSN?
2I find this topic to be interesting because of lack of consistency that is used with auto advancing today. Auto advancing can be extremely effective if done right, through the flow of typing, but seems to be a huge pain because users will expect to have to hit tab, or click on the next one.– Kyle MirroJun 15, 2012 at 17:33
Related: ux.stackexchange.com/questions/18764/…– KarenJun 15, 2012 at 20:22
2It's always inappropriate if the user isn't expecting it. Since user's can't expect it at all times, I'd suggest never doing it.– DA01Jun 15, 2012 at 20:31
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
don't do it if your users only occasionally use this form, for example, if this is the sign up form of your web site.
consider it only if your users visit this page again and again, for example, if you are providing a user interface for call-center agents to enter data which they enter many times a day.
11I think advanced users will, more likely than not, be very comfortable with the tab key. The muscle-memory of using that key will make it almost negligible compared to the time and effort it will take them to "grow accustomed to this behavior..." I think advanced users will be initially quite put-off by auto-advancing fields and will likely be quite vocal about their frustrations.– mawcscoJun 15, 2012 at 19:35
5I'm not distinguishing users based on their computer skills, I'm distinguishing them based on how often they use this particular form. It is common to put all kinds of keyboard shortcuts into interfaces designed for data entry people. In most cases, yes, it's a bad idea to auto-advance, but if you have a bookkeeper who has to enter hundreds of records, every shortcut is cherished. Jun 15, 2012 at 20:39
@user15676 And don't forget to make backspace return and clear last character in previous field! Your interface shouldn't interfere with impuls of correcting entered data.– maciekSep 12, 2014 at 22:38
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:
Not everyone looks at the screen while typing. They may not realize that they are in a new field and will type erroneous values. This happens even to people who are aware that the fields will auto-advance.
Knowing when to advance to the next field is quite tricky. Almost always, the advanced user will know better than you that he should advance to the next field. While the process of manually advancing to the next field will educate new users about when a field is complete. Advanced users will become quite comfortable with the tab key.
This is an implementation issue/bug, but quite common, the programmer will have code that indicates that the focus should move, but the user wants to edit/append-to the previous field. The auto-advance mechanism often gets in the way, frustrating the user.
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.
+1 for #3. Three.ie broadband credit vouchers are typed into a set of fields which auto advance, and if you've made an error it's almost impossible to delete.– TRiGJun 15, 2012 at 21:07
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:
Mint focused on making the user do almost no work at all, by automatically editing and categorizing their data, reducing the number of fields in their signup form, and giving them immediate gratification as soon as they possibly could...
1Note that having a single field for a phone number or SSN doesn't mean that the blocks of digits can't be separated. The separating hyphens can appear within the field. (Some variations of this require a bit of magic to make editing work right.) In my mind this is the best of both worlds. It's clear to the user how you're interpreting the input, it saves keystrokes or clicks, and you get to essentially enforce the format as you go, but there's no unexpected behavior.– CascabelJun 15, 2012 at 23:18
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.
- If a user doesn't know the form uses auto-advance, they can press TAB as per usual.
- If the user assumes auto-advance is on, this will also work as expected the moment a key is pressed.
- Contrary to regular auto-advance, if a user mistypes the last letter, he isn't forced to manually go back to the prvious field; the cursor is still there.
- The user might get confused when the cursor is blinking in one field, and the very moment a key is pressed, the letter appears in another field where the cursor has also been moved to.
+1 This already works well with serial entry forms. However, you must not count whitespace characters (space, enter, tab) which may be pasted in if someone is copy pasting instead of typing. Jun 15, 2012 at 23:50