I have a scenario whereby the user needs to perform an action after entering some information within a step on a wizard. Can this action be initiated with a command on the step in order to reduce the amount of steps on the wizard?

See mock-up below. I want the user to explicitly select the authorise command so came up with this solution. Is this ok or is it bad practice to have commands within a form like this?

enter image description here

3 Answers 3


Edited (given new info from comments):

In lots of cases, yes.

Individual line validation is often and excellent time saver and confidence improver, and should be encouraged more often than it is. Individual line validation provides

  1. immediate confirmation to users that their response is valid, or
  2. immediate feedback to users that their response must be updated.

If the response is valid, they can immediately dump that cognitive object from their active memory.

If the response is invalid, they can fix it while they're still actively thinking about it. This:

  • reduces the time needed to fix an individual error,
  • reduces form refreshes (as the form need not post all at once, then repaint all of the errors at a single time), and, therefore,
  • reduces total time to complete a form.

Real-time validation, depending on the type of data, is also an excellent choice, and is easily implemented by assigning an "onblur" action to the form field.


From your instructional text you've described the Validate button as a testing action. However, as you intend to actually initiate a decision point that involves the user making a commitment, it should be its own discrete step. Further, instructions should be more clear about what the user is about to do so that they don't make an unintended choice.

  • Real-time validation is great, but this isn't real-time validation. Real-time validation by definition checks the entry as it's being entered. It would check for rights with each character entered in the URL text box, or, at worse, when focus attempts to leave the text box. Here the user has to click a button. With only one text box on the page, it's no better than an in-line error message when clicking Done. Commented Jan 27, 2014 at 15:41
  • Michael, thanks for keeping me honest there - "real-time" there was an artifact of what I'd been writing before. And no, real-time doesn't only describe individual character checking. "Real-time" is also commonly used to describe the action of automatically validating on leaving a form field.
    – Matthew
    Commented Jan 27, 2014 at 16:09
  • Also, my answer here answers the question and not specifically the simple single-field-in-a-page illustration. However, even in the illustrated case, it's good to offer the option of explicit validation, because the resulting feedback is expected. Implicit validation on "Done" here may show to increase completion time (as user has to scan and discover error messages, then choose to act).
    – Matthew
    Commented Jan 27, 2014 at 16:16
  • Yes, for the case of a page with multiple text boxes, I can see that a button that explicitly checks a field’s validation could be better than an implicit check on clicking Done. However, such a button is only better when users can sensibly choose to not validate in some cases. Otherwise, the effort for reading instructions and deciding to validate or not (which happens for every case) will very likely outweigh the re-orientation effort associated with a validation error found when checked implicitly by Done (which should happen for a minority of cases). Commented Jan 27, 2014 at 19:32
  • Quite true re: the instructions. In the specific case above, I'd have simply placed the field, and a button named "confirm"; the relationship would be apparent to nearly all users. Those choices are of course up to the OP, but the general case (can I put a button here) I think we're relatively agreed on, yes?
    – Matthew
    Commented Jan 28, 2014 at 8:18

A wizard can have buttons or links to help users enter correct input to the wizard's controls (e.g., a Browse button for a file name, or help links for additional documentation). It also might make sense in certain special cases to have a command link or button in a wizard to allow user to take one or another branch in the task flow. However, in keeping with the philosophy and application of a wizard, the branching choice itself should generally be separate page which clearly explains the alternatives. Windows User Experience guidelines recommend that you "put no more than one user decision on a single wizard page." If you don't need to explain each step, maybe you don't need a wizard.

But all that doesn't apply in your case, because it looks like users should always click Authorize -it's not a branch.

Efficiency of Alternative 1 = Alternative 2

I assume the alternative design is no Authorize button, but instead a Next button which executes the authorization check, resulting usually in another wizard page (Step 3) saying the URL is authorized, and the user then clicks the Done button. Your design may reduce the number of pages, but it doesn’t reduce the number of steps from the users’ perspective. Either way the user must (1) Enter a URL, (2) Click Authorize/Next, (3) Click Done. The amount of user effort is the same. Assuming pages load very quickly (and they should), the normative time to completion is also the same.

Your design in the meantime could be potentially confusing. What happens if the users selects Done before Authorize? Does the URL not authorize the URL (i.e., it’s Cancel, not Done), or does it attempt to authorize the URL without checking rights first? And if there’s no error message, does that mean the authorization was successful? Or could it have tried and failed silently due to insufficient rights? Whatever you decide the behavior is, how does the user know what you selected?

Alternative 3

According to your user research, do users generally believe they have the rights to authorize the domains in questions? Or are they entering any old URL hoping they might have the rights? I’m guessing the former is true. If so, to improve the efficiency of the design, have no separate Authorize button. Make the Done button perform the rights check and complete everything else in the task in one step all behind the scenes, and then exit the wizard. The whole rationale for the "wizard" metaphor is that is does things automagically. There is no final “your domain has been authorized” page.

If the user clicks Done and the wizard exits, then the user will assume the wizard did what is was purported to do and authorized the domain. A separate “authorization successful” step does not provide enough information to justify its existence if the user is expecting that they have the rights. It’s too much like a “congratulations” page, which the Windows 7 User Experience Interaction Guidelines (page 16) advises not to include in a wizard. If the app finds the user does not have the rights, then stay on the URL page, display error text explaining the issue, and allow the user to correct the URL (which most likely had a simple typo).

  • It is important that the user knows they are about to 'authorise' their entry. This is not just an input validation problem. In my example scenario, clicking authorise may effect some external functions so is important that the user knows what they are about to do. E.g. it may right to a log or save an item on a database somewhere. If that save process fails, they get a message, if it is successful they get a message similar to my diagram. Could leaving that to a done/next button may be a bit too hidden away and not explicit enough. That was my worry.
    – Dave Haigh
    Commented Jan 27, 2014 at 16:45
  • Maybe Alternative 4 could be a message associated with the done button which states "Selecting Done will authorise the URL that you have entered above", which gets rid of the Authorise button but still has that confidence that the user knows what they are about to do. Does that sound better than my example diagram in the question?
    – Dave Haigh
    Commented Jan 27, 2014 at 16:47
  • 1
    @DH: If the purpose of the entire wizard is to authorise a URL, then you can (and should) label the Done button "Authorise." That and other text, starting with the menu item that opened the wizard, ought to keep the users aware of what they're doing. If the purpose of the wizard is, say, to "activate" the URL, and authorisation is step on the way that the user does not anticipate, then, yes, text above the Done (Activate) button or under the URL text box can explain that authorisation also occurs automatically. That's appropriate for a wizard. Commented Jan 27, 2014 at 18:38
  • @DaveHaigh That is an important distinction. Your instructional text says "Clicking authorize will check if you have the rights". It does not say "Clicking authorize will check if you have the rights and lock in your choice," which is what it sounds like you're doing. Decision points should probably own their own panels. Alternative 4 in that case is the better choice, and your instructions need to be clear what clicking the Done/Authorize button will actually do, lest they think they're just testing a domain.
    – Matthew
    Commented Jan 28, 2014 at 8:23

I totally agree with Matt but I think you can make it even better by auto verifying the url.


download bmml source – Wireframes created with Balsamiq Mockups

  • This is indeed a good conclusion to the general case. Auto-confirming on focus out is also useful for usernames, ZIP codes, and things of that nature.
    – Matthew
    Commented Jan 27, 2014 at 16:03

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.