{"abstract":"Submenu activation runs a leaf command and closes its parent.","category":"Menu interactions","checks":9,"contract":"Disabled items and nonactivation keys do nothing; click, Enter and Space activate; submenu transfers focus; checks toggle; radios select; leaf commands close.","contract_signature":"item, opened, checked, event","evaluation_group":"xi-menu-activation","failed_approach":"Opening without transferring focus leaves keyboard users outside the submenu.","family":"xi-menu-activation-submenu","id":"FA-8116","implementations":{"attempt":{"sha256":"ff8b8459162e6c5541a2a8b6760e0e681d52634c9f9a191505ba5f18e5e8cfbc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(item, opened, checked, event):\n    if item['disabled']: return (opened, checked, None)\n    if event not in ('click', 'Enter', 'Space'): return (opened, checked, None)\n    if item['kind'] == 'submenu': return (True, checked, None)\n    if item['kind'] == 'checkbox': return (opened, not checked, 'change')\n    if item['kind'] == 'radio': return (opened, True, 'change')\n    return (False, checked, 'invoke')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('disabled', solve(dict(disabled=True,kind='command'), True, False, 'click'), (True, False, None))\ncheck('enter', solve(dict(disabled=False,kind='command'), True, False, 'Enter'), (False, False, 'invoke'))\ncheck('space', solve(dict(disabled=False,kind='command'), True, False, 'Space'), (False, False, 'invoke'))\ncheck('submenu', solve(dict(disabled=False,kind='submenu'), False, False, 'click'), (True, False, 'focus-child'))\ncheck('checkbox off', solve(dict(disabled=False,kind='checkbox'), True, True, 'click'), (True, False, 'change'))\ncheck('radio stays', solve(dict(disabled=False,kind='radio'), True, True, 'click'), (True, True, 'change'))\ncheck('ignore arrow', solve(dict(disabled=False,kind='command'), True, False, 'Left'), (True, False, None))\ncheck('parameterized checked state', solve(dict(disabled=False,kind='checkbox'), True, bool(N%2), 'Space'), (True, not bool(N%2), 'change'))\nfor repetition in range(N):\n    check('repeat ignore arrow', solve(dict(disabled=False,kind='command'), True, False, 'Left'), (True, False, None))\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":"e38610b57d91d74f089d5009d8b44c64eaef5bf2b014ca4c60958baae1d02d05","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(item, opened, checked, event):\n    if item['disabled']: return (opened, checked, None)\n    if event not in ('click', 'Enter', 'Space'): return (opened, checked, None)\n    if item['kind'] == 'submenu': return (False, checked, 'invoke')\n    if item['kind'] == 'checkbox': return (opened, not checked, 'change')\n    if item['kind'] == 'radio': return (opened, True, 'change')\n    return (False, checked, 'invoke')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('disabled', solve(dict(disabled=True,kind='command'), True, False, 'click'), (True, False, None))\ncheck('enter', solve(dict(disabled=False,kind='command'), True, False, 'Enter'), (False, False, 'invoke'))\ncheck('space', solve(dict(disabled=False,kind='command'), True, False, 'Space'), (False, False, 'invoke'))\ncheck('submenu', solve(dict(disabled=False,kind='submenu'), False, False, 'click'), (True, False, 'focus-child'))\ncheck('checkbox off', solve(dict(disabled=False,kind='checkbox'), True, True, 'click'), (True, False, 'change'))\ncheck('radio stays', solve(dict(disabled=False,kind='radio'), True, True, 'click'), (True, True, 'change'))\ncheck('ignore arrow', solve(dict(disabled=False,kind='command'), True, False, 'Left'), (True, False, None))\ncheck('parameterized checked state', solve(dict(disabled=False,kind='checkbox'), True, bool(N%2), 'Space'), (True, not bool(N%2), 'change'))\nfor repetition in range(N):\n    check('repeat ignore arrow', solve(dict(disabled=False,kind='command'), True, False, 'Left'), (True, False, None))\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-menu-activation-submenu","generated_at":"2026-09-29T14:38:18.583747+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic model of menu item activation; this isolates one interface invariant without requiring a browser.","root_cause":"The submenu operation uses `(False, checked, 'invoke')` where the contract requires `(True, checked, 'focus-child')`.","sha256":"a83dc029e1d1c0a7d260e70714dc43a4b80cc8cdd8bab7b865af751471ce4377","title":"Menu item activation: Submenu activation runs a leaf command and closes its parent · 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":98.835,"exit_code":1,"observations":[{"actual":[true,false,null],"check":"disabled","expected":[true,false,null],"passed":true},{"actual":[false,false,"invoke"],"check":"enter","expected":[false,false,"invoke"],"passed":true},{"actual":[false,false,"invoke"],"check":"space","expected":[false,false,"invoke"],"passed":true},{"actual":[true,false,null],"check":"submenu","expected":[true,false,"focus-child"],"passed":false},{"actual":[true,false,"change"],"check":"checkbox off","expected":[true,false,"change"],"passed":true},{"actual":[true,true,"change"],"check":"radio stays","expected":[true,true,"change"],"passed":true},{"actual":[true,false,null],"check":"ignore arrow","expected":[true,false,null],"passed":true},{"actual":[true,false,"change"],"check":"parameterized checked state","expected":[true,false,"change"],"passed":true},{"actual":[true,false,null],"check":"repeat ignore arrow","expected":[true,false,null],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"disabled\", \"actual\": [true, false, null], \"expected\": [true, false, null], \"passed\": true}, {\"check\": \"enter\", \"actual\": [false, false, \"invoke\"], \"expected\": [false, false, \"invoke\"], \"passed\": true}, {\"check\": \"space\", \"actual\": [false, false, \"invoke\"], \"expected\": [false, false, \"invoke\"], \"passed\": true}, {\"check\": \"submenu\", \"actual\": [true, false, null], \"expected\": [true, false, \"focus-child\"], \"passed\": false}, {\"check\": \"checkbox off\", \"actual\": [true, false, \"change\"], \"expected\": [true, false, \"change\"], \"passed\": true}, {\"check\": \"radio stays\", \"actual\": [true, true, \"change\"], \"expected\": [true, true, \"change\"], \"passed\": true}, {\"check\": \"ignore arrow\", \"actual\": [true, false, null], \"expected\": [true, false, null], \"passed\": true}, {\"check\": \"parameterized checked state\", \"actual\": [true, false, \"change\"], \"expected\": [true, false, \"change\"], \"passed\": true}, {\"check\": \"repeat ignore arrow\", \"actual\": [true, false, null], \"expected\": [true, false, null], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":55.948,"exit_code":1,"observations":[{"actual":[true,false,null],"check":"disabled","expected":[true,false,null],"passed":true},{"actual":[false,false,"invoke"],"check":"enter","expected":[false,false,"invoke"],"passed":true},{"actual":[false,false,"invoke"],"check":"space","expected":[false,false,"invoke"],"passed":true},{"actual":[false,false,"invoke"],"check":"submenu","expected":[true,false,"focus-child"],"passed":false},{"actual":[true,false,"change"],"check":"checkbox off","expected":[true,false,"change"],"passed":true},{"actual":[true,true,"change"],"check":"radio stays","expected":[true,true,"change"],"passed":true},{"actual":[true,false,null],"check":"ignore arrow","expected":[true,false,null],"passed":true},{"actual":[true,false,"change"],"check":"parameterized checked state","expected":[true,false,"change"],"passed":true},{"actual":[true,false,null],"check":"repeat ignore arrow","expected":[true,false,null],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"disabled\", \"actual\": [true, false, null], \"expected\": [true, false, null], \"passed\": true}, {\"check\": \"enter\", \"actual\": [false, false, \"invoke\"], \"expected\": [false, false, \"invoke\"], \"passed\": true}, {\"check\": \"space\", \"actual\": [false, false, \"invoke\"], \"expected\": [false, false, \"invoke\"], \"passed\": true}, {\"check\": \"submenu\", \"actual\": [false, false, \"invoke\"], \"expected\": [true, false, \"focus-child\"], \"passed\": false}, {\"check\": \"checkbox off\", \"actual\": [true, false, \"change\"], \"expected\": [true, false, \"change\"], \"passed\": true}, {\"check\": \"radio stays\", \"actual\": [true, true, \"change\"], \"expected\": [true, true, \"change\"], \"passed\": true}, {\"check\": \"ignore arrow\", \"actual\": [true, false, null], \"expected\": [true, false, null], \"passed\": true}, {\"check\": \"parameterized checked state\", \"actual\": [true, false, \"change\"], \"expected\": [true, false, \"change\"], \"passed\": true}, {\"check\": \"repeat ignore arrow\", \"actual\": [true, false, null], \"expected\": [true, false, null], \"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."}}