{"abstract":"Outline ancestry follows transport arrival order.","category":"Accessibility interaction semantics","checks":7,"contract":"A document heading inventory receives records [id,level,text,exposed,document,order] and requested document. Admit exposed level integers 1..6 (booleans are not levels), nonempty text after ASCII trimming, exact document. For duplicate IDs retain the earliest order record; ties retain first input. Output sorted by order with each heading's nearest preceding lower-level heading ID as parent. Skipped levels do not create synthetic headings. Output [id,level,trimmed_text,parent].","evaluation_group":"s3-accessibility-heading-inventory","failed_approach":"The local repair substitutes sorted(chosen.items(),key=lambda pair:pair[1][1]) but still mishandles the regression fixtures.","family":"s3-accessibility-heading-inventory-outline-order","id":"FA-53656","implementations":{"attempt":{"sha256":"2e06711e4f660c2ad42b56cec861f45b5d723ad8d7dad35417523f92a8a7ef6d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    records,document = data\n    chosen = {}\n    for ident,level,text,visible,doc,order in records:\n        if not visible or doc != document: continue\n        if type(level) is not int or not 1 <= level <= 6: continue\n        text = text.strip(' \\t\\r\\n')\n        if not text: continue\n        if ident not in chosen or order < chosen[ident][0]: chosen[ident] = (order,level,text)\n    stack = []\n    result = []\n    for ident,(order,level,text) in sorted(chosen.items(),key=lambda pair:pair[1][1]):\n        while stack and stack[-1][1] >= level: stack.pop()\n        result.append([ident,level,text,stack[-1][0] if stack else None])\n        stack.append((ident,level))\n    return result\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('levels and sibling ancestry', solve([[['a',1,' '+'A'*N+' ',True,'d',0],['b',3,'B',True,'d',N],['c',3,'C',True,'d',N+1],['d',2,'D',True,'d',N+2],['e',1,'E',True,'d',N+3]],'d'],), [['a',1,'A'*N,None],['b',3,'B','a'],['c',3,'C','a'],['d',2,'D','a'],['e',1,'E',None]])\ncheck('sort document order', solve([[['b',2,'B',True,'d',N+1],['a',1,'A',True,'d',N]],'d'],), [['a',1,'A',None],['b',2,'B','a']])\ncheck('earliest duplicate', solve([[['a',2,'late',True,'d',N+1],['a',1,'first',True,'d',N],['a',3,'tie',True,'d',N]],'d'],), [['a',1,'first',None]])\ncheck('visibility and document', solve([[['a',1,'A',False,'d',0],['b',1,'B',True,'e',1],['c',2,'C',True,'d',2]],'d'],), [['c',2,'C',None]])\ncheck('level admission', solve([[['a',0,'A',True,'d',0],['b',7,'B',True,'d',1],['c',True,'C',True,'d',2],['z',6,'Z',True,'d',3]],'d'],), [['z',6,'Z',None]])\ncheck('trim empty and NBSP', solve([[['a',1,' \\t',True,'d',0],['b',2,'\\u00a0',True,'d',1]],'d'],), [['b',2,'\\u00a0',None]])\ncheck('empty', solve([[],'d'],), [])\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":"b1cba6cba15bcec2911b42219a955ced32f1312c38c6d0450264c336d527f889","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    records,document = data\n    chosen = {}\n    for ident,level,text,visible,doc,order in records:\n        if not visible or doc != document: continue\n        if type(level) is not int or not 1 <= level <= 6: continue\n        text = text.strip(' \\t\\r\\n')\n        if not text: continue\n        if ident not in chosen or order < chosen[ident][0]: chosen[ident] = (order,level,text)\n    stack = []\n    result = []\n    for ident,(order,level,text) in chosen.items():\n        while stack and stack[-1][1] >= level: stack.pop()\n        result.append([ident,level,text,stack[-1][0] if stack else None])\n        stack.append((ident,level))\n    return result\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('levels and sibling ancestry', solve([[['a',1,' '+'A'*N+' ',True,'d',0],['b',3,'B',True,'d',N],['c',3,'C',True,'d',N+1],['d',2,'D',True,'d',N+2],['e',1,'E',True,'d',N+3]],'d'],), [['a',1,'A'*N,None],['b',3,'B','a'],['c',3,'C','a'],['d',2,'D','a'],['e',1,'E',None]])\ncheck('sort document order', solve([[['b',2,'B',True,'d',N+1],['a',1,'A',True,'d',N]],'d'],), [['a',1,'A',None],['b',2,'B','a']])\ncheck('earliest duplicate', solve([[['a',2,'late',True,'d',N+1],['a',1,'first',True,'d',N],['a',3,'tie',True,'d',N]],'d'],), [['a',1,'first',None]])\ncheck('visibility and document', solve([[['a',1,'A',False,'d',0],['b',1,'B',True,'e',1],['c',2,'C',True,'d',2]],'d'],), [['c',2,'C',None]])\ncheck('level admission', solve([[['a',0,'A',True,'d',0],['b',7,'B',True,'d',1],['c',True,'C',True,'d',2],['z',6,'Z',True,'d',3]],'d'],), [['z',6,'Z',None]])\ncheck('trim empty and NBSP', solve([[['a',1,' \\t',True,'d',0],['b',2,'\\u00a0',True,'d',1]],'d'],), [['b',2,'\\u00a0',None]])\ncheck('empty', solve([[],'d'],), [])\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":"8c98753824fc1057b2b43de480fcc719dee0580c9d0af8f24f69504f08370094","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    records,document = data\n    chosen = {}\n    for ident,level,text,visible,doc,order in records:\n        if not visible or doc != document: continue\n        if type(level) is not int or not 1 <= level <= 6: continue\n        text = text.strip(' \\t\\r\\n')\n        if not text: continue\n        if ident not in chosen or order < chosen[ident][0]: chosen[ident] = (order,level,text)\n    stack = []\n    result = []\n    for ident,(order,level,text) in sorted(chosen.items(),key=lambda pair:pair[1][0]):\n        while stack and stack[-1][1] >= level: stack.pop()\n        result.append([ident,level,text,stack[-1][0] if stack else None])\n        stack.append((ident,level))\n    return result\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('levels and sibling ancestry', solve([[['a',1,' '+'A'*N+' ',True,'d',0],['b',3,'B',True,'d',N],['c',3,'C',True,'d',N+1],['d',2,'D',True,'d',N+2],['e',1,'E',True,'d',N+3]],'d'],), [['a',1,'A'*N,None],['b',3,'B','a'],['c',3,'C','a'],['d',2,'D','a'],['e',1,'E',None]])\ncheck('sort document order', solve([[['b',2,'B',True,'d',N+1],['a',1,'A',True,'d',N]],'d'],), [['a',1,'A',None],['b',2,'B','a']])\ncheck('earliest duplicate', solve([[['a',2,'late',True,'d',N+1],['a',1,'first',True,'d',N],['a',3,'tie',True,'d',N]],'d'],), [['a',1,'first',None]])\ncheck('visibility and document', solve([[['a',1,'A',False,'d',0],['b',1,'B',True,'e',1],['c',2,'C',True,'d',2]],'d'],), [['c',2,'C',None]])\ncheck('level admission', solve([[['a',0,'A',True,'d',0],['b',7,'B',True,'d',1],['c',True,'C',True,'d',2],['z',6,'Z',True,'d',3]],'d'],), [['z',6,'Z',None]])\ncheck('trim empty and NBSP', solve([[['a',1,' \\t',True,'d',0],['b',2,'\\u00a0',True,'d',1]],'d'],), [['b',2,'\\u00a0',None]])\ncheck('empty', solve([[],'d'],), [])\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-heading-inventory-outline-order","generated_at":"2026-09-29T14:45:41.066388+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 outline order decision: sorted(chosen.items(),key=lambda pair:pair[1][0])","root_cause":"The outline order decision in the heading inventory adapter violates its declared contract.","sha256":"4045d6b48b88130c207b48e938dbd60e35b7e03e73fc866c7a1feb066c767984","title":"Outline ancestry follows transport arrival order · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.584,"exit_code":1,"observations":[{"actual":[["a",1,"A",null],["e",1,"E",null],["d",2,"D","e"],["b",3,"B","d"],["c",3,"C","d"]],"check":"levels and sibling ancestry","expected":[["a",1,"A",null],["b",3,"B","a"],["c",3,"C","a"],["d",2,"D","a"],["e",1,"E",null]],"passed":false},{"actual":[["a",1,"A",null],["b",2,"B","a"]],"check":"sort document order","expected":[["a",1,"A",null],["b",2,"B","a"]],"passed":true},{"actual":[["a",1,"first",null]],"check":"earliest duplicate","expected":[["a",1,"first",null]],"passed":true},{"actual":[["c",2,"C",null]],"check":"visibility and document","expected":[["c",2,"C",null]],"passed":true},{"actual":[["z",6,"Z",null]],"check":"level admission","expected":[["z",6,"Z",null]],"passed":true},{"actual":[["b",2," ",null]],"check":"trim empty and NBSP","expected":[["b",2," ",null]],"passed":true},{"actual":[],"check":"empty","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"levels and sibling ancestry\", \"actual\": [[\"a\", 1, \"A\", null], [\"e\", 1, \"E\", null], [\"d\", 2, \"D\", \"e\"], [\"b\", 3, \"B\", \"d\"], [\"c\", 3, \"C\", \"d\"]], \"expected\": [[\"a\", 1, \"A\", null], [\"b\", 3, \"B\", \"a\"], [\"c\", 3, \"C\", \"a\"], [\"d\", 2, \"D\", \"a\"], [\"e\", 1, \"E\", null]], \"passed\": false}, {\"check\": \"sort document order\", \"actual\": [[\"a\", 1, \"A\", null], [\"b\", 2, \"B\", \"a\"]], \"expected\": [[\"a\", 1, \"A\", null], [\"b\", 2, \"B\", \"a\"]], \"passed\": true}, {\"check\": \"earliest duplicate\", \"actual\": [[\"a\", 1, \"first\", null]], \"expected\": [[\"a\", 1, \"first\", null]], \"passed\": true}, {\"check\": \"visibility and document\", \"actual\": [[\"c\", 2, \"C\", null]], \"expected\": [[\"c\", 2, \"C\", null]], \"passed\": true}, {\"check\": \"level admission\", \"actual\": [[\"z\", 6, \"Z\", null]], \"expected\": [[\"z\", 6, \"Z\", null]], \"passed\": true}, {\"check\": \"trim empty and NBSP\", \"actual\": [[\"b\", 2, \" \", null]], \"expected\": [[\"b\", 2, \" \", null]], \"passed\": true}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.044,"exit_code":1,"observations":[{"actual":[["a",1,"A",null],["b",3,"B","a"],["c",3,"C","a"],["d",2,"D","a"],["e",1,"E",null]],"check":"levels and sibling ancestry","expected":[["a",1,"A",null],["b",3,"B","a"],["c",3,"C","a"],["d",2,"D","a"],["e",1,"E",null]],"passed":true},{"actual":[["b",2,"B",null],["a",1,"A",null]],"check":"sort document order","expected":[["a",1,"A",null],["b",2,"B","a"]],"passed":false},{"actual":[["a",1,"first",null]],"check":"earliest duplicate","expected":[["a",1,"first",null]],"passed":true},{"actual":[["c",2,"C",null]],"check":"visibility and document","expected":[["c",2,"C",null]],"passed":true},{"actual":[["z",6,"Z",null]],"check":"level admission","expected":[["z",6,"Z",null]],"passed":true},{"actual":[["b",2," ",null]],"check":"trim empty and NBSP","expected":[["b",2," ",null]],"passed":true},{"actual":[],"check":"empty","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"levels and sibling ancestry\", \"actual\": [[\"a\", 1, \"A\", null], [\"b\", 3, \"B\", \"a\"], [\"c\", 3, \"C\", \"a\"], [\"d\", 2, \"D\", \"a\"], [\"e\", 1, \"E\", null]], \"expected\": [[\"a\", 1, \"A\", null], [\"b\", 3, \"B\", \"a\"], [\"c\", 3, \"C\", \"a\"], [\"d\", 2, \"D\", \"a\"], [\"e\", 1, \"E\", null]], \"passed\": true}, {\"check\": \"sort document order\", \"actual\": [[\"b\", 2, \"B\", null], [\"a\", 1, \"A\", null]], \"expected\": [[\"a\", 1, \"A\", null], [\"b\", 2, \"B\", \"a\"]], \"passed\": false}, {\"check\": \"earliest duplicate\", \"actual\": [[\"a\", 1, \"first\", null]], \"expected\": [[\"a\", 1, \"first\", null]], \"passed\": true}, {\"check\": \"visibility and document\", \"actual\": [[\"c\", 2, \"C\", null]], \"expected\": [[\"c\", 2, \"C\", null]], \"passed\": true}, {\"check\": \"level admission\", \"actual\": [[\"z\", 6, \"Z\", null]], \"expected\": [[\"z\", 6, \"Z\", null]], \"passed\": true}, {\"check\": \"trim empty and NBSP\", \"actual\": [[\"b\", 2, \" \", null]], \"expected\": [[\"b\", 2, \" \", null]], \"passed\": true}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.571,"exit_code":0,"observations":[{"actual":[["a",1,"A",null],["b",3,"B","a"],["c",3,"C","a"],["d",2,"D","a"],["e",1,"E",null]],"check":"levels and sibling ancestry","expected":[["a",1,"A",null],["b",3,"B","a"],["c",3,"C","a"],["d",2,"D","a"],["e",1,"E",null]],"passed":true},{"actual":[["a",1,"A",null],["b",2,"B","a"]],"check":"sort document order","expected":[["a",1,"A",null],["b",2,"B","a"]],"passed":true},{"actual":[["a",1,"first",null]],"check":"earliest duplicate","expected":[["a",1,"first",null]],"passed":true},{"actual":[["c",2,"C",null]],"check":"visibility and document","expected":[["c",2,"C",null]],"passed":true},{"actual":[["z",6,"Z",null]],"check":"level admission","expected":[["z",6,"Z",null]],"passed":true},{"actual":[["b",2," ",null]],"check":"trim empty and NBSP","expected":[["b",2," ",null]],"passed":true},{"actual":[],"check":"empty","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"levels and sibling ancestry\", \"actual\": [[\"a\", 1, \"A\", null], [\"b\", 3, \"B\", \"a\"], [\"c\", 3, \"C\", \"a\"], [\"d\", 2, \"D\", \"a\"], [\"e\", 1, \"E\", null]], \"expected\": [[\"a\", 1, \"A\", null], [\"b\", 3, \"B\", \"a\"], [\"c\", 3, \"C\", \"a\"], [\"d\", 2, \"D\", \"a\"], [\"e\", 1, \"E\", null]], \"passed\": true}, {\"check\": \"sort document order\", \"actual\": [[\"a\", 1, \"A\", null], [\"b\", 2, \"B\", \"a\"]], \"expected\": [[\"a\", 1, \"A\", null], [\"b\", 2, \"B\", \"a\"]], \"passed\": true}, {\"check\": \"earliest duplicate\", \"actual\": [[\"a\", 1, \"first\", null]], \"expected\": [[\"a\", 1, \"first\", null]], \"passed\": true}, {\"check\": \"visibility and document\", \"actual\": [[\"c\", 2, \"C\", null]], \"expected\": [[\"c\", 2, \"C\", null]], \"passed\": true}, {\"check\": \"level admission\", \"actual\": [[\"z\", 6, \"Z\", null]], \"expected\": [[\"z\", 6, \"Z\", null]], \"passed\": true}, {\"check\": \"trim empty and NBSP\", \"actual\": [[\"b\", 2, \" \", null]], \"expected\": [[\"b\", 2, \" \", null]], \"passed\": true}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}