What makes a good form

Design forms that help people complete a task quickly and successfully.

A good form is one that is easy to understand, well organised, and allows users to complete a task easily.

There are certain characteristics that all good forms share.

A user can complete a whole task

A good form allows a user to complete the task as simply as possible.

It contains everything a user considers while completing an action and any further steps a user could need to take or support they might need afterwards.

This means:

Users understand the task

The purpose of your form should be clear to users before they start using it.

Be transparent about what's needed from a user when they use the form and what they can expect in return. This includes things like:

  • what the form is for and if they need to fill it in
  • who can use the form (if they're eligible for the service)
  • what they need to submit the form (for example, a tax file number and a passport number)
  • how long the form will take to complete, this is the average time it takes a user to complete a specific form
  • how much it will cost
  • when the user can expect a reply or decision

If the form is part of a journey that will involve other stages, show the users where they are in this journey. Include information about any other forms the user will need to fill in.

It allows users to take the smallest number of steps to reach their goal

Design for the most common scenarios first. Only ask for information that is needed for your service.

Reducing how much data a user has to give reduces how much they have to do. For example, asking users to review information they provided previously, rather than having them enter it again.

Promotes trust

Treat users with respect, valuing their time, providing assurance where needed and taking care with their data.

This includes avoiding asking for unnecessary information as it erodes trust.

There are no dead ends

Every user needs to be led to a clear outcome, even if they are not eligible for the thing they're applying for, or the task they're trying to complete.

A good form makes it clear how a decision was made and gives users a route to challenge a decision if they need to.

If people get stuck, a good form gives them an easy way to communicate with a human being. This might be by phone, email, or face to face.

Complexity is hidden

You should do the hard work to make it simple. Making something look simple is easy. Making something simple to use is much harder, especially when the underlying systems are complex.

Read how to reduce cognitive load using progressive disclosure.

The form is consistent

This includes consistent use of styles, data formats and structure, interaction patterns and language.

How you collect, store and display data should also be consistent. This helps users understand and use the information, and know what is expected of them.

Forms should follow our:

The form works in a familiar way

People expect forms to work in a certain way based on what they have seen or used before.

A good service uses familiar design conventions, like patterns and components, to help people use it easily. For example, users who have signed up to a new service often expect an email confirming this.

Forms are inclusive

People have different needs. Good forms are inclusive so that everyone can use them as easily as possible.

They use the same language as their users to make it easier for anyone to read and understand.

Forms are accessible

Making a form accessible often results in a better experience for everyone who uses it.

Time limits

Avoid putting time limits on forms so users can complete a form at their own pace. If a time limit needs to be set, for example, for security reasons, users should have the option to turn it off or extend it.

Meeting WCAG 2.2

Forms must comply with the latest version of the Web Content Accessibility Guidelines (WCAG) and be AA compliant.

This includes things like providing clear error messaging to help users understand when there’s been an error and how to resolve it. (See the error message component and error summary component.)

Testing for accessibility

Test your code regularly, using both automated and manual testing. These tests will also uncover issues with design and content.

Refer to testing for accessibility.