Files
aia-website/www/reports/phase-9-form-a-jotform-runtime-verification-2026-10-25.md

76 lines
7.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P9-03 Form A — Jotform field-key and multilingual runtime verification
**Recorded:** 2026-10-25 · **Scope:** Form A only · **Evidence:** owner-reported Builder screenshots and manual browser checks, with form identity corroborated by the connected Jotform form metadata.
**Status:** partial configuration/runtime verification; **not approved for production embedding, submissions, or analytics**.
This report adds implementation evidence to [P9-03 integration plan](phase-9-jotform-implementation-plan-2026-10-18.md) and [contract v1.2](phase-9-jotform-integration-contract-2026-10-18.md). It does not change the approved three-form architecture, close any JF/OA gate, or amend historical inventory evidence. No submitted answers or PHI were inspected.
## Form identity and availability
- New blank-built form: **AIA | Website | General Enquiries**; Jotform form ID `262946078314059`.
- Builder: `https://hipaa.jotform.com/build/262946078314059`.
- Hosted form: `https://form.jotform.com/262946078314059`.
- Form was **enabled temporarily for browser inspection**. This is not approval to collect public leads; its availability should be restricted/disabled outside authorized testing until notification, privacy, and acceptance gates are cleared. Do not infer current status from this dated report.
- The legacy `250727122848156` form remains historical reference only. **Forms B and C have no approved form IDs or embed destinations yet.**
- The four campaign landing pages remain **permanently assigned to Form B**. Any Form A compact rendition there is a temporary, non-submitting Astro review mock, not an authorized live Form A integration.
## Critical discovery: visible label is not the URL-prefill key
Jotform's **Build → select field → Advanced → Field Details → Unique Name** value governs URL prepopulation. The visible question label `formContext` did **not** imply its underlying unique name was `formContext`. Initially the field retained its generated default unique name, so `?formContext=contact` failed to override the `landing` default and did not show the contact message.
The owner set **Unique Name** explicitly to the case-sensitive value **`formContext`**. Subsequent browser inspection confirmed the contact-specific message became visible. This property must be independently inspected for every future context field; do not derive URL keys from question labels, numbers, internal HTML IDs, or semantic TypeScript names.
| Configuration | Current Form A specification |
|---|---|
| Label | `formContext` (not visible to visitors) |
| **Unique Name** | **`formContext` (case-sensitive, owner verified)** |
| Default value | `landing` |
| Required | No |
| Visibility | Hidden from visitors |
| PHI marking | Owner reports all Form A fields PHI-protected; verify any fields subsequently added before activation |
| Approved presentation keys | `contact`, `landing` only in initial Astro placement contract |
| Optional future conditional state | `inquiry`, existing Builder rule; not approved for an actual published placement |
| Security significance | Presentation hint only, not authorization or trusted attribution |
Use only controlled non-identifying literal contexts selected by Astro. Do **not** forward arbitrary page query parameters, UTM values, visitor details, clinical data, or raw referrers into Jotform. Values are client-modifiable; never authorize sensitive behavior based on them.
## Owner-verified browser behavior
| Check | Result reported on 2026-10-25 |
|---|---|
| Hosted `?formContext=landing` | Compact fields displayed; no message text area |
| Hosted `?formContext=contact` | Contact message **How Can We Help?** and its privacy sublabel displayed; enquiry category absent |
| Preferred Contact Method | Phone and Email radio choices present after correcting an unintentionally enabled *Hide Field* toggle |
| Preferred Contact Method = Email | Email Address becomes required; selecting Phone leaves Email Address optional; phone remains required |
| Español | Spanish language added to Form A; owner reports language presentation verified |
These are owner-reported interactive checks, **not verified accepted submissions**, delivered email tests, or comprehensive translation/accessibility certification. In particular, the complete validation-message/confirmation translations and iframe-specific locale behavior still require acceptance testing.
The **How Can We Help?** label was shortened to that exact question, while its field sublabel now reads: “Please do not include medical details, diagnoses, insurance member identifiers, or other sensitive information.” The sublabel travels with the conditionally displayed message field. The condition is **SHOW** the message when `formContext = contact` **OR** the optional enquiry-category selection is `General Question`. Enquiry-category visibility is restricted to the unapproved `inquiry` context. Keep both independently verified during future condition edits.
## Honeypot, style and nonproduction notes
- Separate field `websiteCheck` was created for a basic, hidden, optional, empty honeypot. Builder conditions visibly show **IF websiteCheck IS FILLED → DISABLE Submit**. This is not proof of server-side spam rejection, nor a replacement for vendor anti-abuse protections. Confirm the field's precise unique name, hidden status and PHI classification before live acceptance.
- The owner installed form-specific Jotform Custom CSS and visually confirmed cream-colored inputs and AIA orange Submit button. Exact live selectors and style equivalence to Astro still need comparison; CSS cannot style a cross-origin iframe from Astro's parent document.
- A locally generated `www/integrations/jotform/README.md` and `aia-form-a.css` were **not present on the pushed `faithful-astro-migration` branch at the time this report was authored**. Do not recreate or overwrite those Codex-owned uncommitted files through this PR. When they are committed, reconcile this verified `formContext` unique-name requirement and the actual installed CSS with that README.
## Future Forms B and C — explicit prefill contract required
For any page/placement/service-context field added to Forms B or C, record and manually verify **all** of the following before authorizing live embedding:
1. The exact Jotform form ID and Builder field label.
2. The exact, **case-sensitive** `Advanced → Field Details → Unique Name` value (do not guess).
3. Allowed fixed, non-identifying URL-prefill values and the value for missing/invalid context.
4. Required/hidden/default/PHI behavior and effects of **Clear Hidden Field Values**.
5. Show/hide/require conditions, their precedence, and no accidental hiding of required contact fields.
6. Browser proof for each intended context and EN/ES locale, both direct hosted and iframe.
7. Compatibility with honeypot and Submit-button behavior; no untrusted UTM/source forwarding.
The values for B and C are **TBD**, not automatically `formContext`. The URL parameter for Form A is verified; applying that convention to another form requires its own Builder unique-name inspection.
## Still pending
JF-01–JF-09 and owner-approval gates remain open until their **full scopes** are verified, including the actual notification recipients/content/attachments/reply-to, bilingual autoresponders and confirmations, third-party integrations/webhooks, security and retention settings, accepted synthetic submissions, honeypot behavior, iframe height/focus/mobile behavior, and clinical/privacy/release approval.
**No real PHI, live production embed, production tracking, or Jotform submission is authorized by this documentation update.**