Practical guide

Can people complete your contact form without guessing?

Check your contact form with a keyboard and a narrow screen. Use practical tests for labels, missing fields, useful errors and a verified enquiry result.

Hands sketching a website interface and flow
Illustrative stock photograph: Kelly Sikkema / Unsplash.

A short contact form can still be difficult to use. A placeholder disappears when someone types; a red outline may not explain a mistake; a submit button may leave the visitor unsure what happened. Test whether a person can finish the task with clear instructions.

Ask only what the next decision requires

List every field and the decision it supports. If the team can respond without a street address, do not make it a prerequisite for a first enquiry. Keep optional information visibly optional and explain unusual requirements before the visitor submits.

This is a usability review, not a legal assessment or a claim of accessibility compliance. Consent, privacy wording and retention need their own applicable requirements and responsible review.

Desktop computer displaying a website layout
Illustrative stock photograph, not evidence of our project: Anand Thakur / Unsplash.

Check labels and keyboard use

W3C’s forms guidance recommends associating labels with controls. A placeholder should not be the only instruction. Read each field before and after typing, and check that its purpose remains clear.

  1. Use Tab to move through the form in a sensible order.
  2. Check visible focus on links, fields and the submit control.
  3. Complete the form without a mouse.
  4. Inspect labels and instructions with appropriate assistive technology.

A visual keyboard check is useful, but it does not establish that every screen reader or input method works. Record what you actually tested.

A form people can finish: Understand each field; Use the keyboard; Recover from an error; Confirm the result
A form people can finish
Original illustrative guide: Set It Once. A placeholder is not a persistent field label.
Read the text version
  1. Understand each field. Keep visible labels and useful instructions.
  2. Use the keyboard. Check focus order and reachable controls.
  3. Recover from an error. Explain the issue and retain valid input.
  4. Confirm the result. Show a clear outcome; verify the stored record.

Make errors explain the fix

TestExpected help
Missing required fieldName the field and explain the requirement.
Invalid emailExplain the expected format near the field.
Submission failurePreserve useful input and give a recovery step.
SuccessSay what was received and what happens next.

Do not rely only on colour to signal an error. Avoid vague messages such as invalid input when a specific correction is possible. Keep the visitor’s entered information after a correctable error where the form supports it.

Verify the result beyond the screen

Use a narrow viewport and an authorised synthetic enquiry. Inspect long labels, stacked fields and any consent control. Check that the keyboard or sticky header does not block the submit step.

Then find the retained submission and its actual destination. Hypothetical example: the visitor sees thank you, but no assigned record exists because only a notification was expected. That is a handoff problem even if the form looked clear.

Keep a test log with field, action, expected outcome and actual outcome. Fix the highest-consequence failures first and repeat the affected route. The goal is a usable first contact, not a smaller form at the expense of necessary information.

Rewrite the fields around the first response

For a hypothetical web-development enquiry, name, reply address, website and a description of the problem may be enough to decide the next conversation. A postal address, exact annual revenue or compulsory file upload may add effort without improving that decision. Review each field with the person who handles submissions and ask what they actually do with it.

Make optional information visibly optional. Explain what belongs in the message with a useful prompt, such as the affected page and desired result. Avoid requiring visitors to diagnose the technical cause before they can ask for help. If an attachment is optional, the form should still complete without one.

Use specific error and success copy

“Something went wrong” leaves visitors unsure whether to repeat the action. Distinguish a field problem from a delivery problem where the implementation can do so accurately. An invalid-email message should identify the field and requested correction. A temporary submission failure should preserve useful input where supported and offer an actual recovery route.

A success message should say what was received and what happens next without inventing a response commitment. Do not say an email was delivered unless that has actually been established. If the application cannot determine whether a submission was accepted, avoid encouraging repeated clicks that may create duplicates.

Test one person completing one real task

Ask a colleague unfamiliar with the form to request the intended service using synthetic details in an approved test. Observe where they pause, misunderstand a label or cannot recover from an error. Do not explain the interface during the attempt; those explanations are evidence that the form may need clearer instructions.

Repeat with keyboard navigation and at a narrow viewport. Check focus, error visibility, preserved input and whether the final button remains reachable. Then inspect the retained record and recipient workflow. Record which input methods and assistive technologies were actually tested; a single keyboard pass is not a full accessibility audit.

Prioritise blocked completion, lost data and misleading outcomes before cosmetic refinements. Reducing the number of fields helps only if the remaining form collects enough information to continue the enquiry.

Take one practical next step

If your form needs a specific technical change, describe the failed visitor step through custom development. Scope, timing and price are agreed before work starts. An enquiry does not place an order or guarantee a result.

Sources and further reading

Quick answers

Frequently asked questions

Is a placeholder enough to label a field?

Use a persistent associated label. A placeholder can supplement instructions but disappears when the visitor enters a value.

Does removing fields always improve the form?

Remove unnecessary fields, but keep those required for the next decision. Explain why unusual information is requested.

Can this checklist certify accessibility?

No. It supports practical checks. A compliance assessment requires the relevant standard, broader testing and qualified review.

Martin Iliev, founder of Set It Once

About the author

Martin builds Set It Once to help people spend less time on repeated work. His guides explain what you can try, how to check the result and where the limits are.

More about Martin

All articles

Privacy & cookie notice

Privacy & cookies

Updated 5 October 2026. This notice covers the public Set It Once marketing website and its enquiry form.

Who is responsible?

Martin Iliev operates Set It Once and is responsible for the personal data collected through this website. For privacy questions or to exercise your rights, email miliev@setitonce.com or use the contact form. You do not need to provide a website address for a privacy request.

What we collect and why

When you send an enquiry, we receive your name, email address, optional website address and message. We use these to respond and take steps towards a possible service agreement at your request (GDPR Article 6(1)(b)). Security and abuse prevention rely on our legitimate interest in protecting the website (Article 6(1)(f)). The form temporarily uses a keyed hash of your IP address to limit repeated submissions for 60 seconds. Hosting infrastructure processes connection information such as IP addresses and requested URLs to deliver and protect the site.

There is no marketing subscription, sale of enquiry data or automated decision-making about you. Do not send passwords, API keys or sensitive client information.

Who can access the information?

Enquiries are stored in the private WordPress administration area and accessed by authorised administrators. Namecheap provides our website and email hosting and processes data to operate these services. Email addressed to miliev@setitonce.com is also forwarded to a Gmail account operated by Google so Martin can receive and handle correspondence. Their privacy notices explain their processing: Namecheap and Google. External links such as LinkedIn load only when you follow them; those websites have their own privacy notices.

International processing

Namecheap and Google may process information outside your country, including in the United States. Namecheap describes the contractual safeguards for covered services in its Data Processing Addendum. Google describes processing locations and safeguards in its Privacy Policy. Contact us if you need details about the processing of your enquiry.

How long we keep information

We retain enquiries while handling the request and necessary follow-up. We review enquiries after six months and remove closed enquiries that are no longer needed. Records required for an active service, a legal obligation or a legal claim may be retained for that purpose. This review covers WordPress records and related email copies; it is a manual review, not automatic deletion. Hosting logs and backups have separate retention arrangements with the provider. You can ask us for information about your particular record or request deletion.

Your rights

You may request access, correction, erasure, restriction, objection and portability where applicable. You may withdraw optional browser-storage consent through Privacy settings without affecting earlier lawful processing. We normally respond to rights requests within one month; legal exceptions may apply. You may complain to your local supervisory authority, including the Bulgarian Commission for Personal Data Protection.

Cookies and browser storage

Google Analytics 4 is optional and loads only after your explicit consent. It measures page visits and basic engagement, using browser/device information and an online identifier. Google processes the network address to provide the service; GA4 does not log or store individual IP addresses. We do not enable advertising features, Google Signals or automatic form tracking. Page URLs and referrers sent by this website exclude query strings and fragments; form contents are not sent. No third-party geolocation service is used. Fonts and images are hosted on this website. Necessary WordPress authentication and security cookies may be used when you sign in. These are separate from optional analytics and currency memory.

LocalStorage is browser storage rather than a cookie; the same preference controls cover it. Automatic currency suggestion uses your browser time zone locally. It is approximate and is not sent to a geolocation provider. If browser storage is unavailable, your choices apply only to the current page.

Online payment processing is not active on this page. Payment-provider information and purchase terms will be added before checkout is enabled.