What breaks
Contact form 7 required field not working: tags
The form sends with a field left empty, even though you marked it required. Mimiq sends a simulated visitor who skips that field and shows whether the form stopped the send.
Why is my Contact Form 7 required field not being enforced?
Contact Form 7 enforces a required field only when its tag carries a star right after the type, as in [text* your-name]. A tag without the star is optional, even when the label beside it says required, and a checkbox or radio group needs its own star. A required field the visitor cannot see can block the send and leave them with a message about a field they cannot find. Submit the form with that field empty to check: a message beside the field means the tag works, and a sent form means the tag is the cause.
What this looks like in a report
“The phone field says required, but I do not want a tutor calling me. I left it blank and pressed Send. The form sent without a complaint, so I assumed my booking went through.”
The fix. Change the phone tag to a required tel field, [tel* phone], so the form refuses a blank number with the required message beside it. Submit the form empty in a private window afterwards to confirm the message appears before anything is sent.
An illustration. Run a test to see your own.See a real sample report
The form sends, the mail arrives, and the field you marked required is blank
The tag is the whole rule. Contact Form 7 reads the tag, not the label. A label that says Phone (required) above a text field does nothing if the tag is written without the star. The owner who tests by typing into every field never sees the gap, because the field is always filled. A stranger who skips it sends an empty value, and the mail arrives with a blank line where the phone number should be. The owner then blames the visitor, when the tag was the fault.
- Open the form editor and read each tag. A required text box has a star right after its type, such as text*.
- Check every checkbox and radio group, since each group needs its own star to be enforced.
- Submit the form empty in a private window. A required message beside the field proves the tag works.
- Look for a required field inside a closed panel, tab or step the visitor cannot see.
- Compare each label with its tag. A label that says required is only text, and the tag decides.
The tag decides, not the label
A form built in Contact Form 7 is a list of tags in the editor. Each tag names a field type, a required mark and a field name, and the required mark is the only thing the plugin reads to enforce the rule. A required text box is written with the star after the type, and a tag without the star is optional. A label, a heading or an asterisk drawn by the theme changes nothing for the plugin.
Checkboxes and radio groups need their own star too. A group of consent boxes can look required on the page while its tag reads as optional, and then a blank group sends with no message. Look at the saved mail to see which field arrived empty, then open the tag it came from. The saved mail is the fastest way to find the tag that let it through.
A hidden required field blocks the send and gives no clue
A required field inside a collapsed panel, a tab or a step the visitor has not opened can fail the check while staying out of sight. The browser then tries to show its message on that field, which the visitor cannot see, so the page seems to do nothing. The fix is to move the field into view or make it optional, not to hope the visitor opens the panel.
A copied form can carry the wrong star. A form duplicated from another page keeps its tags, and an owner who edits the labels in the page builder never opens the tags. A new field added in a hurry can also come in without its star. Each of these passes a review of the page, because the label still says required.
A simulated visitor leaves one field empty on purpose
Give the visitor the booking page and a task with its reason for skipping the phone field, such as not wanting a tutor to call. It fills in the name and email, leaves the phone field empty, presses Send and reports the message beside each field, or the lack of one. The report also shows any request the page sent, with a screenshot and any script error on the same step.
The run reports what the page did with the empty field, not why the tag is written that way. It does not read the form editor, so it cannot tell you which tag is at fault. Open the tag yourself after any run that sent the form blank, and fix the tag rather than the label. A label change alone leaves the send unchanged.
What you get with Mimiq
- 01
Run it by hand, or on every pull request
Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.
- 02
Bugs and usability problems in one report
The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.
- 03
Visitors that behave like your audience
Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.
- 04
A prompt to fix each problem
Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.
- 05
Follow every visitor
See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.
The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.
A copied form or a new field can drop the star again
A duplicated form, a template update or a new field added in a hurry can bring back an optional tag you already fixed. Rerun the visitor who skips the field after each change, and check the saved mail for an empty value. Owners behind a site password, or testing each preview deploy, repeat the check before they publish.
Starter
Try it on one launch
About 4 tests of 5 visitors
- Visitors on your landing page, signup and checkout
- Where they left and why, with a fix to copy for each problem
- Run it in the app or on every pull request
- Ask any visitor a question, included
- Test accounts and protected previews
Builder
Test every build
About 20 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Pro
Test every release, as a team
About 60 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Scale
Test at scale, every day
About 240 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Priority support
- Cancel anytime
Questions
How do I know a tag is required?
Open the form in the editor and look for the star right after the type, such as [text* your-name]. Then submit the form empty in a private window. A message beside the field, and no sent notice, confirms the tag is enforced.
Why does the mail show a blank field when the form is required?
The mail prints every tag, including empty ones, so a blank value shows as an empty line. That usually means the tag is optional, or the field was hidden when the visitor sent it. Open the form editor and the mail template together, and find the tag that matches the empty line.
Will a simulated visitor catch every required field?
No. It catches the fields its visitor leaves empty, and the ones it is told to skip. It does not walk every field on every page, and it does not predict how many real visitors skip a field. Check each required tag in the editor, then run a visitor for each field you changed.
Should every field be required?
That is a product choice, and a test cannot settle it. A required field a visitor does not need can make them leave, while a blank required field makes the mail useless. Decide field by field, then check that each choice behaves as written in the form.
Keep reading
Send visitors and see what breaks first.
Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.