{"abstract":"Out-of-range text offsets resolve to the final visual line.","category":"Accessibility interaction semantics","checks":9,"contract":"Input [text,lines,offset,affinity] lines ordered nonoverlapping [start,end,hard_break] in codepoint coordinates. Each line covers half-open text range; an offset on shared line boundary selects next line for forward affinity, previous for backward. Final document-end offset selects final line. Empty text with one empty line is valid. Return [index,start,end,text_segment,hard_break], or None for offsets outside text or gaps. Newline characters are included only if line bounds include them. No text wrapping is performed.","evaluation_group":"s3-accessibility-visual-line-query","failed_approach":"The local repair substitutes if offset < 0: return None\noffset = min(offset,len(text)) but still mishandles the regression fixtures.","family":"s3-accessibility-visual-line-query-past-end-query","id":"FA-54696","implementations":{"attempt":{"sha256":"5b755dc031086ecae6420ccdc1135fc5068fd402b607b0897fb538a62f75ef61","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    text,lines,offset,affinity = data\n    if offset < 0: return None\n    offset = min(offset,len(text))\n    matches = []\n    for i,(start,end,hard) in enumerate(lines):\n        inside = start <= offset < end\n        boundary = offset == end and (affinity == 'backward' or offset == len(text))\n        empty = start == end == offset and len(text) == 0\n        if inside or boundary or empty: matches.append(i)\n    if not matches: return None\n    index = matches[0] if affinity == 'backward' else matches[-1]\n    start,end,hard = lines[index]\n    return [index,start,end,text[start:end],hard]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve(['A'*N+'BC',[[0,N,False],[N,N+2,True]],N,'forward'],), [1,N,N+2,'BC',True])\ncheck('contract fixture 2', solve(['A'*N+'BC',[[0,N,False],[N,N+2,True]],N,'backward'],), [0,0,N,'A'*N,False])\ncheck('contract fixture 3', solve(['abc',[[0,3,False]],3,'forward'],), [0,0,3,'abc',False])\ncheck('contract fixture 4', solve(['a\\nb',[[0,2,True],[2,3,False]],1,'forward'],), [0,0,2,'a\\n',True])\ncheck('contract fixture 5', solve(['abc',[[0,1,False],[2,3,False]],1,'forward'],), None)\ncheck('contract fixture 6', solve(['abc',[[0,3,False]],-1,'backward'],), None)\ncheck('contract fixture 7', solve(['abc',[[0,3,False]],4,'backward'],), None)\ncheck('contract fixture 8', solve(['',[[0,0,False]],0,'forward'],), [0,0,0,'',False])\ncheck('contract fixture 9', solve(['abc',[],0,'forward'],), 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":"fdf1f7598c7d59edc235a3c1135d77586bec21c88d455c448236a917c59c4a0b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    text,lines,offset,affinity = data\n    offset = min(len(text),offset)\n    if offset < 0: return None\n    matches = []\n    for i,(start,end,hard) in enumerate(lines):\n        inside = start <= offset < end\n        boundary = offset == end and (affinity == 'backward' or offset == len(text))\n        empty = start == end == offset and len(text) == 0\n        if inside or boundary or empty: matches.append(i)\n    if not matches: return None\n    index = matches[0] if affinity == 'backward' else matches[-1]\n    start,end,hard = lines[index]\n    return [index,start,end,text[start:end],hard]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve(['A'*N+'BC',[[0,N,False],[N,N+2,True]],N,'forward'],), [1,N,N+2,'BC',True])\ncheck('contract fixture 2', solve(['A'*N+'BC',[[0,N,False],[N,N+2,True]],N,'backward'],), [0,0,N,'A'*N,False])\ncheck('contract fixture 3', solve(['abc',[[0,3,False]],3,'forward'],), [0,0,3,'abc',False])\ncheck('contract fixture 4', solve(['a\\nb',[[0,2,True],[2,3,False]],1,'forward'],), [0,0,2,'a\\n',True])\ncheck('contract fixture 5', solve(['abc',[[0,1,False],[2,3,False]],1,'forward'],), None)\ncheck('contract fixture 6', solve(['abc',[[0,3,False]],-1,'backward'],), None)\ncheck('contract fixture 7', solve(['abc',[[0,3,False]],4,'backward'],), None)\ncheck('contract fixture 8', solve(['',[[0,0,False]],0,'forward'],), [0,0,0,'',False])\ncheck('contract fixture 9', solve(['abc',[],0,'forward'],), 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"},"fixed":{"sha256":"5bd3511058a4540f596756549d23920ba4477c6cd763bc2e38b206815f8b18a1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    text,lines,offset,affinity = data\n    if offset < 0 or offset > len(text): return None\n    matches = []\n    for i,(start,end,hard) in enumerate(lines):\n        inside = start <= offset < end\n        boundary = offset == end and (affinity == 'backward' or offset == len(text))\n        empty = start == end == offset and len(text) == 0\n        if inside or boundary or empty: matches.append(i)\n    if not matches: return None\n    index = matches[0] if affinity == 'backward' else matches[-1]\n    start,end,hard = lines[index]\n    return [index,start,end,text[start:end],hard]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve(['A'*N+'BC',[[0,N,False],[N,N+2,True]],N,'forward'],), [1,N,N+2,'BC',True])\ncheck('contract fixture 2', solve(['A'*N+'BC',[[0,N,False],[N,N+2,True]],N,'backward'],), [0,0,N,'A'*N,False])\ncheck('contract fixture 3', solve(['abc',[[0,3,False]],3,'forward'],), [0,0,3,'abc',False])\ncheck('contract fixture 4', solve(['a\\nb',[[0,2,True],[2,3,False]],1,'forward'],), [0,0,2,'a\\n',True])\ncheck('contract fixture 5', solve(['abc',[[0,1,False],[2,3,False]],1,'forward'],), None)\ncheck('contract fixture 6', solve(['abc',[[0,3,False]],-1,'backward'],), None)\ncheck('contract fixture 7', solve(['abc',[[0,3,False]],4,'backward'],), None)\ncheck('contract fixture 8', solve(['',[[0,0,False]],0,'forward'],), [0,0,0,'',False])\ncheck('contract fixture 9', solve(['abc',[],0,'forward'],), 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":"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-visual-line-query-past-end-query","generated_at":"2026-09-29T14:45:50.818838+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 past end query decision: if offset < 0 or offset > len(text): return None","root_cause":"The past end query decision in the visual line query adapter violates its declared contract.","sha256":"900d25d19461f916d6f1e9b64439544071a7592d600fb9f74b085c49ef24f677","title":"Out-of-range text offsets resolve to the final visual line · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.273,"exit_code":1,"observations":[{"actual":[1,1,3,"BC",true],"check":"contract fixture 1","expected":[1,1,3,"BC",true],"passed":true},{"actual":[0,0,1,"A",false],"check":"contract fixture 2","expected":[0,0,1,"A",false],"passed":true},{"actual":[0,0,3,"abc",false],"check":"contract fixture 3","expected":[0,0,3,"abc",false],"passed":true},{"actual":[0,0,2,"a\n",true],"check":"contract fixture 4","expected":[0,0,2,"a\n",true],"passed":true},{"actual":null,"check":"contract fixture 5","expected":null,"passed":true},{"actual":null,"check":"contract fixture 6","expected":null,"passed":true},{"actual":[0,0,3,"abc",false],"check":"contract fixture 7","expected":null,"passed":false},{"actual":[0,0,0,"",false],"check":"contract fixture 8","expected":[0,0,0,"",false],"passed":true},{"actual":null,"check":"contract fixture 9","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [1, 1, 3, \"BC\", true], \"expected\": [1, 1, 3, \"BC\", true], \"passed\": true}, {\"check\": \"contract fixture 2\", \"actual\": [0, 0, 1, \"A\", false], \"expected\": [0, 0, 1, \"A\", false], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [0, 0, 3, \"abc\", false], \"expected\": [0, 0, 3, \"abc\", false], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": [0, 0, 2, \"a\\n\", true], \"expected\": [0, 0, 2, \"a\\n\", true], \"passed\": true}, {\"check\": \"contract fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 7\", \"actual\": [0, 0, 3, \"abc\", false], \"expected\": null, \"passed\": false}, {\"check\": \"contract fixture 8\", \"actual\": [0, 0, 0, \"\", false], \"expected\": [0, 0, 0, \"\", false], \"passed\": true}, {\"check\": \"contract fixture 9\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.835,"exit_code":1,"observations":[{"actual":[1,1,3,"BC",true],"check":"contract fixture 1","expected":[1,1,3,"BC",true],"passed":true},{"actual":[0,0,1,"A",false],"check":"contract fixture 2","expected":[0,0,1,"A",false],"passed":true},{"actual":[0,0,3,"abc",false],"check":"contract fixture 3","expected":[0,0,3,"abc",false],"passed":true},{"actual":[0,0,2,"a\n",true],"check":"contract fixture 4","expected":[0,0,2,"a\n",true],"passed":true},{"actual":null,"check":"contract fixture 5","expected":null,"passed":true},{"actual":null,"check":"contract fixture 6","expected":null,"passed":true},{"actual":[0,0,3,"abc",false],"check":"contract fixture 7","expected":null,"passed":false},{"actual":[0,0,0,"",false],"check":"contract fixture 8","expected":[0,0,0,"",false],"passed":true},{"actual":null,"check":"contract fixture 9","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [1, 1, 3, \"BC\", true], \"expected\": [1, 1, 3, \"BC\", true], \"passed\": true}, {\"check\": \"contract fixture 2\", \"actual\": [0, 0, 1, \"A\", false], \"expected\": [0, 0, 1, \"A\", false], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [0, 0, 3, \"abc\", false], \"expected\": [0, 0, 3, \"abc\", false], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": [0, 0, 2, \"a\\n\", true], \"expected\": [0, 0, 2, \"a\\n\", true], \"passed\": true}, {\"check\": \"contract fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 7\", \"actual\": [0, 0, 3, \"abc\", false], \"expected\": null, \"passed\": false}, {\"check\": \"contract fixture 8\", \"actual\": [0, 0, 0, \"\", false], \"expected\": [0, 0, 0, \"\", false], \"passed\": true}, {\"check\": \"contract fixture 9\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.75,"exit_code":0,"observations":[{"actual":[1,1,3,"BC",true],"check":"contract fixture 1","expected":[1,1,3,"BC",true],"passed":true},{"actual":[0,0,1,"A",false],"check":"contract fixture 2","expected":[0,0,1,"A",false],"passed":true},{"actual":[0,0,3,"abc",false],"check":"contract fixture 3","expected":[0,0,3,"abc",false],"passed":true},{"actual":[0,0,2,"a\n",true],"check":"contract fixture 4","expected":[0,0,2,"a\n",true],"passed":true},{"actual":null,"check":"contract fixture 5","expected":null,"passed":true},{"actual":null,"check":"contract fixture 6","expected":null,"passed":true},{"actual":null,"check":"contract fixture 7","expected":null,"passed":true},{"actual":[0,0,0,"",false],"check":"contract fixture 8","expected":[0,0,0,"",false],"passed":true},{"actual":null,"check":"contract fixture 9","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [1, 1, 3, \"BC\", true], \"expected\": [1, 1, 3, \"BC\", true], \"passed\": true}, {\"check\": \"contract fixture 2\", \"actual\": [0, 0, 1, \"A\", false], \"expected\": [0, 0, 1, \"A\", false], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [0, 0, 3, \"abc\", false], \"expected\": [0, 0, 3, \"abc\", false], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": [0, 0, 2, \"a\\n\", true], \"expected\": [0, 0, 2, \"a\\n\", true], \"passed\": true}, {\"check\": \"contract fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 7\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 8\", \"actual\": [0, 0, 0, \"\", false], \"expected\": [0, 0, 0, \"\", false], \"passed\": true}, {\"check\": \"contract fixture 9\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}