{"abstract":"Unchecked choices submit values as though selected.","category":"Form submission","checks":9,"contract":"Submit enabled named controls, checked choices and only the actual submitter; emit one ordered pair per selected multiple option without value deduplication.","contract_signature":"controls, submitter","evaluation_group":"xi-form-serialize","failed_approach":"Excluding every choice also drops checked values.","family":"xi-form-serialize-unchecked","id":"FA-8491","implementations":{"attempt":{"sha256":"67c1a22ad7a6f4e277c085436ec35d1ee58bc9c3b4a916a68a278c225bb9b52f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(controls, submitter):\n    pairs = []\n    for c in controls:\n        if c['disabled']: continue\n        if not c['name']: continue\n        if c['type'] in ('checkbox', 'radio'): continue\n        if c['type'] == 'submit' and c['id'] != submitter: continue\n        values = c['value'] if c['type'] == 'multiple' else [c['value']]\n        pairs.extend((c['name'], value) for value in values)\n    return pairs\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('disabled', solve([dict(disabled=True,name='a',type='text',checked=False,id='a',value='x')], None), [])\ncheck('unnamed', solve([dict(disabled=False,name='',type='text',checked=False,id='a',value='x')], None), [])\ncheck('unchecked', solve([dict(disabled=False,name='a',type='checkbox',checked=False,id='a',value='x')], None), [])\ncheck('checked', solve([dict(disabled=False,name='a',type='checkbox',checked=True,id='a',value='x')], None), [('a', 'x')])\ncheck('other submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='other',value='x')], 'actual'), [])\ncheck('actual submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='actual',value='x')], 'actual'), [('a', 'x')])\ncheck('multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])\ncheck('parameterized submission value', solve([dict(disabled=False,name='a',type='text',checked=False,id='a',value=N)],None), [('a',N)])\nfor repetition in range(N):\n    check('repeat multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"413b2c604231e158c777f466ac0491bd2ec0eaa2bf332431682f91028f8eb8a2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(controls, submitter):\n    pairs = []\n    for c in controls:\n        if c['disabled']: continue\n        if not c['name']: continue\n        if False: continue\n        if c['type'] == 'submit' and c['id'] != submitter: continue\n        values = c['value'] if c['type'] == 'multiple' else [c['value']]\n        pairs.extend((c['name'], value) for value in values)\n    return pairs\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('disabled', solve([dict(disabled=True,name='a',type='text',checked=False,id='a',value='x')], None), [])\ncheck('unnamed', solve([dict(disabled=False,name='',type='text',checked=False,id='a',value='x')], None), [])\ncheck('unchecked', solve([dict(disabled=False,name='a',type='checkbox',checked=False,id='a',value='x')], None), [])\ncheck('checked', solve([dict(disabled=False,name='a',type='checkbox',checked=True,id='a',value='x')], None), [('a', 'x')])\ncheck('other submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='other',value='x')], 'actual'), [])\ncheck('actual submit', solve([dict(disabled=False,name='a',type='submit',checked=False,id='actual',value='x')], 'actual'), [('a', 'x')])\ncheck('multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])\ncheck('parameterized submission value', solve([dict(disabled=False,name='a',type='text',checked=False,id='a',value=N)],None), [('a',N)])\nfor repetition in range(N):\n    check('repeat multiple', solve([dict(disabled=False,name='a',type='multiple',checked=False,id='a',value=['x','x','y'])], None), [('a', 'x'), ('a', 'x'), ('a', 'y')])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":" This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"xi-form-serialize-unchecked","generated_at":"2026-09-29T14:38:21.983892+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic model of successful form control collection; this isolates one interface invariant without requiring a browser.","root_cause":"The unchecked operation uses `if False: continue` where the contract requires `if c['type'] in ('checkbox', 'radio') and not c['checked']: continue`.","sha256":"23a98f54d743161e65addfcc324db5ec0b961e6508c696c88f3574f387fda482","title":"Successful form control collection: Unchecked choices submit values as though selected · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.416,"exit_code":1,"observations":[{"actual":[],"check":"disabled","expected":[],"passed":true},{"actual":[],"check":"unnamed","expected":[],"passed":true},{"actual":[],"check":"unchecked","expected":[],"passed":true},{"actual":[],"check":"checked","expected":[["a","x"]],"passed":false},{"actual":[],"check":"other submit","expected":[],"passed":true},{"actual":[["a","x"]],"check":"actual submit","expected":[["a","x"]],"passed":true},{"actual":[["a","x"],["a","x"],["a","y"]],"check":"multiple","expected":[["a","x"],["a","x"],["a","y"]],"passed":true},{"actual":[["a",1]],"check":"parameterized submission value","expected":[["a",1]],"passed":true},{"actual":[["a","x"],["a","x"],["a","y"]],"check":"repeat multiple","expected":[["a","x"],["a","x"],["a","y"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"disabled\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unnamed\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unchecked\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"checked\", \"actual\": [], \"expected\": [[\"a\", \"x\"]], \"passed\": false}, {\"check\": \"other submit\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"actual submit\", \"actual\": [[\"a\", \"x\"]], \"expected\": [[\"a\", \"x\"]], \"passed\": true}, {\"check\": \"multiple\", \"actual\": [[\"a\", \"x\"], [\"a\", \"x\"], [\"a\", \"y\"]], \"expected\": [[\"a\", \"x\"], [\"a\", \"x\"], [\"a\", \"y\"]], \"passed\": true}, {\"check\": \"parameterized submission value\", \"actual\": [[\"a\", 1]], \"expected\": [[\"a\", 1]], \"passed\": true}, {\"check\": \"repeat multiple\", \"actual\": [[\"a\", \"x\"], [\"a\", \"x\"], [\"a\", \"y\"]], \"expected\": [[\"a\", \"x\"], [\"a\", \"x\"], [\"a\", \"y\"]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.416,"exit_code":1,"observations":[{"actual":[],"check":"disabled","expected":[],"passed":true},{"actual":[],"check":"unnamed","expected":[],"passed":true},{"actual":[["a","x"]],"check":"unchecked","expected":[],"passed":false},{"actual":[["a","x"]],"check":"checked","expected":[["a","x"]],"passed":true},{"actual":[],"check":"other submit","expected":[],"passed":true},{"actual":[["a","x"]],"check":"actual submit","expected":[["a","x"]],"passed":true},{"actual":[["a","x"],["a","x"],["a","y"]],"check":"multiple","expected":[["a","x"],["a","x"],["a","y"]],"passed":true},{"actual":[["a",1]],"check":"parameterized submission value","expected":[["a",1]],"passed":true},{"actual":[["a","x"],["a","x"],["a","y"]],"check":"repeat multiple","expected":[["a","x"],["a","x"],["a","y"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"disabled\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unnamed\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unchecked\", \"actual\": [[\"a\", \"x\"]], \"expected\": [], \"passed\": false}, {\"check\": \"checked\", \"actual\": [[\"a\", \"x\"]], \"expected\": [[\"a\", \"x\"]], \"passed\": true}, {\"check\": \"other submit\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"actual submit\", \"actual\": [[\"a\", \"x\"]], \"expected\": [[\"a\", \"x\"]], \"passed\": true}, {\"check\": \"multiple\", \"actual\": [[\"a\", \"x\"], [\"a\", \"x\"], [\"a\", \"y\"]], \"expected\": [[\"a\", \"x\"], [\"a\", \"x\"], [\"a\", \"y\"]], \"passed\": true}, {\"check\": \"parameterized submission value\", \"actual\": [[\"a\", 1]], \"expected\": [[\"a\", 1]], \"passed\": true}, {\"check\": \"repeat multiple\", \"actual\": [[\"a\", \"x\"], [\"a\", \"x\"], [\"a\", \"y\"]], \"expected\": [[\"a\", \"x\"], [\"a\", \"x\"], [\"a\", \"y\"]], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}