Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

We have a form that spans 3 pages (has steps 1 to 3). Currently, we allow them to skip required data because they may want to do Step 2 first before they feel like filling out Step 1 form. Our forms have a Save Draft button so they can save and come back anytime.

A concrete example:

Step 1 requires them to input 5 necessary fields (others are optional)
Step 2 requires them to upload a file
Step 3 requires them to do a schedule

A user might have a file ready and wants to upload it but hasn't thought of what to put on Step 1 yet. So that user can go to Step 2 immediately and skip Step 1 (even if some fields are mandatory). On the last page though (Step 3), the user cannot proceed if he hasn't filled out all the necessary info from Steps 1 - 3. There would be an error message that tells the user that some information is missing (even if it's from another page).

The dilemma is this:

  1. If we only inform the user on the last page about the errors, the user might take long to assess which page and which part of that page is the error.

  2. However, if we validate by page, meaning they can't proceed to Step 2 unless all required info in Step 1 has been filled out, the user loses the flexibility / convenience of doing other steps that's easier for him to accomplish.

What is the best way to approach this?

share|improve this question

3 Answers 3

Validating early and letting the user know early in the process that something is required is important for a good user experience. If I complete three pages of a form only to be told at page three that I have errors on page one, I am going to be frustrated by that.

That being said, I understand your desire to maintain flexibility. My suggestion to balance the two needs is to show validation messages as users fill out the form, but accompany that message with a note that they can continue - for now.

Once the user reaches the end of the form, let them know what they still need to do, that is now required to proceed, and make it very easy for them to backtrack to fill in missing information. Be sure as they visit previous parts of the form that validation messages are already visible and clearly marked. Update any validation messages as requirements are completed, usually by removing the validation message. You may want to consider showing a final success message that lets them know that the current step of the process is completed and clearly show how to proceed.

It's important to prevent surprises. A user who sees a caution that data is needed, but can be completed later, knows what's happening. That's lot more pleasant than getting to the end of several forms thinking that you are done only to be now learn you're not.

share|improve this answer

Implicit validation is the best approach, because it allows to catch user when he has a context and enough information in order save a problem. Late validation will require user to restore the context, which is bad.

The implicit validation approach validates data as the user enters it. You can validate the data as the data is entered in a control by reading the keys as they are pressed, or more commonly whenever the user takes the input focus away from one control and moves to the next. This approach is useful when you want to give the user immediate feedback about the data as they are working.

BTW, it looks like there is an issue in the logic, let's check together

  1. We have a form that spans 3 pages
  2. User can go to Step 2 immediately and skip Step 1
  3. If we validate by page, meaning they can't proceed to Step 2

Item #3 is wrong. Why can't you perform validation in order to highlight problematic fields but not to block the user? According to item #1 you do not have three independent forms, you just have some logical separation within a form.

Please see below (I've used accordion in order to emphasis I have one form presented in a user friendly structured way).

enter image description here

So it should be possible to do the following:

  • validate user's input immediately
  • provide a global validation marker to highlight pages with errors
  • disable "apply" button until errors corrected, but still provide "save as a draft"
share|improve this answer
    
For #3, what I mean is that the user cannot proceed if they leave a field blank. The field is not problematic in the sense that the input is wrong, rather it's just empty. I usually see instant validation for wrong input but for blank fields, validation messages usually appear when they hit "Submit". –  catandmouse Jul 30 '13 at 14:21

There are several ways.

  1. Be truly flexible. Require only identification fields to let user to return later and fill needed info.
  2. Collect all errors to a single page. This allows user to correct all the errors without switching between steps.
  3. Provide easy access to correct errors. Provide hyperlinks in error messages to jump easilly to appropriate places containing errors.
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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