{"abstract":"Clients lose the confirmation requirement flag.","category":"Accessibility interaction semantics","checks":7,"contract":"Input actions [id,label,enabled,exposed,requires_confirmation,kind,priority], plus permission and locale label overrides. Omit unknown kinds (only invoke, expand, collapse, increment, decrement), disabled or unexposed entries. Destructive confirmation-requiring actions need permission. First eligible occurrence of an ID wins; sort by ascending priority preserving ties. Label is override if key exists (including empty), else authored label, else kind. Return [id,label,kind,requires_confirmation]. This only describes platform actions and never activates them.","evaluation_group":"s3-accessibility-action-descriptors","failed_approach":"The local repair substitutes [ident,name,kind,confirm and kind != 'collapse'] but still mishandles the regression fixtures.","family":"s3-accessibility-action-descriptors-confirmation-metadata","id":"FA-53751","implementations":{"attempt":{"sha256":"2316ff30e31a9ba1808c473071ead086f1ad51ff40fb6130a666e9cab2a1efd7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    actions,permission,overrides = data\n    seen = set()\n    rows = []\n    for ident,label,enabled,exposed,confirm,kind,priority in actions:\n        if kind not in {'invoke','expand','collapse','increment','decrement'}: continue\n        if not enabled: continue\n        if not exposed: continue\n        if confirm and not permission: continue\n        if ident in seen: continue\n        seen.add(ident)\n        name = overrides[ident] if ident in overrides else (label if label else kind)\n        rows.append((priority,[ident,name,kind,confirm and kind != 'collapse']))\n    return [row for priority,row in sorted(rows,key=lambda item:item[0])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('ordered descriptor set', solve([[['x','Open',True,True,False,'invoke',N+2],['y','',True,True,False,'expand',N],['z','Close',True,True,True,'collapse',N+1]],True,{'x':'Localized'+str(N)}],), [['y','expand','expand',False],['z','Close','collapse',True],['x','Localized'+str(N),'invoke',False]])\ncheck('disabled entry does not reserve ID', solve([[['x','Bad',False,True,False,'invoke',0],['x','Good',True,True,False,'invoke',1]],False,{}],), [['x','Good','invoke',False]])\ncheck('hidden and unknown', solve([[['x','X',True,False,False,'invoke',0],['y','Y',True,True,False,'erase',1]],True,{}],), [])\ncheck('confirmation unavailable', solve([[['x','Delete',True,True,True,'invoke',0]],False,{}],), [])\ncheck('empty override intentional', solve([[['x','Original',True,True,False,'invoke',0]],False,{'x':''}],), [['x','','invoke',False]])\ncheck('dedupe first and stable ties', solve([[['x','First',True,True,False,'invoke',N],['y','Second',True,True,False,'expand',N],['x','Third',True,True,False,'collapse',0]],False,{}],), [['x','First','invoke',False],['y','Second','expand',False]])\ncheck('empty', solve([[],False,{}],), [])\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":"c004c7eccefb14e96a9b2d26cee630cdaa6ceba55cb569ff4f02861fccd92ec0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    actions,permission,overrides = data\n    seen = set()\n    rows = []\n    for ident,label,enabled,exposed,confirm,kind,priority in actions:\n        if kind not in {'invoke','expand','collapse','increment','decrement'}: continue\n        if not enabled: continue\n        if not exposed: continue\n        if confirm and not permission: continue\n        if ident in seen: continue\n        seen.add(ident)\n        name = overrides[ident] if ident in overrides else (label if label else kind)\n        rows.append((priority,[ident,name,kind,False]))\n    return [row for priority,row in sorted(rows,key=lambda item:item[0])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('ordered descriptor set', solve([[['x','Open',True,True,False,'invoke',N+2],['y','',True,True,False,'expand',N],['z','Close',True,True,True,'collapse',N+1]],True,{'x':'Localized'+str(N)}],), [['y','expand','expand',False],['z','Close','collapse',True],['x','Localized'+str(N),'invoke',False]])\ncheck('disabled entry does not reserve ID', solve([[['x','Bad',False,True,False,'invoke',0],['x','Good',True,True,False,'invoke',1]],False,{}],), [['x','Good','invoke',False]])\ncheck('hidden and unknown', solve([[['x','X',True,False,False,'invoke',0],['y','Y',True,True,False,'erase',1]],True,{}],), [])\ncheck('confirmation unavailable', solve([[['x','Delete',True,True,True,'invoke',0]],False,{}],), [])\ncheck('empty override intentional', solve([[['x','Original',True,True,False,'invoke',0]],False,{'x':''}],), [['x','','invoke',False]])\ncheck('dedupe first and stable ties', solve([[['x','First',True,True,False,'invoke',N],['y','Second',True,True,False,'expand',N],['x','Third',True,True,False,'collapse',0]],False,{}],), [['x','First','invoke',False],['y','Second','expand',False]])\ncheck('empty', solve([[],False,{}],), [])\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"},"fixed":{"sha256":"1b66e4e52237053feddeb5ca1f8a1d08cee4c1a84c98f140cc67b2ff2c073047","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    actions,permission,overrides = data\n    seen = set()\n    rows = []\n    for ident,label,enabled,exposed,confirm,kind,priority in actions:\n        if kind not in {'invoke','expand','collapse','increment','decrement'}: continue\n        if not enabled: continue\n        if not exposed: continue\n        if confirm and not permission: continue\n        if ident in seen: continue\n        seen.add(ident)\n        name = overrides[ident] if ident in overrides else (label if label else kind)\n        rows.append((priority,[ident,name,kind,confirm]))\n    return [row for priority,row in sorted(rows,key=lambda item:item[0])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('ordered descriptor set', solve([[['x','Open',True,True,False,'invoke',N+2],['y','',True,True,False,'expand',N],['z','Close',True,True,True,'collapse',N+1]],True,{'x':'Localized'+str(N)}],), [['y','expand','expand',False],['z','Close','collapse',True],['x','Localized'+str(N),'invoke',False]])\ncheck('disabled entry does not reserve ID', solve([[['x','Bad',False,True,False,'invoke',0],['x','Good',True,True,False,'invoke',1]],False,{}],), [['x','Good','invoke',False]])\ncheck('hidden and unknown', solve([[['x','X',True,False,False,'invoke',0],['y','Y',True,True,False,'erase',1]],True,{}],), [])\ncheck('confirmation unavailable', solve([[['x','Delete',True,True,True,'invoke',0]],False,{}],), [])\ncheck('empty override intentional', solve([[['x','Original',True,True,False,'invoke',0]],False,{'x':''}],), [['x','','invoke',False]])\ncheck('dedupe first and stable ties', solve([[['x','First',True,True,False,'invoke',N],['y','Second',True,True,False,'expand',N],['x','Third',True,True,False,'collapse',0]],False,{}],), [['x','First','invoke',False],['y','Second','expand',False]])\ncheck('empty', solve([[],False,{}],), [])\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":"Stipulated finite adapter contract, not a claim of platform accessibility or ARIA conformance. 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":"s3-accessibility-action-descriptors-confirmation-metadata","generated_at":"2026-09-29T14:45:41.926072+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline accessibility bridge model with explicit policy; useful for testing semantic API adapters independently of browser implementations.","repair":"Apply the exact contract at the confirmation metadata decision: [ident,name,kind,confirm]","root_cause":"The confirmation metadata decision in the action descriptors adapter violates its declared contract.","sha256":"ee1592a19c0c5af51d0a2dfd0f39968ad68fad275c53b34bd5673d9c2eb2eea5","title":"Clients lose the confirmation requirement flag · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.055,"exit_code":1,"observations":[{"actual":[["y","expand","expand",false],["z","Close","collapse",false],["x","Localized1","invoke",false]],"check":"ordered descriptor set","expected":[["y","expand","expand",false],["z","Close","collapse",true],["x","Localized1","invoke",false]],"passed":false},{"actual":[["x","Good","invoke",false]],"check":"disabled entry does not reserve ID","expected":[["x","Good","invoke",false]],"passed":true},{"actual":[],"check":"hidden and unknown","expected":[],"passed":true},{"actual":[],"check":"confirmation unavailable","expected":[],"passed":true},{"actual":[["x","","invoke",false]],"check":"empty override intentional","expected":[["x","","invoke",false]],"passed":true},{"actual":[["x","First","invoke",false],["y","Second","expand",false]],"check":"dedupe first and stable ties","expected":[["x","First","invoke",false],["y","Second","expand",false]],"passed":true},{"actual":[],"check":"empty","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"ordered descriptor set\", \"actual\": [[\"y\", \"expand\", \"expand\", false], [\"z\", \"Close\", \"collapse\", false], [\"x\", \"Localized1\", \"invoke\", false]], \"expected\": [[\"y\", \"expand\", \"expand\", false], [\"z\", \"Close\", \"collapse\", true], [\"x\", \"Localized1\", \"invoke\", false]], \"passed\": false}, {\"check\": \"disabled entry does not reserve ID\", \"actual\": [[\"x\", \"Good\", \"invoke\", false]], \"expected\": [[\"x\", \"Good\", \"invoke\", false]], \"passed\": true}, {\"check\": \"hidden and unknown\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"confirmation unavailable\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty override intentional\", \"actual\": [[\"x\", \"\", \"invoke\", false]], \"expected\": [[\"x\", \"\", \"invoke\", false]], \"passed\": true}, {\"check\": \"dedupe first and stable ties\", \"actual\": [[\"x\", \"First\", \"invoke\", false], [\"y\", \"Second\", \"expand\", false]], \"expected\": [[\"x\", \"First\", \"invoke\", false], [\"y\", \"Second\", \"expand\", false]], \"passed\": true}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.778,"exit_code":1,"observations":[{"actual":[["y","expand","expand",false],["z","Close","collapse",false],["x","Localized1","invoke",false]],"check":"ordered descriptor set","expected":[["y","expand","expand",false],["z","Close","collapse",true],["x","Localized1","invoke",false]],"passed":false},{"actual":[["x","Good","invoke",false]],"check":"disabled entry does not reserve ID","expected":[["x","Good","invoke",false]],"passed":true},{"actual":[],"check":"hidden and unknown","expected":[],"passed":true},{"actual":[],"check":"confirmation unavailable","expected":[],"passed":true},{"actual":[["x","","invoke",false]],"check":"empty override intentional","expected":[["x","","invoke",false]],"passed":true},{"actual":[["x","First","invoke",false],["y","Second","expand",false]],"check":"dedupe first and stable ties","expected":[["x","First","invoke",false],["y","Second","expand",false]],"passed":true},{"actual":[],"check":"empty","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"ordered descriptor set\", \"actual\": [[\"y\", \"expand\", \"expand\", false], [\"z\", \"Close\", \"collapse\", false], [\"x\", \"Localized1\", \"invoke\", false]], \"expected\": [[\"y\", \"expand\", \"expand\", false], [\"z\", \"Close\", \"collapse\", true], [\"x\", \"Localized1\", \"invoke\", false]], \"passed\": false}, {\"check\": \"disabled entry does not reserve ID\", \"actual\": [[\"x\", \"Good\", \"invoke\", false]], \"expected\": [[\"x\", \"Good\", \"invoke\", false]], \"passed\": true}, {\"check\": \"hidden and unknown\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"confirmation unavailable\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty override intentional\", \"actual\": [[\"x\", \"\", \"invoke\", false]], \"expected\": [[\"x\", \"\", \"invoke\", false]], \"passed\": true}, {\"check\": \"dedupe first and stable ties\", \"actual\": [[\"x\", \"First\", \"invoke\", false], [\"y\", \"Second\", \"expand\", false]], \"expected\": [[\"x\", \"First\", \"invoke\", false], [\"y\", \"Second\", \"expand\", false]], \"passed\": true}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.604,"exit_code":0,"observations":[{"actual":[["y","expand","expand",false],["z","Close","collapse",true],["x","Localized1","invoke",false]],"check":"ordered descriptor set","expected":[["y","expand","expand",false],["z","Close","collapse",true],["x","Localized1","invoke",false]],"passed":true},{"actual":[["x","Good","invoke",false]],"check":"disabled entry does not reserve ID","expected":[["x","Good","invoke",false]],"passed":true},{"actual":[],"check":"hidden and unknown","expected":[],"passed":true},{"actual":[],"check":"confirmation unavailable","expected":[],"passed":true},{"actual":[["x","","invoke",false]],"check":"empty override intentional","expected":[["x","","invoke",false]],"passed":true},{"actual":[["x","First","invoke",false],["y","Second","expand",false]],"check":"dedupe first and stable ties","expected":[["x","First","invoke",false],["y","Second","expand",false]],"passed":true},{"actual":[],"check":"empty","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"ordered descriptor set\", \"actual\": [[\"y\", \"expand\", \"expand\", false], [\"z\", \"Close\", \"collapse\", true], [\"x\", \"Localized1\", \"invoke\", false]], \"expected\": [[\"y\", \"expand\", \"expand\", false], [\"z\", \"Close\", \"collapse\", true], [\"x\", \"Localized1\", \"invoke\", false]], \"passed\": true}, {\"check\": \"disabled entry does not reserve ID\", \"actual\": [[\"x\", \"Good\", \"invoke\", false]], \"expected\": [[\"x\", \"Good\", \"invoke\", false]], \"passed\": true}, {\"check\": \"hidden and unknown\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"confirmation unavailable\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty override intentional\", \"actual\": [[\"x\", \"\", \"invoke\", false]], \"expected\": [[\"x\", \"\", \"invoke\", false]], \"passed\": true}, {\"check\": \"dedupe first and stable ties\", \"actual\": [[\"x\", \"First\", \"invoke\", false], [\"y\", \"Second\", \"expand\", false]], \"expected\": [[\"x\", \"First\", \"invoke\", false], [\"y\", \"Second\", \"expand\", false]], \"passed\": true}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}