{"abstract":"Unlinked reading flow uses lexical order.","category":"Accessibility interaction semantics","checks":8,"contract":"Input [natural_ids,edges,excluded,start] where edges are directed reading-flow overrides. Keep unique natural IDs in original order excluding excluded IDs. Admit edges between eligible distinct IDs; first outgoing edge wins. Reading starts at specified eligible ID otherwise first eligible. Follow override if target unvisited; otherwise take earliest unvisited natural node. Include each eligible object exactly once, prevent cycles, and return list of IDs. Explicit start does not remove earlier unvisited nodes.","evaluation_group":"s3-accessibility-reading-flow","failed_approach":"The local repair substitutes next((x for x in reversed(items) if x not in seen),None) but still mishandles the regression fixtures.","family":"s3-accessibility-reading-flow-fallback-order","id":"FA-53931","implementations":{"attempt":{"sha256":"ac4000aa2f8112fabed4f1d77e4cc170ba271f34babf453e167dd9b3a65fc7e2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    natural,edges,excluded,start = data\n    items = list(dict.fromkeys(x for x in natural if x not in excluded))\n    if not items: return []\n    links = {}\n    for source,target in edges:\n        if source not in items or target not in items or source == target: continue\n        links.setdefault(source,target)\n    current = start if start in items else items[0]\n    seen = set()\n    result = []\n    while current is not None:\n        result.append(current)\n        seen.add(current)\n        nxt = links.get(current)\n        current = nxt if nxt is not None and nxt not in seen else next((x for x in reversed(items) if x not in seen),None)\n    return result\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve([['a','b','c',str(N)],[['a','c'],['c','a']],[],'a'],), ['a','c','b',str(N)])\ncheck('contract fixture 2', solve([['a','b','c'],[['a','c'],['a','b']],[],'a'],), ['a','c','b'])\ncheck('contract fixture 3', solve([['a','b','c'],[['a','b'],['a','missing']],['b'],'a'],), ['a','c'])\ncheck('contract fixture 4', solve([['a','b','c'],[],[],'c'],), ['c','a','b'])\ncheck('contract fixture 5', solve([['b','a','b'],[['b','b']],[],'missing'],), ['b','a'])\ncheck('contract fixture 6', solve([['a'],[['a','missing']],['a'],'a'],), [])\ncheck('contract fixture 7', solve([['','a'],[['','a']],[],''],), ['','a'])\ncheck('contract fixture 8', solve([['only'],[],[],'only'],), ['only'])\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":"47e8b61d267e8eedad1a678c4ed7080da18d267d7624f9474740ebd839697b9f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    natural,edges,excluded,start = data\n    items = list(dict.fromkeys(x for x in natural if x not in excluded))\n    if not items: return []\n    links = {}\n    for source,target in edges:\n        if source not in items or target not in items or source == target: continue\n        links.setdefault(source,target)\n    current = start if start in items else items[0]\n    seen = set()\n    result = []\n    while current is not None:\n        result.append(current)\n        seen.add(current)\n        nxt = links.get(current)\n        current = nxt if nxt is not None and nxt not in seen else next((x for x in sorted(items) if x not in seen),None)\n    return result\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve([['a','b','c',str(N)],[['a','c'],['c','a']],[],'a'],), ['a','c','b',str(N)])\ncheck('contract fixture 2', solve([['a','b','c'],[['a','c'],['a','b']],[],'a'],), ['a','c','b'])\ncheck('contract fixture 3', solve([['a','b','c'],[['a','b'],['a','missing']],['b'],'a'],), ['a','c'])\ncheck('contract fixture 4', solve([['a','b','c'],[],[],'c'],), ['c','a','b'])\ncheck('contract fixture 5', solve([['b','a','b'],[['b','b']],[],'missing'],), ['b','a'])\ncheck('contract fixture 6', solve([['a'],[['a','missing']],['a'],'a'],), [])\ncheck('contract fixture 7', solve([['','a'],[['','a']],[],''],), ['','a'])\ncheck('contract fixture 8', solve([['only'],[],[],'only'],), ['only'])\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":"6d5993fe7933f3c0c4a2c3f2685fa0f8720c7261ba749e503681cea5f1296e08","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    natural,edges,excluded,start = data\n    items = list(dict.fromkeys(x for x in natural if x not in excluded))\n    if not items: return []\n    links = {}\n    for source,target in edges:\n        if source not in items or target not in items or source == target: continue\n        links.setdefault(source,target)\n    current = start if start in items else items[0]\n    seen = set()\n    result = []\n    while current is not None:\n        result.append(current)\n        seen.add(current)\n        nxt = links.get(current)\n        current = nxt if nxt is not None and nxt not in seen else next((x for x in items if x not in seen),None)\n    return result\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve([['a','b','c',str(N)],[['a','c'],['c','a']],[],'a'],), ['a','c','b',str(N)])\ncheck('contract fixture 2', solve([['a','b','c'],[['a','c'],['a','b']],[],'a'],), ['a','c','b'])\ncheck('contract fixture 3', solve([['a','b','c'],[['a','b'],['a','missing']],['b'],'a'],), ['a','c'])\ncheck('contract fixture 4', solve([['a','b','c'],[],[],'c'],), ['c','a','b'])\ncheck('contract fixture 5', solve([['b','a','b'],[['b','b']],[],'missing'],), ['b','a'])\ncheck('contract fixture 6', solve([['a'],[['a','missing']],['a'],'a'],), [])\ncheck('contract fixture 7', solve([['','a'],[['','a']],[],''],), ['','a'])\ncheck('contract fixture 8', solve([['only'],[],[],'only'],), ['only'])\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-reading-flow-fallback-order","generated_at":"2026-09-29T14:45:43.667168+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 fallback order decision: next((x for x in items if x not in seen),None)","root_cause":"The fallback order decision in the reading flow adapter violates its declared contract.","sha256":"13c4722d051556207828d2c8bf58d4024939109e93dd7ef3b79aed4a9dd846bf","title":"Unlinked reading flow uses lexical order · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.056,"exit_code":1,"observations":[{"actual":["a","c","1","b"],"check":"contract fixture 1","expected":["a","c","b","1"],"passed":false},{"actual":["a","c","b"],"check":"contract fixture 2","expected":["a","c","b"],"passed":true},{"actual":["a","c"],"check":"contract fixture 3","expected":["a","c"],"passed":true},{"actual":["c","b","a"],"check":"contract fixture 4","expected":["c","a","b"],"passed":false},{"actual":["b","a"],"check":"contract fixture 5","expected":["b","a"],"passed":true},{"actual":[],"check":"contract fixture 6","expected":[],"passed":true},{"actual":["","a"],"check":"contract fixture 7","expected":["","a"],"passed":true},{"actual":["only"],"check":"contract fixture 8","expected":["only"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [\"a\", \"c\", \"1\", \"b\"], \"expected\": [\"a\", \"c\", \"b\", \"1\"], \"passed\": false}, {\"check\": \"contract fixture 2\", \"actual\": [\"a\", \"c\", \"b\"], \"expected\": [\"a\", \"c\", \"b\"], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [\"a\", \"c\"], \"expected\": [\"a\", \"c\"], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": [\"c\", \"b\", \"a\"], \"expected\": [\"c\", \"a\", \"b\"], \"passed\": false}, {\"check\": \"contract fixture 5\", \"actual\": [\"b\", \"a\"], \"expected\": [\"b\", \"a\"], \"passed\": true}, {\"check\": \"contract fixture 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"contract fixture 7\", \"actual\": [\"\", \"a\"], \"expected\": [\"\", \"a\"], \"passed\": true}, {\"check\": \"contract fixture 8\", \"actual\": [\"only\"], \"expected\": [\"only\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.622,"exit_code":1,"observations":[{"actual":["a","c","1","b"],"check":"contract fixture 1","expected":["a","c","b","1"],"passed":false},{"actual":["a","c","b"],"check":"contract fixture 2","expected":["a","c","b"],"passed":true},{"actual":["a","c"],"check":"contract fixture 3","expected":["a","c"],"passed":true},{"actual":["c","a","b"],"check":"contract fixture 4","expected":["c","a","b"],"passed":true},{"actual":["b","a"],"check":"contract fixture 5","expected":["b","a"],"passed":true},{"actual":[],"check":"contract fixture 6","expected":[],"passed":true},{"actual":["","a"],"check":"contract fixture 7","expected":["","a"],"passed":true},{"actual":["only"],"check":"contract fixture 8","expected":["only"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [\"a\", \"c\", \"1\", \"b\"], \"expected\": [\"a\", \"c\", \"b\", \"1\"], \"passed\": false}, {\"check\": \"contract fixture 2\", \"actual\": [\"a\", \"c\", \"b\"], \"expected\": [\"a\", \"c\", \"b\"], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [\"a\", \"c\"], \"expected\": [\"a\", \"c\"], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": [\"c\", \"a\", \"b\"], \"expected\": [\"c\", \"a\", \"b\"], \"passed\": true}, {\"check\": \"contract fixture 5\", \"actual\": [\"b\", \"a\"], \"expected\": [\"b\", \"a\"], \"passed\": true}, {\"check\": \"contract fixture 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"contract fixture 7\", \"actual\": [\"\", \"a\"], \"expected\": [\"\", \"a\"], \"passed\": true}, {\"check\": \"contract fixture 8\", \"actual\": [\"only\"], \"expected\": [\"only\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.702,"exit_code":0,"observations":[{"actual":["a","c","b","1"],"check":"contract fixture 1","expected":["a","c","b","1"],"passed":true},{"actual":["a","c","b"],"check":"contract fixture 2","expected":["a","c","b"],"passed":true},{"actual":["a","c"],"check":"contract fixture 3","expected":["a","c"],"passed":true},{"actual":["c","a","b"],"check":"contract fixture 4","expected":["c","a","b"],"passed":true},{"actual":["b","a"],"check":"contract fixture 5","expected":["b","a"],"passed":true},{"actual":[],"check":"contract fixture 6","expected":[],"passed":true},{"actual":["","a"],"check":"contract fixture 7","expected":["","a"],"passed":true},{"actual":["only"],"check":"contract fixture 8","expected":["only"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [\"a\", \"c\", \"b\", \"1\"], \"expected\": [\"a\", \"c\", \"b\", \"1\"], \"passed\": true}, {\"check\": \"contract fixture 2\", \"actual\": [\"a\", \"c\", \"b\"], \"expected\": [\"a\", \"c\", \"b\"], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [\"a\", \"c\"], \"expected\": [\"a\", \"c\"], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": [\"c\", \"a\", \"b\"], \"expected\": [\"c\", \"a\", \"b\"], \"passed\": true}, {\"check\": \"contract fixture 5\", \"actual\": [\"b\", \"a\"], \"expected\": [\"b\", \"a\"], \"passed\": true}, {\"check\": \"contract fixture 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"contract fixture 7\", \"actual\": [\"\", \"a\"], \"expected\": [\"\", \"a\"], \"passed\": true}, {\"check\": \"contract fixture 8\", \"actual\": [\"only\"], \"expected\": [\"only\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}