The commissioning decision
A designer moves the send button into a separate visual panel. It still looks aligned with the enquiry fields, but its form owner is missing or points to a newsletter form. Review ownership separately from layout: visual proximity cannot establish which values a button will submit.
Source and claim boundary
The form attribute associates supported controls with a form identified within the same document, even outside its descendants. MDN · Checked 16 October 2026.
Filled synthetic acceptance cases
Synthetic teaching data, not client records. Review the inputs and expected outcomes before running the isolated browser exercise. On narrow screens, scroll the table.
| Input | Check | Expected |
|---|---|---|
| External button form=fixture-brief | button.form.id | fixture-brief |
| External field form=fixture-brief | FormData(fixture-brief) | Includes that field |
| External button without owner | button.form | null |
How to verify beyond appearance
- List the actual enquiry form ID, external controls and competing forms.
- Inspect form ownership and FormData in the isolated fixture.
- Test the real non-production send path with distinct dummy values in each form.
Interpret the result
A matching form attribute is a structural check, not evidence of delivery. Keep a record showing the intended form, the button owner and the exact test payload. If a CMS repeats an ID, fix the proposed new component before launch rather than guessing which form the browser chooses. Existing pages are not altered by this exercise.
What this does not prove
Only same-document ownership is covered. Iframes, shadow DOM frameworks and endpoint routing require their own integration tests.
Runnable fixture and handover record
Open the browser acceptance fixture · Read the test source。The fixture creates temporary elements with synthetic values inside the browser. It reads no account, uploads no file, and sends no email or form. Record the browser version, check name, observed value and pass state. Keep real integration evidence separate: a local pass is not a live delivery result.