# Form correction: acceptance card Record what should remain, what needs correction, and where the person can go next. Keep expected values separate from observations in the actual app. ## Filled teaching case This is a **fictional materials inquiry specification**. The values and states below are authored expectations, not results from a running form or customer. Nothing is sent, saved, ordered or paid. Actual focus, keyboard, phone and app behavior are **Not tested**. | Field | Declared rule | Starting value | | --- | --- | --- | | Quantity | Required whole number from 1 through 50; blank is unanswered | `51` | | Project note | Required text; preserve the exact valid value while Quantity is corrected | `Blue display stand` | | Optional reference | May be omitted; blank is not an error | Empty | Checking these answers must not alter the field values. Quantity remains `51` so the person can see and correct it. The valid note remains `Blue display stand`. The optional reference remains empty and explicitly omitted. ### F01: show the problem without erasing the answers Activate **Check answers locally** with the starting values above. Expected error summary: **Correct 1 field**. Its Quantity link and the message beside that control say **Quantity: enter a whole number from 1 to 50.** The Quantity control is identified as invalid and associated with its explanation. Project note and Optional reference have no errors. Expected focus after Check: the error-summary heading. Activating the Quantity link must move keyboard focus to the Quantity control; scrolling near it is not enough. These are declared specimen choices, not observed behavior or the only possible accessible design. | Check | Expected | Actual | | --- | --- | --- | | Quantity after rejected Check | `51` | Not tested | | Project note | `Blue display stand` | Not tested | | Optional reference | Empty; omitted | Not tested | | Error count and field | 1; Quantity only | Not tested | | Focus after Check | Error-summary heading | Not tested | | Focus after Quantity link | Quantity input | Not tested | ### F02: correct only the invalid answer Activate the Quantity link. Replace `51` with `12` and check again. Keep the other fields unchanged. Expected local result: **Ready to review. Nothing has been sent.** The invalid indication and quantity error disappear. The project note still matches its original value exactly, and the optional blank remains omitted. After the explicit Check, the local-result heading receives focus. This result establishes only that the declared local rules pass. A real app needs separate evidence of a server accepting an inquiry; this specimen has no server or submission step. ### F03: invalidate an old ready result From the expected F02 state, clear Quantity. Before another Check, remove the old ready result and show **Answers changed. Check again.** Keep focus on the control being edited. Do not turn the empty value into zero. Check again. Expected message: **Quantity: enter a quantity from 1 to 50.** Quantity is empty, the project note is still `Blue display stand`, and the optional reference is still empty. The summary names one error. Actual results are Not tested. ### F04: inspect the deliberately flawed counterexample Compare the F01 inputs with this authored bad state: Quantity is empty, Project note is empty, and Optional reference is empty after the quantity error. The note changed from `Blue display stand` to empty even though the person did not edit it. That violates this example's retention policy. This counterexample is a specification illustration; it is not evidence that an Overskill app has the defect. Ask a future implementation to preserve values rather than recreate this bad state with real data. ## Filled expected-state table | Case | Quantity | Project note | Optional reference | Local state | Actual | | --- | --- | --- | --- | --- | --- | | F01: rejected Quantity | `51` | `Blue display stand` | Empty; omitted | Needs correction | Not tested | | F02: corrected Quantity | `12` | `Blue display stand` | Empty; omitted | Ready to review; nothing sent | Not tested | | F03: cleared Quantity | Empty | `Blue display stand` | Empty; omitted | Needs correction; no old ready result | Not tested | | F04: deliberately flawed reset | Empty | Empty | Empty; omitted | Violates declared retention policy | Supplied bad state; not app-tested | The future local specimen keeps work during same-article section links and Back/Forward. Leaving or reloading resets its in-memory sample. That policy is explicit; it is not a promise that a production form should discard a user's work. Record your actual app's storage and return policy separately. ## Blank card for the actual app | Context | Your record | | --- | --- | | App, exact page and permitted sample URL | | | Actual revision or Unknown | | | Preview or published surface | | | Actor role and permitted sample data | | | Browser/device, viewport and observation date | | | Field rules and rule owner | | | Starting values, including deliberate blanks | | | Local check versus server submission boundary | | | Declared leave/reload/retention policy | | | Action | Exact expected values and message | Expected focus | Observed values, message and focus | Evidence / unknown | | --- | --- | --- | --- | --- | | Check with one invalid answer | | | Not tested | | | Activate the error-summary link | | | Not tested | | | Correct that field and check again | | | Not tested | | | Edit or clear a field after a valid result | | | Not tested | | | Check two invalid fields | | | Not tested | | | Navigate between sections and use Back/Forward | | | Not tested | | | Leave or reload under the declared policy | | | Not tested | | Record whether the exact valid note and optional value survive every correction. Include spaces and punctuation if they matter. Check text errors without relying on color, visible keyboard focus, and the correction link on a phone-sized screen. If assistive-technology behavior is tested, name the tool/version and actual announcement; otherwise leave it Not tested. A markup attribute is not an observation. ## One request for an existing app Replace the teaching values and policies with your own reviewed requirements before using this request: ```text On [actual form and revision], validate [field rules] when the person chooses [the local check or actual submission action]. Preserve every answer they have not changed, including the valid [note] and an omitted optional [reference]. Retain invalid input so it can be corrected. Identify each invalid field in text, explain the known correction, and provide a reachable correction target. Use [reviewed focus policy]. When an answer changes, clear any old ready result before it can be mistaken for the current result. A local validation pass must not say that a request was received, an order confirmed or a record saved. Test the invalid-to-corrected-to-invalid sequence, multiple errors, keyboard focus, phone reading and the declared leave/reload policy. Record exact observed values and remaining unknowns. Do not add storage, send messages or change the submission contract as part of this request. ``` Review the request in the affected existing app. Keep real customer information, credentials and tokens out of shared evidence. The card itself selects no app, sends no request, and verifies no repair.