How to write good questions for forms
-
Use filter questions to route users
Filter questions help users move quickly through the form by routing them to the questions that apply to them.
What are filter questions?
Filter (or branching) questions ask a short question first, often a Yes/No question, with radios. A typical filter question would be: "Are you 18 or over?"
Filter questions help you:
- get people to the questions that apply to them - so use them early on
- avoid optional questions, because users only answer the questions that apply to them
- simplify long questions (like "double-barrelled" questions) by breaking them up

But often you need more than a simple "Yes" or "No". In the "Are you 18 or over?" example, for instance, you should think about what your service can offer younger users as an alternative and how you can support their user journey.
Spell out what "Yes" and "No" mean
Check how users react to your Yes/No question when you test it. Sometimes you will find you need to be clearer about what "Yes" and "No" mean.
In this case, "No" could also mean:
- "No, do not contact me by email"
- "No, do not contact me at all"
You may need to offer people guidance or an explanation to help them choose.
Beware binary choices
There will often be at least 1 other option besides "Yes" and "No", including, for example, "I don't know" or "I'm not sure".
We recommend that you always try out a 3rd option. Extra options can be challenging for the service, but you should consider them.
Having a 3rd option means that you can give people extra information, for example, about their NHS number and where to find it. Our pattern for asking users for their NHS number explains more about this.
"Other" can be a useful option, but avoid using "Other" with personal or sensitive information.
In your user research, find out what would help your users, for example, by leaving a box with hint text for them to type in something other than "Yes" or "No".
Offer people other ways to do things
If you need people to enter details to continue and they cannot do this, for example, because they do not have key information to hand, consider whether you could add something to the "No" option to reassure them that there is an alternative.
In our Ask users for their NHS number pattern, we recommend that you give users another way to complete the task without their NHS number. For example, by using a combination of other personal details, like their date of birth and postcode.
Test your questions and routing decisions
It can help to use post-its, or print out and cut up a paper prototype, to see how the answers might take users on 1 journey or another.
Read more about testing your questions.
If a lot of people cannot answer "Yes" or "No", reconsider your question.
Would you like to contribute to this guidance?
Please let us know how this has worked for you and, in particular, if you have research findings to share. This will help us improve it for everyone.
Before you start, you will need a GitHub account. It's an open forum where we collect feedback.
If you have any questions, you can message us on Slack. You will need a Slack account if you do not have one. Or you can contact us by email.
Updated: November 2019