{"abstract":"Disabled live regions still speak updates.","category":"Assistive announcements","checks":8,"contract":"Suppress identical and off updates; busy queues preserve order; assertive updates supersede pending work; atomic reads full content and incremental mode reads appended content.","evaluation_group":"xi-live-region","failed_approach":"Deferring off-region updates still creates unauthorized later announcements.","family":"xi-live-region-off","id":"FA-8411","implementations":{"attempt":{"sha256":"f24ac7395deb09e0d00bbb9e851f52a650f52b543cd1aaf4546732d9b5506290","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(queue, current, text, priority, busy, atomic):\n    queue = list(queue)\n    if text == current: return (queue, current)\n    if priority == 'off': return (queue + [text], current)\n    if busy: return (queue + [text], current)\n    if priority == 'assertive': return ([], text)\n    if atomic: return (queue, text)\n    return (queue, text[len(current):] if text.startswith(current) else text)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('duplicate', solve(['later'], 'done', 'done', 'polite', False, True), (['later'], 'done'))\ncheck('off', solve(['later'], 'old', 'new', 'off', False, True), (['later'], 'old'))\ncheck('busy', solve(['first'], 'old', 'new', 'polite', True, True), (['first', 'new'], 'old'))\ncheck('urgent', solve(['old pending'], 'old', 'urgent', 'assertive', False, True), ([], 'urgent'))\ncheck('atomic', solve([], '2 of ', '2 of 5', 'polite', False, True), ([], '2 of 5'))\ncheck('incremental', solve([], '2 of ', '2 of 5', 'polite', False, False), ([], '5'))\ncheck('parameterized atomic content', solve([], '', 'status'+str(N), 'polite', False, True), ([], 'status'+str(N)))\nfor repetition in range(N):\n    check('repeat incremental', solve([], '2 of ', '2 of 5', 'polite', False, False), ([], '5'))\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":"6667d0629530cb538111e34e90bec4705ce50b6e68287c55d20c1428aae7f256","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(queue, current, text, priority, busy, atomic):\n    queue = list(queue)\n    if text == current: return (queue, current)\n    if priority == 'off': return (queue, text)\n    if busy: return (queue + [text], current)\n    if priority == 'assertive': return ([], text)\n    if atomic: return (queue, text)\n    return (queue, text[len(current):] if text.startswith(current) else text)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('duplicate', solve(['later'], 'done', 'done', 'polite', False, True), (['later'], 'done'))\ncheck('off', solve(['later'], 'old', 'new', 'off', False, True), (['later'], 'old'))\ncheck('busy', solve(['first'], 'old', 'new', 'polite', True, True), (['first', 'new'], 'old'))\ncheck('urgent', solve(['old pending'], 'old', 'urgent', 'assertive', False, True), ([], 'urgent'))\ncheck('atomic', solve([], '2 of ', '2 of 5', 'polite', False, True), ([], '2 of 5'))\ncheck('incremental', solve([], '2 of ', '2 of 5', 'polite', False, False), ([], '5'))\ncheck('parameterized atomic content', solve([], '', 'status'+str(N), 'polite', False, True), ([], 'status'+str(N)))\nfor repetition in range(N):\n    check('repeat incremental', solve([], '2 of ', '2 of 5', 'polite', False, False), ([], '5'))\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":"1d08f40e03d5830fe3875eaf5b80614c19ae995cf26ba3402a2654b3bc440d6d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(queue, current, text, priority, busy, atomic):\n    queue = list(queue)\n    if text == current: return (queue, current)\n    if priority == 'off': return (queue, current)\n    if busy: return (queue + [text], current)\n    if priority == 'assertive': return ([], text)\n    if atomic: return (queue, text)\n    return (queue, text[len(current):] if text.startswith(current) else text)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('duplicate', solve(['later'], 'done', 'done', 'polite', False, True), (['later'], 'done'))\ncheck('off', solve(['later'], 'old', 'new', 'off', False, True), (['later'], 'old'))\ncheck('busy', solve(['first'], 'old', 'new', 'polite', True, True), (['first', 'new'], 'old'))\ncheck('urgent', solve(['old pending'], 'old', 'urgent', 'assertive', False, True), ([], 'urgent'))\ncheck('atomic', solve([], '2 of ', '2 of 5', 'polite', False, True), ([], '2 of 5'))\ncheck('incremental', solve([], '2 of ', '2 of 5', 'polite', False, False), ([], '5'))\ncheck('parameterized atomic content', solve([], '', 'status'+str(N), 'polite', False, True), ([], 'status'+str(N)))\nfor repetition in range(N):\n    check('repeat incremental', solve([], '2 of ', '2 of 5', 'polite', False, False), ([], '5'))\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-live-region-off","generated_at":"2026-09-29T14:38:21.140115+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic model of live-region announcement scheduling; this isolates one interface invariant without requiring a browser.","repair":"Implement the off operation as `if priority == 'off': return (queue, current)`.","root_cause":"The off operation uses `if priority == 'off': return (queue, text)` where the contract requires `if priority == 'off': return (queue, current)`.","sha256":"fb02cbd7427f9a6bd4372e72eb3e298d3b645eedc66e6b9279c083f82255e9ab","title":"Live-region announcement scheduling: Disabled live regions still speak updates · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.733,"exit_code":1,"observations":[{"actual":[["later"],"done"],"check":"duplicate","expected":[["later"],"done"],"passed":true},{"actual":[["later","new"],"old"],"check":"off","expected":[["later"],"old"],"passed":false},{"actual":[["first","new"],"old"],"check":"busy","expected":[["first","new"],"old"],"passed":true},{"actual":[[],"urgent"],"check":"urgent","expected":[[],"urgent"],"passed":true},{"actual":[[],"2 of 5"],"check":"atomic","expected":[[],"2 of 5"],"passed":true},{"actual":[[],"5"],"check":"incremental","expected":[[],"5"],"passed":true},{"actual":[[],"status1"],"check":"parameterized atomic content","expected":[[],"status1"],"passed":true},{"actual":[[],"5"],"check":"repeat incremental","expected":[[],"5"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"duplicate\", \"actual\": [[\"later\"], \"done\"], \"expected\": [[\"later\"], \"done\"], \"passed\": true}, {\"check\": \"off\", \"actual\": [[\"later\", \"new\"], \"old\"], \"expected\": [[\"later\"], \"old\"], \"passed\": false}, {\"check\": \"busy\", \"actual\": [[\"first\", \"new\"], \"old\"], \"expected\": [[\"first\", \"new\"], \"old\"], \"passed\": true}, {\"check\": \"urgent\", \"actual\": [[], \"urgent\"], \"expected\": [[], \"urgent\"], \"passed\": true}, {\"check\": \"atomic\", \"actual\": [[], \"2 of 5\"], \"expected\": [[], \"2 of 5\"], \"passed\": true}, {\"check\": \"incremental\", \"actual\": [[], \"5\"], \"expected\": [[], \"5\"], \"passed\": true}, {\"check\": \"parameterized atomic content\", \"actual\": [[], \"status1\"], \"expected\": [[], \"status1\"], \"passed\": true}, {\"check\": \"repeat incremental\", \"actual\": [[], \"5\"], \"expected\": [[], \"5\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.809,"exit_code":1,"observations":[{"actual":[["later"],"done"],"check":"duplicate","expected":[["later"],"done"],"passed":true},{"actual":[["later"],"new"],"check":"off","expected":[["later"],"old"],"passed":false},{"actual":[["first","new"],"old"],"check":"busy","expected":[["first","new"],"old"],"passed":true},{"actual":[[],"urgent"],"check":"urgent","expected":[[],"urgent"],"passed":true},{"actual":[[],"2 of 5"],"check":"atomic","expected":[[],"2 of 5"],"passed":true},{"actual":[[],"5"],"check":"incremental","expected":[[],"5"],"passed":true},{"actual":[[],"status1"],"check":"parameterized atomic content","expected":[[],"status1"],"passed":true},{"actual":[[],"5"],"check":"repeat incremental","expected":[[],"5"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"duplicate\", \"actual\": [[\"later\"], \"done\"], \"expected\": [[\"later\"], \"done\"], \"passed\": true}, {\"check\": \"off\", \"actual\": [[\"later\"], \"new\"], \"expected\": [[\"later\"], \"old\"], \"passed\": false}, {\"check\": \"busy\", \"actual\": [[\"first\", \"new\"], \"old\"], \"expected\": [[\"first\", \"new\"], \"old\"], \"passed\": true}, {\"check\": \"urgent\", \"actual\": [[], \"urgent\"], \"expected\": [[], \"urgent\"], \"passed\": true}, {\"check\": \"atomic\", \"actual\": [[], \"2 of 5\"], \"expected\": [[], \"2 of 5\"], \"passed\": true}, {\"check\": \"incremental\", \"actual\": [[], \"5\"], \"expected\": [[], \"5\"], \"passed\": true}, {\"check\": \"parameterized atomic content\", \"actual\": [[], \"status1\"], \"expected\": [[], \"status1\"], \"passed\": true}, {\"check\": \"repeat incremental\", \"actual\": [[], \"5\"], \"expected\": [[], \"5\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":36.811,"exit_code":0,"observations":[{"actual":[["later"],"done"],"check":"duplicate","expected":[["later"],"done"],"passed":true},{"actual":[["later"],"old"],"check":"off","expected":[["later"],"old"],"passed":true},{"actual":[["first","new"],"old"],"check":"busy","expected":[["first","new"],"old"],"passed":true},{"actual":[[],"urgent"],"check":"urgent","expected":[[],"urgent"],"passed":true},{"actual":[[],"2 of 5"],"check":"atomic","expected":[[],"2 of 5"],"passed":true},{"actual":[[],"5"],"check":"incremental","expected":[[],"5"],"passed":true},{"actual":[[],"status1"],"check":"parameterized atomic content","expected":[[],"status1"],"passed":true},{"actual":[[],"5"],"check":"repeat incremental","expected":[[],"5"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"duplicate\", \"actual\": [[\"later\"], \"done\"], \"expected\": [[\"later\"], \"done\"], \"passed\": true}, {\"check\": \"off\", \"actual\": [[\"later\"], \"old\"], \"expected\": [[\"later\"], \"old\"], \"passed\": true}, {\"check\": \"busy\", \"actual\": [[\"first\", \"new\"], \"old\"], \"expected\": [[\"first\", \"new\"], \"old\"], \"passed\": true}, {\"check\": \"urgent\", \"actual\": [[], \"urgent\"], \"expected\": [[], \"urgent\"], \"passed\": true}, {\"check\": \"atomic\", \"actual\": [[], \"2 of 5\"], \"expected\": [[], \"2 of 5\"], \"passed\": true}, {\"check\": \"incremental\", \"actual\": [[], \"5\"], \"expected\": [[], \"5\"], \"passed\": true}, {\"check\": \"parameterized atomic content\", \"actual\": [[], \"status1\"], \"expected\": [[], \"status1\"], \"passed\": true}, {\"check\": \"repeat incremental\", \"actual\": [[], \"5\"], \"expected\": [[], \"5\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}