A lead or contact form converts better when it asks only for what the next step really needs, says clearly what it is asking, and helps people recover when they make a mistake. No official guide names an ideal number of fields. The W3C WAI forms tutorial (Opens in a new tab) states the underlying principle, which is to ask only for the information needed to complete the transaction, and everything else here turns that principle into decisions you can test: which fields to keep, how to word labels, how to write error messages, and how to set up mobile keyboards and autofill.
It is written for marketers, designers and developers who share one form and often disagree about it. If the page around the form is also on your list, see landing page SEO and conversion balance.
Why visitors stall on a form
Forms rarely fail for one reason. A visitor who arrives, reads the offer and still leaves without submitting has usually hit a specific obstacle, and the obstacle tells you which part of the form to change. Guessing at the cause and changing everything at once makes it impossible to learn anything.
A friction table
The table groups the obstacles by what the visitor experiences. Which one dominates on your form is an empirical question that only your own data can answer.
| Friction | What the visitor thinks | Design response |
|---|---|---|
| Unneeded request | Why do they want that? | Remove the field or explain the reason beside it |
| Unclear request | What exactly goes here? | Plain label, format example, short hint |
| Unfixable error | What did I do wrong? | Message next to the field that says how to fix it |
| Missing trust | Where does this go? | State what happens next, near the submit button |
Settle purpose and scope first
The one-sentence test
Before designing, finish this sentence: "This form exists so that a visitor can ______." Every field must then help the team do that one thing. If the sentence takes a paragraph, you probably have two forms trying to be one, for example a sales request and a support question on the same page. Splitting them is often a better fix than polishing either.
Is it the form or the page?
Sometimes the form is fine and the promise before it is the problem. If the page offers a quick answer and the form asks for twelve details, the mismatch is in the page copy as much as in the form. Check that the form reads as the natural next step of what the page promised before editing individual fields. Wording of the button itself is a separate decision.
Putting the scope on the page
Service request forms work better when the scope is explicit: what the service includes, what it excludes and what information the team needs. Clear option labels and a hint on the free-text box often beat adding yet another field. For one worked approach to a service brief, read backlink service request form: put the scope in writing.
Using the visitor's own words, in both languages
Avoid internal jargon such as lead type or campaign objective on a public form. Use the visitor's words, and check that the English and Turkish versions of labels, hints and error messages say the same thing.
Choosing the fields
The W3C WAI tutorial gives no number of fields and says nothing about an optimal count, and the web.dev Learn Forms design basics lesson (Opens in a new tab) does not either. What both offer is a way of thinking: ask for what is needed, mark what is required, and make every request understandable. So the working question is not "how many fields?" but "what happens to this answer?"
Four questions per candidate field
Run each candidate field through these questions. A "no" to any of them is a reason to defer or drop the field from the first version.
- Can we reply to the request without this answer?
- Can we ask for it later, in the first reply or call?
- Can we get it another way, for example from an account or the browser?
- Who will read it, and in which step of which process?
The fourth question catches fields that nobody uses. An unused field costs the visitor effort and costs you a piece of stored personal data you have no purpose for. How long to keep it and on what basis is a privacy question to settle with your own policies.
Phone: required, optional or removed
Phone is the most argued-over field. The sources are silent on whether it should be required, so use a rule that follows your own process:
- If you will really phone people and the work is done by phone, make the field required and say why under the label.
- If you can answer by email, make the field optional and word the hint as a choice, such as "Add a number if you prefer a call."
- If nobody will call, delete the field.
Decision rule: Do not ask for what you will not use, and say why when you do. The reason belongs next to the field, not in a policy page the visitor will never open.
Required markers, order and grouping
web.dev advises marking required fields with text such as "(required)" in the label together with the required attribute, and marking the optional fields instead when most fields are required. W3C adds that instructions should say which fields are required, and that the marker belongs in the label because assistive technology reads labels. In practice, mark the minority. A five-field form with four required fields is quieter if only the one optional field carries a note. If you rely on an asterisk alone, explain its meaning above the form.
Put the easiest, most obviously relevant fields first and the more personal ones last, with a short reason beside them. This ordering is a design heuristic, not a documented rule, so confirm it against your own completion data. Keep a single column, as web.dev recommends, make the tab order match the visual order, and group related controls with fieldset and legend as W3C suggests so that screen reader users hear the group name.
A worked example: consultancy intake
Example scenario: A small consultancy has a contact form with name, email, phone, company, role, budget, timeline and message. After listing who reads each answer, the team learns that budget and timeline are only discussed on the first call. The revised form asks for name, email and message, offers an optional phone field with a one-line reason, and moves budget and timeline to the confirmation email. The team then watches two things: the share of visitors who submit, and how many of those submissions need a clarifying reply. A shorter form can change both volume and quality, in either direction, so both numbers matter.
Wording: labels, hints and instructions
Labels are the first thing a person reads in a form and the first thing assistive technology announces. The W3C tutorial asks for a label element on every control, with the for value matching the control's id exactly. Labels should describe the purpose of the control, be visible, and sit close to it.
Where labels go and how long they run
web.dev recommends short labels, such as "Email address", placed above the control so users can scan quickly and match each label to its field. W3C notes that labels above fields can reduce horizontal scrolling for people with low vision and for mobile users, while saying the best position depends on the layout. For a typical single-column lead form, labels on top are a safe default.
Why a placeholder cannot stand in for a label
web.dev is blunt on this: never use the placeholder attribute as a label, and use it only for format hints. W3C adds that assistive technologies do not treat placeholder text as labels.
| Element | Good use | Poor use |
|---|---|---|
| Label | States the purpose, always visible | Disappears on input or lives only in the placeholder |
| Placeholder | A format example such as "e.g. name@example.com" | Replacing the label |
| Hint text | Persistent short line under the field | Information hidden in a hover tooltip |
| Required marker | In the label and in the required attribute | Color alone, or an unexplained asterisk |
Format hints and form-wide instructions
The W3C form instructions page (Opens in a new tab) recommends stating the expected format in the label itself, for instance "Expiration date (MM/YYYY)", because that works across browsers and assistive technology. When layout demands it, link a hint to the field with aria-describedby. web.dev likewise suggests writing rules in visible text near the field and linking them with aria-describedby. Be generous in what you accept. W3C advises tolerating different separators and digit groupings in phone numbers.
Form-wide instructions go before the form element, because screen readers read them before switching to forms mode. Cover which fields are required, accepted formats and any time limit. For a lead form, one more sentence is worth adding: what happens after submission and roughly when the visitor will hear back, if you can keep that promise.
A quick label audit
- Are labels short nouns rather than questions or internal jargon?
- Is every label visible all the time?
- Are placeholders used only for example formats?
- Are related fields grouped with fieldset and legend?
- Does the tab order match the reading order?
- Do the English and Turkish versions carry equivalent labels and hints?
Mobile entry: keyboards, autofill and touch
Mobile visitors fill in forms with small touch targets, an on-screen keyboard and divided attention. A few attributes remove much of that effort.
Input types that match the data
web.dev notes that type="email" or type="tel" brings up a keyboard suited to the data on touch devices, and recommends choosing the right element for each kind of input, such as textarea for multiple lines and a checkbox for accepting terms. Use type="tel" for phone fields rather than type="number", which suits quantities, not identifiers.
Autocomplete values worth setting
The web.dev autofill lesson (Opens in a new tab) explains that browsers store submitted values by the field's name and that a correct autocomplete value helps them fill fields. Examples include email, new-password, current-password and one-time-code, plus shipping and billing prefixes for addresses. The lesson also points out that autofill saves time and has accessibility benefits, because people do not have to remember or retype details. It suggests autocomplete="off" for one-time values.
Targets and text size
web.dev recommends touch targets of at least 48 pixels with spacing between controls, and a font size of at least 1rem on form controls to avoid page zoom on iOS Safari when a control gains focus. Treat those numbers as guidance to test on your own devices and design system.
Fields that appear on demand
Showing a field only when needed, such as a text box after choosing "Other", keeps a form short. Make sure that the new field is announced to screen reader users and that tab order stays logical. If you are unsure, show the field permanently.
A checklist for small screens
- One column, readable without horizontal scrolling.
- Right type on phone, email and URL fields.
- Right autocomplete value on every personal field.
- Submit button reachable while the keyboard is open.
- Targets large enough, with space between them.
- Error text not hidden under the keyboard.
Error messages people can act on
A visitor who reaches the submit button has already decided to act. This is the moment where a vague or silent failure costs the most.
Anatomy of a useful message
The W3C user notifications page (Opens in a new tab) asks that errors explain how to correct the mistake, and its date example states the expected format. A reliable pattern is to name the problem, state the requirement and give an example. "Invalid input" tells the visitor nothing, while "The email address is missing an @ sign. Use the form name@example.com" tells them everything.
| Weak message | Stronger message |
|---|---|
| Error | The phone number contains letters. Use digits and spaces only. |
| Invalid email | The email address has no @ sign. Example: name@example.com |
| Required | The message box is empty. Tell us what you need in a sentence or two. |
Where errors appear and where focus goes
web.dev says to show each error next to the control it refers to and, on submission, to move the user to the first invalid control. W3C agrees on moving focus to the first field with an error. When a failed submission reloads the page, it recommends a summary above the form under a distinctive heading, where each entry names the field, describes the problem, explains the fix and links to the field. A simple indication that uses the word "error" and the number of errors helps, and the page title can carry the same message.
Announcing errors to assistive technology
W3C suggests associating inline messages with their fields through aria-describedby, putting role="alert" on the error summary container so dynamically inserted errors are announced, and using aria-live="polite" for feedback while typing so messages are read once typing pauses. It also warns that live checking is a poor fit for fields like dates, where early feedback would almost always be an error, and recommends checking when focus leaves the field. web.dev likewise suggests validating on blur for real-time feedback.
Color is never the whole message
Pair color with text or an icon. web.dev says never to rely on color alone and to add text or an icon, and the W3C examples combine color with messages and visual cues such as icons. A red border without a message is not an error message.
Preventing errors, then validating twice
The cheapest error is the one that never appears. Choose input types that match the data, accept formats flexibly and clean up what you can on the server. Stripping spaces and dashes from a phone number is friendlier than rejecting it. Constraint validation helps here: the web.dev validation lesson (Opens in a new tab) covers required, type="email", pattern, minlength and maxlength, and shows setCustomValidity() on the invalid event for a custom message. If you set one, clear it once the value is valid. Use :user-invalid rather than :invalid for styling after interaction, since :invalid matches before the user has touched anything.
Both W3C and web.dev are explicit that client-side validation is a convenience and not a security measure. Validate again on the server before storing or forwarding anything.
Confirming a successful send
Tell the visitor clearly that the form went through. W3C gives the example of a heading that thanks the user for their submission. A good confirmation says the request arrived, which channel the answer will come through and when, but only if the team can honor the timeframe. The confirmation page is also your measurement point.
Running an error test
Submit the empty form, enter a bad email address, paste a very long message, complete the form with the keyboard alone and run through it once with a screen reader. For each error ask: does this message say what went wrong, where, and how to fix it?
One long page or several steps?
W3C recommends splitting long forms into logical steps and showing progress. That does not mean every form should be multi-step. Breaking a five-field contact form into steps just adds clicks.
| Situation | Suggested structure |
|---|---|
| A handful of fields, one purpose | Single page, single column |
| Many fields across different topics | Logical steps with a progress indicator |
| Some fields apply only after a certain choice | Conditional fields or a later step |
| A long application | Allow saving and continuing later |
When you do use steps, show where the visitor is, preserve answers when they go back and summarize entries on the last step. For irreversible actions such as payments, add a confirmation or review step. An ordinary inquiry is reversible in practice, so it seldom needs a separate confirmation step. If a form has a time limit, say so in the instructions before the form. A session that silently expires and discards a half-finished form is an error the visitor cannot fix.
Privacy, consent and honest promises
Technical correctness is half the job. Visitors also want to know what happens to their details.
Beside the submit button
Add one short line about how the details will be used and link to your privacy notice. If you want marketing consent, keep it separate from the request itself and never present it as a condition of getting an answer. The principles for permission and privacy in email are covered in email consent and privacy-law compliant newsletter subscriptions. Legal obligations differ by country, so have your own advisor review your consent wording.
Promises you can keep
If you state a response time, make it one you can keep. A broken promise after the form is submitted damages trust in a way no field tweak repairs.
Proving the change worked
Define success before changing anything. According to Analytics Help (Opens in a new tab), a key event measures an action that is particularly important to your business, and any event you collect can become one. Reports such as Landing pages then show how many times key events were triggered per dimension. If your interface language differs, menu names may look different.
Events worth tracking
- Form view, meaning the form appeared on screen.
- First interaction with a field.
- Successful submission, marked as the key event.
- Validation error type and field name, never the typed value.
Never send what people typed into analytics events. The field name and error type are enough to find the problem field. For conversions that do not use a form at all, see GA4 click-to-call and chat key events.
One change per round
If ten changes go live together, you cannot tell which one mattered. A sensible order is:
- Remove or defer unnecessary fields.
- Fix labels and placeholder misuse.
- Rewrite error messages and fix focus behavior.
- Add input types and autocomplete values.
- Try a stepped layout only if the form is genuinely long.
Reading the numbers with quality in mind
A higher submission rate is only good news if the submissions are still useful. Compare the number of qualified requests, not just all requests, over a period long enough to smooth out weekly patterns, and note outside factors like campaigns. Agree on what "qualified" means with the sales or support team before the test, otherwise each side will read the numbers its own way. These are usability experiments, not search ranking tactics, and nothing here promises a particular lift.
Final check before launch
Use this as a final review. Each item should have evidence behind it: a screenshot, a test note or a tracking plan.
Copy and design
- The purpose is written in one sentence.
- Every field has a named reader and a reason.
- Contested fields such as phone have a decision rule.
- Required fields are marked in the label and with required.
- Labels are visible, short and above the fields.
- Placeholders show only example formats.
- Instructions are persistent text, not hover-only.
Errors and access
- Messages name the problem, the requirement and an example.
- Messages sit next to the field and are linked with aria-describedby.
- Focus moves to the first invalid field after a failed submit.
- Errors are not shown by color alone.
- The server validates everything again.
- The form can be completed with the keyboard alone.
Mobile and measurement
- Input types and autocomplete values are correct.
- Touch targets and font size are adequate.
- Successful submission is a key event.
- Validation errors are tracked without personal data.
- The confirmation message and response promise are realistic.
After launch
After launch, collect two weeks of data before judging, and look first at the field with the most validation errors, because that field usually has the weakest label, hint or message. Guidance from W3C and web.dev can change, so check the current pages before you apply the details here.
Frequently Asked Questions
What is the best number of fields for a lead form?
The sources give no such number. The W3C WAI tutorial states the principle of asking only for the information needed to complete the transaction. For each field, ask whether you can answer the request without it, then compare versions using your own data.
Should the phone number field be required?
Make it required only if you will actually call and the work happens by phone, and say why under the label. If you can reply by email, make it optional. If nobody will call, remove it.
Can a placeholder replace a label?
No. web.dev says never to use the placeholder attribute as a label, and W3C notes that screen readers do not treat placeholders as labels. Use placeholders only for example formats.
What should a good error message include?
It should name the problem, state the requirement and, where possible, give an example. It should appear next to the field, be linked to it programmatically and not rely on color alone.
Are multi-step forms always better?
No. W3C recommends splitting long forms into logical steps with visible progress, but splitting a short contact form only adds clicks. Decide by form length and by your own measurements.
How do I track form conversions in Google Analytics?
Collect the successful submission as an event and mark it as a key event. Analytics Help says any event you collect can become a key event. Do not put what people typed into event parameters.
Is collecting personal data in a form a legal matter?
Yes, personal data and consent come with legal requirements that vary by country. Have your own legal advisor review your privacy and consent wording before launch.
Conclusion
A lead form converts when it asks for only what the next step needs, explains each request in plain visible words and helps people fix mistakes where they happen. No official source supplies a perfect field count, so change one thing at a time, track successful submissions as a key event and judge each change by the quality of requests as well as their number. Mobile input types and autocomplete values reduce effort, and accessible error handling helps everyone. Have your own legal advisor review consent and privacy wording for any form that collects personal data.
If you also want to reach people who will fill in your form, you can browse advertising spaces on Akua Adforce; scope and terms are listed on the product page.
Post a comment
Please log in to leave a comment. Login