Skip to main content
All CollectionsHow to Build Forms
Form Design Best Practices
Form Design Best Practices

a.k.a., "The Form Bible". Learn the principles of design a form to build an effective form that is a pleasure to fill out.

Tim Berezny avatar
Written by Tim Berezny
Updated over a week ago

Designing a good form is hard. So many forms are frustrating to use, tedious, and ask the wrong questions. This is a guide of form design best practices to help build strong forms to improve your service access process.

Note: Caredove staff will help you apply this principles in the design phase of your form, and will perform the technical implementation of building your form. Learn more about updating your forms.

First, a few important definitions:

  • Form filler - The person who is filling out the form. This could be a referrer, family member, client/patient/registrant, yourself, etc... Sometimes anybody from the public can fill out a form, and other times it must be a registered Caredove user.

  • Form subject - This is the person the information filled on the form is about. This could be the same person who is filling the form, or a different person. In healthcare, this person is often also known as the client, patient, or registrant.

  • Form receiver - The person receiving the form. For healthcare referrals this is often the "provider" of a healthcare service

1. The Golden Rule

Only ask questions that serve the purpose and audience of your form

Designing what questions to ask, and how to ask them on a form is dependent on the purpose of the form, and who will be filling it out (the audience). By clearly defining your form's purpose and audience, you can evaluate the quality of your form's design and each of its questions.

The most common errors in form design are related to purpose and audience:

  1. asking "nice-to-have" questions that aren't related to the form's purpose,

  2. using language that isn't appropriate for the audience - in particular, using healthcare jargon with public audiences, or internal process language with external audiences.

The following are the most common purposes & audiences for Caredove forms, and related design considerations to build a successful form:

Purpose

Design Considerations

Contact Us

Solicit interest to prompt the public to have a "learn more" conversation about an organization's services.

Don't "scare off" the user with complicated questions, prioritize making the follow-up connection.

  • Single page form; often embedded on an organization's "Contact Us" website webpage.

  • Ask only the information needed to contact the user (usually name, phone number, sometimes email).

  • Include a generic "Message" or "What do you need help with" field for the user to describe their needs in their own words.

  • DO NOT ask personal or protected health information questions here, as non-healthcare administrative staff are usually the ones receiving and actioning these form submissions.

Self-Referral to Intake Appointment

A pre-registration form that is used by the public to book a first appointment with an intake coordinator, who will make a decision to admit to service.

Design the form as the first part of the "Intake Appointment" flow, where more questions will be asked where a personal touch (e.g., prompt with follow up questions) is more appropriate.

  • Avoid duplication of questions between the form and intake appointment.

  • Focus on eligibility and contact information.

  • Avoid jargon and use simple language (e.g., 8th grade reading level).

  • Avoid clinical questions.

  • A free text field at the end can be helpful for the user to include information they feel is important, but wasn't asked on the form.

Referral to Intake Appointment

Same as "Self-Referral to Intake Appointment", except that the person filling out the form (referrer) is a healthcare professional, such as a care coordinator, social worker, or physician who is making a referral on behalf of a client or patient.

The referrer MAY or MAY NOT have useful information about the client that would help them avoid having to "tell their story twice", and help jump-start the intake appointment.

  • If the form will ALSO be used for self-referrals, then design the form as per its purpose being "self-referral to intake appointment".

  • May ask clinical questions, but be careful not to ask too many "mandatory" questions, as over-use can cause form abandonment.

  • Use of common industry jargon MAY be appropriate.

  • Generally, case managers/social workers/etc... are more tolerant of longer forms than physicians, who are more likely to abandon forms that take more than a couple minutes to complete.

  • Consider including an attachments upload option (for existing assessments, patient summaries, etc...)

Assessment & Service Routing

Assessment forms may be used to help define the client's needs, which is then used to help identify the most appropriate service(s) to meet those needs.

These are inherently the most complicated types of forms, and thus require the most thoughtful consideration about how to simplify them.

  • Include a meaningful and concise narrative pre-amble that educates the user about the purpose and expected outcomes of the form, including the approximate time it might take to complete the form.

  • Only ask questions that are useful for the purpose of identifying the most appropriate services, within the basket of services available through this access pathway.

  • Avoid general or contextual clinical questions.

  • Avoid the temptation to include questions for the purpose of making it a "universal referral form" across multiple services, which tends to increase the assessment form complexity exponentially.

2. Form & Page Structure

The following section structure is recommended for all forms:

Standard form structure:

  1. Introduction

  2. Eligibility

  3. Questions

  4. Contact Information

  5. Results (Routing forms only)

  6. Additional Questions (e.g., "How did you hear about us")

  7. Consent

Depending on the purpose and audience of the form, any of these sections may be completely omitted from the form. For example,

  • A contact us form would use only the "Contact Information" and "Consent" sections.

  • A referral form would rarely use the introduction section

  • Additional Questions should rarely be used

  • The results section is only used by routing forms

Depending on their size, these sections could all be presented on a single page, or spread across multiple pages. Use the following rule to decide if you should use a single-page or multi-page form:

Single page vs. Multi-page rule of thumb

Use a single page form when its length is under 5 (desktop) screen high. For longer forms, give each section its own page (other than consent, which should be appended at the end of the last form section).

On multi-page forms, label the pages with the exact section titles listed here. On a single page form, don't use a page title, the form title is sufficient.

The following describes how to design each of the form sections

Section

Design Considerations

Introduction
This introduction educates the user to WHAT the form does, and WHY to complete it.

This section is typically used with the form types:
❌ Contact Us, ❌ Referral, ✅ Routing

  • Keep it short and simple (under 10 sentences), use simple English, avoid jargon, don't repeat content.

  • Use expander groups for large blocks of content (e.g., privacy and security commentary).

Eligibility
The eligibility section asks questions that will block the progression on the form if they are not answered correctly.

This section is typically used with the form types:
❌ Contact Us, ❌ Referral, ✅ Routing

  • Only use this section for advanced eligibility questions which cannot be handled with the eligibility check function built into Caredove with the referred service listings.

  • Create an "Ineligible" page on the form which will display if any of the eligibility criteria are not met. Provide a clear descriptive text about what the requirements are for the criteria that was not met. Hide the "next" button on the page to prevent completion of the form.

  • See the "Eligibility Questions" section of this document for best practices when building eligibility questions

⚠️ Exceptions:

  • ⚠️ In multi-page forms, it may be appropriate to merge Introduction with Eligibility on the same page, if the eligibility section is short (1 or 2 questions).

Questions

This section is the main content of most forms. Ask what is needed to accomplish the purpose of the form.

This section is typically used with the form types:
❌ Contact Us, ✅ Referral, ✅ Routing

Contact Information

The information required for the form receiver (provider) to contact the client.

Typically used with:
✅ Contact Us, ✅ Referral, ✅ Routing

  • This content is recommended to be placed AFTER the "Questions" section because the user will have already done the hard part ("questions"), so is less likely to abandon the form once the user just has the demographics left (learn more).

  • Typical demographic content includes name, address, primary/secondary phone, email, date of birth.

  • May include alternate contact(s).

  • May include primary care provider or other formal service providers (e.g., child case worker).

  • May include requester information, if non-Caredove referrers can fill the form.

⚠️ Exceptions

  • Requester information may be included earlier in the form (e.g., introduction section) if it impacts the content of the other sections (e.g., different questions for self-referral vs a social worker referral).

Results page

This page displays the action results of a routing form (e.g., the matched service to refer to)

Typically used with:
❌ Contact Us, ❌ Referral, ✅ Routing

  • Include result description that includes the routing action. (e.g., based on your answers, we recommend that you would benefit from serviceX).

  • Include a description of the next steps (e.g., regarding booking an appointment).

  • Provide an option for the user to NOT continue to the recommendation.

Additional Information

For "one more thing..." meta questions that are not associated with the main purpose of the form.

Typically used with:
❌ Contact Us, ❌ Referral, ❌ Routing

  • e.g., "How did you hear about us", "Please rate your experience filling out this form".

  • Generally, it is recommended to not use these types of questions on a form.

Consent

Clients (or their guardian) must agree to share their personal information for the purposes of receiving an intake appointment. Read more on consent best practices here.

Typically used with:
✅ Contact Us, ✅ Referral, ✅ Routing

  • Adjust the wording of the consent based on who is completing the form. For forms completed by healthcare providers, ensure that the client has consented to share this information.

  • Special care should be taken when gathering consent for minors (people under 17 years of age), and must include consent of a legal guardian.

  • In most cases, DO NOT include consent to treat or receive services. This comes after the intake is complete and the client understands the services being offered to them. Exceptions may include single-session service (e.g., brief counselling or infant hearing screening).

  • See the "Consent Questions" section of this document for best practices when building consent questions

3. Page Layout

Headers

Headers are useful to visually group concepts within a page. There are two ways to add headers, both of these methods appear the same to the form filler, but can appear slightly different to the form receiver:

  1. Display text - Set style property as "header"

  2. Group's header text - Note that on the answers display, the group's content is "indented" one level.

Apply headers as follows

  • Use headers on longer form pages, avoid headers on shorter forms.

  • Keep header labels short.

  • When headers are used, EVERY question on the page should be under a logically grouped header. However, narrative content that describes the page may be useful before the first header.

  • Group headers can also have secondary text for additional context about the upcoming questions. If secondary text is used with one header on a page, then it should usually be used with all headers on the page.

Groups

Groups are collections of questions that are wrapped together in a group.

  • Groups have the following uses:

    • 1) Apply headers to a section of content in a page (with optional sub-headers)

    • 2) Apply conditional display logic to multiple questions on a page at once

    • 3) Modify formatting of content for the form RECEIVER, where the group's question answers are indented

    • 4) Apply group formatting of expandable accordions, or group backgrounds

    • 5) Create "Hidden" form sections which are not visible for users

  • Use expandable accordions for "read more" style of display text content that is not necessary to proceed with the form, but may provide helpful background to those who are interested (e.g., privacy policy details). Generally, questions are not included in accordions.

  • Use "Hidden" groups to hold calculations that are never displayed to the form filler (e.g., calculate age based on a date of birth date field, which is used to determine eligibility).

Dividers

Dividers are a visual flourish for breaking up page content vertically. Dividers can be either horizontal lines or blank rows.

  • Use dividers for subtle visual vertical grouping within a page, where a header is overkill.

  • Usage of line dividers is generally preferred over the usage of spacers.

Display Text

Display text shows markdown formatted text (learn more about using markdown), and has the following purposes:

  • Provide narrative about the form and related submission processes

  • Provide formatting on the form (e.g., headers, images)

  • Display formatted results of calculations

  • Display narrative about routing form results (e.g., routed service, next steps)

Display text is formatted with markdown (NOT HTML tags), which is a simple text-editor friendly method for writing styled content. The following are the most commonly used markdown syntax (for full syntax, see this markdown cheat sheet):

Heading

# H1
## H2
### H3

Bold

**bold text**

Italic

*italicized text*

Numbered list

1. First item
2. Second item
3. Third item

Bulleted list

- First item
- Second item
- Third item

Horizontal line

---

Link

Image

![alt text](image url)

Linked Image

[![alt text](image url)](https://www.example.com)

Table

| Syntax | Description |
| ----------- | ----------- |
| Header | Title |
| Paragraph | Text |

To include video content into a form, insert it as a linked image, which will open in a new tab on click. For example:

[![Video title](https://img.youtube.com/vi/dQw4w9WgXcQ/0.jpg)](https://www.youtube.com/watch?v=dQw4w9WgXcQ)

Note that every youtube video has a corresponding online thumbnail image that can be used as per the example.

4. Question Design

Designing strong questions can be difficult. Apply the following best practices:

Question Clarity

  • Use short labels. If more explanation about the meaning of a question is required, use secondary or helper text. Note that the secondary and helper text does not appear on the form submission, which makes it easier for the receiver to read the form response data. The secondary text in the following example is in italics.

Do
Select which situations apply to the patient:

🔲 Has diagnosis that prevents travel
(e.g. agoraphobia, debilitating anxiety, or psychiatric condition)

🔲 Unable to arrange transportation
(e.g, to a clinic, grocery shopping, or social events)

Don't
Indicate which situation(s) apply to the patient:

🔲 The patient has a diagnosis (e.g. agoraphobia, debilitating anxiety, or psychiatric condition) that prevents them from leaving their residence

🔲 The patient is unable to arrange transportation to clinics, grocery shopping or social events

  • Don't use use superfluous words (e.g., "please")

Do
✅ First name

Don't
❌ Please enter your first name

  • Avoid industry jargon and internal process terms
    e.g., “Crisis Service”, “Central Intake”

Do
✅ We will help direct you to the best service that meets your needs

Don't
❌ Our Central Intake department will help you

✅ Are you experiencing overwhelming thoughts, emotions or behaviours which might put yourself or somebody else in immediate danger?

❌ Are you in crisis?

  • Don't use unexplained abbreviations

Do
✅ Children's Aid Services
✅ Children's Aid Services (CAS)

Don't
❌ CAS

  • Avoid starting a question with a verb when the meaning is clear without it

Do
✅ Nationality

Don't
❌ Select your nationality

5. Question Formatting and Syntax

Header style

Do
✅ Areas of Concern

Don't
❌ Areas Of Concern

  • Keep header labels short. When tempted to create a long header, use the groups sub-header feature or display text to show the extra words instead.

Do
✅ ...

Don't
❌ ...

Question label style

  • Capitalize questions using sentence case (capitalize only FIRST word).

Do
✅ First name

Don't
❌ First Name

✅ Why are you seeking help today?

❌ Why Are You Seeking Help Today?

  • DON'T add punctuation to the end of a question UNLESS the question is formatted as a full sentence, then include a question mark.

Do
✅ Date of birth

Don't
❌ Date of Birth?

❌ Date of Birth.

❌ Date of Birth:

✅ Why are you seeking help today?

❌ Why are you seeking help today

❌ Why are you seeking help today.

❌ Why are you seeking help today:

Show Questions on Same Line

  • Only show the next item on the same line when they are directly related conceptually. Don't show items on the same line exclusively for the purpose of condensing the length of the form.

Do
✅ First name, Last name

Don't
❌ Gender, Primary Phone Number

6. Question Types

There are a variety of data types available to use in Caredove forms, each with their own best practices when designing your questions.

Text & Number

Text and number fields are similar, except that number fields only accept numbers and the width of the number field is always narrow.

  • Generally, it is ok to use a text field even if it will accept a number as the input.

  • Use a number field instead of a text field when

    • The field is being used in a numeric calculation.

    • The form field has an integration to an application that wants the data type specified as a number.

  • For advanced formatting of a number field (e.g., auto-inserting space between numbers in a health card number), use a text field with an input mask.

Yes/No

Yes/No restricts the values to TRUE | FALSE (and in some cases, "empty").

  • Display options are: Yes/No, Toggle, Checkbox.

  • It is often better to use other fields types than a yes/no

    • If the field might be updated later to include a third option (such as "do not know" or "other"), then consider using a select field instead, and set the options to behave like a yes/no field (e.g., "Yes | No | Unsure")

    • If there are a series of yes/no questions that are thematically similar, put them all under a multi-select checkbox field instead

Do
What do you need help with?

🔲 Mental health

🔲 Transportation

🔲 Food

Don't
🔲 Do you need help with mental health?

🔲 Do you need help with transportation?

🔲 Do you need help with food?

  • If you want to allow the user to not answer the question, then use the "yes | no" format, because the unselected format will save as "empty". Using the "checkbox" or "toggle" must start with a TRUE or FALSE default value.

Date/Time

Always use the date/time field when asking dates, as it provides a visual date picker and can be used in calculations.

  • Limit the time frame that can be selected (e.g., Birth dates can only be in the past, and potentially today, if the form is for newborns).

Select

Use select fields when you need to restrict answers to a pre-defined set, want the answers "coded" for algorithmic analysis, or need to use the answer options to clarify the meaning of the question.

  • Display formats: Radio Buttons, Checkboxes, Dropdown menu (single select), Dropdown menu (multi select).

  • Choosing drop-downs vs. radios/checkboxes:

    • Use radios/checkboxes when there are fewer options (less than 5-7), or the option text is longer than a few words

    • Use drop-downs when there are many options (greater than 5-7) and the option text is short.

  • Choosing horizontal vs. vertical orientation for radios/checkboxes:

    • Vertical orientation is generally preferred over horizontal layout, but it is an artistic choice dependent on the "feel" of the form

    • Only use horizontal layout for simple options with few words that fit on one line (e.g., 🔘 Yes 🔘 No 🔘 Unsure)

    • Avoid switching between horizontal and vertical within a page section

  • "Other - Specify" options:

    • When a select field has an associated "other" (or "comment", "details", etc...) option, add it as an additional question that is hidden unless a relevant option is selected.

    • In the specify field, say what is being specified (e.g., "specify other language"), not just "specify"

    • Don't write "specify" the the label of the option (e.g., 🔲 "Other", not 🔲 "Other (specify)")

✅ Do
Preferred language

🔲 English

🔲 French

✓ Other

Specify other language: _________

Don't

Preferred language

🔲 English

🔲 French

🔲 Other (specify)

Specify: _________

Agreement

An agreement field displays a Yes/No or Checkbox field, with additional standardized special formatting to visually designate its importance.

Use an agreement field in the following circumstances

  • Custom consent questions in addition to the standard consent question (learn more about building consent questions).

  • Terms & conditions in addition to the standard terms and conditions.

  • Acknowledgment statements.

Calculation

  • When using hidden calculations, put them in a hidden group at the bottom of the same page where their output is first being used.

7. Common Questions

There are many common questions which are asked across many forms (e.g., name, address, etc...). Over time, Caredove will add more of these questions to a "Library" section, which will have the best practices built into each question. When not available as a library question, use the following best practices for these questions.

Question Library

Caredove has a standardized library of common questions. Each question has standardized structure and wording that has been carefully designed with consideration for clarity, simplicity, layout, interoperability and the breadth of use cases that it could be applied to. Questions often have multiple items in them (e.g., first name, last name), may have conditional logic, and will have any interoperability settings pre-configured.

If you have a question that is in the question library, you should use the library version of it instead of building a new custom version. This helps keep a common experience across forms, and ensures that best practices are applied.

Try out the Caredove question library on the following, which contains finalized and draft versions of standardized questions.

There is a degree of customization that is available to library questions:

  • Library questions are not required by default. You can make all of parts of a library question required.

  • You can SUBTRACT items from a library (e.g., subtract postal/zip code from address), BUT, you cannot add it back in later. You will need to re-add it from the library.

Consent Questions

About Consent at Caredove

Principle 3 of the Caredove’s privacy policy (found here) is as follows:

"The “principle of consent” means that the knowledge and consent of the individual are required for the collection, use or disclosure of PI or PHI, except when inappropriate. Gathering consent is the obligation of the person collecting the PHI and using Caredove to make the referral.

Caredove assists referrers to record the acquisition of consent: In the case of revoked consent, referrers and can revoke the referral at any time before the referral has been received. Also, receiving organizations are able to create and revoke user access to referral PHI and log access to received and sent referrals. Caredove does not directly acquire consent from patients for the collection of PHI.

On any occasion where a patient self-refers through Caredove, the patient will be provided with all identifying purposes and be asked to provide consent in a click-through agreement."

Caredove Standard General Consent

Every Caredove referral form needs to have a general consent in which we share the name of the organization to which the client is giving consent to share their info. This consent statement is presented as a click-through agreement at the end of the form.

The standard Caredove consent statement is as follows:

"By submitting this form, I agree to send this personal information to **{{action-organization}}**, for the purpose of requesting **{{action-service}}**. I have the authorization to send the information about any other people that may be included on this form (e.g., a client, parent, child).

I agree to these Terms and Conditions and Privacy Policy, which outline how this personal information is kept safe."

If the request is also CC'd to an additional destination, that needs to also be included in the consent.

This consent statement is sufficient for most referral forms, without the need for an additional custom consent.

Custom Consent

An organization may have additional consent statements to include on the form. Custom consent statements are common on referrals to a central intake service or for services for infants/newborns, but uncommon on referral and contact forms.

  • Phrase the consent statement an action that can be agreed to with a yes/no answer. Often the phrase begins with "I consent to..." or "I agree that..."

  • Include the purpose of the action in the consent statement

  • Use the "Agreement" field type, with a yes/no style.

  • Limit to a maximum of 3 additional consent statements. Sometimes one consent can include multiple bullet points.

  • For referral forms to intake appointments, don't include consent to treat - which should be collected at the intake appointment rather than the referral form.

✅ Custom Statement Examples

I agree that my personal information will be sent to Government Agency ABC, for the purposes of reporting on utilization of public health resources

⃝ Yes ⃝ No


I agree that my personal information can be used in research studies where the identifying components of my identity (name, address, etc...) are removed, for the purposes of advancing scientific knowledge on community health processes.

⃝ Yes ⃝ No

Acknowledgment vs. Consent Statements

While consent statements relate specifically to granting permission to perform an action and informing of the purpose of that action, and acknowledgment statement is meant to draw the person's attention to specific information.

✅ Custom acknowledgement Statement Examples

I acknowledge that this service has a long wait list, and I may not start service in the next 12 months.
⃝ Yes ⃝ No

I acknowledge that this service may have additional costs that may be identified after the initial appointment.

⃝ Yes ⃝ No

Eligibility Questions

There are two ways to add eligibility questions. If launching the form from a referral or routing flow from a service, then the eligibility questions that are associated with the related service listing will be displayed to the user for confirmation. These are simple yes/no confirmations of eligibility stated as inclusion criteria. This should be the primary approach for building eligibility criteria

Sometimes more sophisticated eligibility questions are required (e.g., checking a calculated age vs. a date of birth, or conditionally displaying eligibility questions). In these cases additional eligibility questions may be included on the form.

See the "Form & Page Structure" section of this document for best practices on the placement and hierarchy of eligibility question.

Use the following guidelines when building eligibility criteria:

  • For agreement style (checkbox) eligibility, always make checking the box the CORRECT answer that allows to proceed with the form. For example, if the client must be over 65, have diabetes and be a non-smoker, require the form filler to CHECK all the criteria instead of leaving all of the criteria blank:

Do

✓ Over age 65

✓ Has diabetes

✓ Non-smoker

Don't
🔲 Under under age 65

✓ Has diabetes

🔲 Smoker

  • Whenever possible, express eligibility in the POSITIVE (i.e., and "inclusion criteria") rather than the NEGATIVE (i.e., "exclusion criteria")

Do
✅ Is aged 65 or older

✅ Lives in Ontario

Don't
❌ Is not under age 65

❌ Does not live outside Ontario

  • When it is necessary to use exclusion criteria, instead if inclusion criteria, start with "Does not..." or "Is not".

Do
✅ Does not have a chronic condition
✅ Is not receiving mental health services from another provider

Don't
❌ Isn't experiencing a chronic condition

  • Show the feedback message about being ineligible on a separate page. See the "Form & Page Structure" for details.

  • If there are eligibility questions that otherwise belong in the "Contact Information" or "Questions" sections, move the question in the eligibility section instead (e.g., Date of birth, postal code, etc..)

8. Conditional Display Logic

Conditional display logic allows you to show/hide questions and groups depending on the value of other fields on the form. It is very easy to over-complicate a form with sophisticated display logic, making it difficult to troubleshoot, maintain, and update.

Use the following best practices when building display logic:

  • Understand operators - particularly with multi-select questions, which have a lot of advanced sophistication. Read the Build Conditional Logic tutorial.

  • Build all of the display conditions for a question into a single question, never add the same question twice to a form configuration.

  • Multiple conditions can be included in conditional display logic. This has two configurations 1) ALL of the conditions must be true or 2) ANY of the conditions must be true. For more advanced nested conditions, first build calculation fields and then use the results in the conditional display logic.

  • Avoid "double negative" logic, where both the question and the operator are negative

Do
Display when:
✅ smoker_status = smoker

Don't
Display when:

❌ smoker_status != non-smoker

Did this answer your question?