views:

78

answers:

3

I've got a bit of a usability issue that I'd value some input on.

The initial page to my site contains two groups of controls, one for users to login, the other for new users to activate.

The issue is with the latter. When users signup for the service, they recieve an activation code that's in the form XXXX-XXXX-XXXX-XXXX. At the moment they have to enter this into four separate textfields. Whilst I've added some javascript to this to automatically move them back and forwards between textfields as if it were a single control (which works pretty well) the issue is that it lacks a way for the user to paste their data into it and as such is a bit of a pain.

Now this is not a huge issue, but it potentially means that peoples very first experience with my site is a slightly frustrating one, having to hop backwards and forwards between the email containing their activation code and my page. That's obviously not optimal.

At this point you're probably thinking that the glaringly obvious answer would be to make the activation code entry into one single textfield. And you would be right, but I lose one very important thing if I do this: I lose the key visual differentiator between one form and the other, which automatically tells the user which is the form they need to use without reading anything or having to analyse anthing. As it is at the moment, effectively there are two different shaped holes on the page and the users data will obviously only fit one of them so, to an extent, it's a no-brainer which form is relevant to them.

So, does anyone have any good solutions to this? The single restriction is that I need to keep all controls on one single page.

Thanks in advance for any help.

Edit:

Thanks for all the input so far, every bit of which has been valuable. I'm currently thinking that the best solution is not one single thing, but actually an amalgamation of different approaches to make the whole thing more usable.

On that basis, here's what I'm going to do, based on all your suggestions:

  • In the purchase email, setup the link to the initial page such that it contains the activation code in the querystring. Setup the initial page to check this and forward them straight on. This probably means that the vast majority of users won't even see the initial page, but there will still be cases whereby people receive their codes by other means and will have to input them directly
  • Convert the four textfields to a single textfield with "XXXX-XXXX-XXXX-XXXX" as an inline label.
  • Setup the login controls to forward on any user that mistakenly enters their activation code here without just dumping them to an error screen.

And I don't know why I didn't include it in the first place, but here's the URL for anyone that wants to take a look at the current implementation (you'll have to excuse the fact that it's in Italian, but it should be fairly straightforward what's what).

Have given the answer to bryan which contains most of what I'm going to use. If I had the necessary reputation I'd vote up all your answers as they've all helped. Thanks again.

+1  A: 

You could write an onpaste function in JavaScript which chops up the pasted string in to 4character blocks and them writes them to the appropriate textbox's via the dom.

Matt Joslin
I did consider that, but the issue is letting the user know that they can do this in a way that is intuitive. I think most users would take one look, assume they couldn't paste and give up without trying. And I kind of wanted to avoid having to write or display something along the lines of "you can paste" as I think when you're having to spell it out you're failing to make a particularly usable system! This is the bit where my brain is failing ... I'd prefer it though because it looks nice.
BinarySolo
I agree. Its not the sort of functionallity that I would naturally expect from 4 textboxs, but I thought it might have been suitable. Certainly if you do decide to stick with 4 separate textboxs you should implement this as the few % of people who try to paste will be pleasantly surprised. I'll keep thinking about this problem though and will be keen to see other people suggestions
Matt Joslin
+1  A: 

A few easy options:

  1. You can keep them the same physical page, just alter the querystring when you send the activation code. Hide one set of controls if the querystring is available. If you have to display both sections, then grey out one section based on the querystring information.

  2. Change the control to have one textfield, but include "XXXX-XXXX-XXXX-XXXX" as the default text in the New User Activation. If the user clicks on the textbox, remove the text so they don't include the prompting text with their activation code. People will see the default text and gravitate towards it if they're expecting that pattern. People logging in will see the default text and block it out.

bryanjonker
Option 1 is a possibility I hadn't considered because I am of course in control of the link they would be clicking on. That has actually made me feel a bit stupid!Option 2 is good as well and I could even use in conjunction with 1 to clarify.Thanks for both of those. I'm still going to hang on and try and keep my four textfields, but if reason prevails I'll probably go for these.
BinarySolo
Re: Option 1. Sometimes it's just a matter of stepping back from the problem. :-). A lot of sites send the activation code over the querystring, which you may consider.
bryanjonker
+1  A: 

Sounds to me you’ve a problem of users confusing two text boxes but then you’re making it worse by dividing one text box into four. For example, auto-tabbing through fields is bad usability -see comments and answers to “Moving a focus when the input text field reaches a max length.”

Assuming this isn’t a hypothetical problem and you’ve actually observed people use the wrong field, you need to find another solution for users confusing the fields:

  • Use terse field labels. Label the field “Activation Code” not “Enter your sixteen character dash-delimited activation code from the email we sent you when you signed up.” Text necessary for explaining where to get the activation code should be after the text box.

  • Use cueing text or graphic design on the outside of the text box to indicate it has four substrings. For example, put “XXXX-XXXX-XXXX-XXXX” under the text box.

  • Remove all extraneous elements from the page –the more graphic and text distractions on the page, the less the differences between the two text boxes will be noticed.

  • Make it so it doesn’t matter which text box the users use. If the string entered in the Username text box doesn’t match any username, then see if it matches any activation code, and vice versa.

  • Eliminate the activation code text box. Instead, when you send the activation request, include a sign-up URL that includes the activation code as a parameter (more details in answer by bryanjonker).

Sorry, this should probably be a comment, not an answer, but it wouldn’t fit.

Michael Zuschlag
Point taken about auto-tabbing of fields. You're absolutely right because even though I'm fond of the implementation, it can annoy me too.I haven't observed anyone actually using the wrong field, but previously I had observed a period of hesitation where the user has to figure out which they require as both forms contained identical looking textfields. Hence the desire to differentiate visually.All your points are good (see my edit), but I wanted to say that the fourth was especially so. Failing to see that, I was clearly coming at the problem in too programmatic a way, so thanks for that.
BinarySolo