{"abstract":"Touching an exclusive object boundary counts as a semantic hit.","category":"Accessibility interaction semantics","checks":8,"contract":"Input [window_origin,scroll,point,records,expected_window]. Pointer is screen coordinates. Convert to document coordinates by subtracting window_origin and adding scroll. Records [id,window,rect,z,exposed,transparent,clip,proxy,enabled]; rect and optional clip are [x0,y0,x1,y1], half-open. Zero/reversed rectangles never hit. Reject other windows or unexposed records. Transparent records do not themselves hit. Reject points outside clip. Among hits largest z wins, ties retain first input. Disabled semantics remain inspectable. Return proxy ID when nonempty, else own ID, plus [document_x,document_y]. None when no hit. This is semantic hit selection, not pixel rendering or focus navigation.","evaluation_group":"s3-accessibility-platform-hit-adapter","failed_approach":"The local repair substitutes x0 < x <= x1 and y0 < y <= y1 but still mishandles the regression fixtures.","family":"s3-accessibility-platform-hit-adapter-right-boundary","id":"FA-54816","implementations":{"attempt":{"sha256":"e946a19783707b38bbc5c42d14496c954e85bb07b3660911f2c8f6f19f7de4a4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    origin,scroll,point,records,window = data\n    x,y = point[0]-origin[0]+scroll[0],point[1]-origin[1]+scroll[1]\n    hits = []\n    for index,(ident,owner,rect,z,exposed,transparent,clip,proxy,enabled) in enumerate(records):\n        if owner != window or not exposed or transparent: continue\n        x0,y0,x1,y1 = rect\n        if not (x0 < x <= x1 and y0 < y <= y1): continue\n        if clip is not None and not (clip[0] <= x < clip[2] and clip[1] <= y < clip[3]): continue\n        hits.append((z,-index,proxy if proxy else ident))\n    if not hits: return None\n    return [max(hits,key=lambda hit:(hit[0],hit[1]))[2],[x,y]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve([[N,10],[N+1,3],[N+1,11],[['a','w',[0,0,8,8],1,True,False,None,'',True]],'w'],), ['a',[N+2,4]])\ncheck('contract fixture 2', solve([[0,0],[0,0],[1,1],[['back','w',[0,0,4,4],1,True,False,None,'',True],['front','w',[0,0,4,4],5,True,False,None,'proxy',False]],'w'],), ['proxy',[1,1]])\ncheck('contract fixture 3', solve([[0,0],[0,0],[1,1],[['first','w',[0,0,4,4],2,True,False,None,'',True],['second','w',[0,0,4,4],2,True,False,None,'',True]],'w'],), ['first',[1,1]])\ncheck('contract fixture 4', solve([[0,0],[0,0],[1,1],[['a','other',[0,0,4,4],1,True,False,None,'',True],['b','w',[0,0,4,4],2,False,False,None,'',True],['c','w',[0,0,4,4],3,True,True,None,'',True]],'w'],), None)\ncheck('contract fixture 5', solve([[0,0],[0,0],[4,1],[['a','w',[0,0,4,4],1,True,False,None,'',True]],'w'],), None)\ncheck('contract fixture 6', solve([[0,0],[0,0],[2,2],[['a','w',[0,0,4,4],1,True,False,[0,0,2,2],'',True]],'w'],), None)\ncheck('contract fixture 7', solve([[0,0],[0,0],[0,0],[['a','w',[0,0,4,4],1,True,False,None,'',True]],'w'],), ['a',[0,0]])\ncheck('contract fixture 8', solve([[0,0],[0,0],[1,1],[],'w'],), 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":"9c25ca2778f5c1d66ae65324d4b05e2431ff7c3cf318c7b3c536a4c0eec00f95","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    origin,scroll,point,records,window = data\n    x,y = point[0]-origin[0]+scroll[0],point[1]-origin[1]+scroll[1]\n    hits = []\n    for index,(ident,owner,rect,z,exposed,transparent,clip,proxy,enabled) in enumerate(records):\n        if owner != window or not exposed or transparent: continue\n        x0,y0,x1,y1 = rect\n        if not (x0 <= x <= x1 and y0 <= y <= y1): continue\n        if clip is not None and not (clip[0] <= x < clip[2] and clip[1] <= y < clip[3]): continue\n        hits.append((z,-index,proxy if proxy else ident))\n    if not hits: return None\n    return [max(hits,key=lambda hit:(hit[0],hit[1]))[2],[x,y]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve([[N,10],[N+1,3],[N+1,11],[['a','w',[0,0,8,8],1,True,False,None,'',True]],'w'],), ['a',[N+2,4]])\ncheck('contract fixture 2', solve([[0,0],[0,0],[1,1],[['back','w',[0,0,4,4],1,True,False,None,'',True],['front','w',[0,0,4,4],5,True,False,None,'proxy',False]],'w'],), ['proxy',[1,1]])\ncheck('contract fixture 3', solve([[0,0],[0,0],[1,1],[['first','w',[0,0,4,4],2,True,False,None,'',True],['second','w',[0,0,4,4],2,True,False,None,'',True]],'w'],), ['first',[1,1]])\ncheck('contract fixture 4', solve([[0,0],[0,0],[1,1],[['a','other',[0,0,4,4],1,True,False,None,'',True],['b','w',[0,0,4,4],2,False,False,None,'',True],['c','w',[0,0,4,4],3,True,True,None,'',True]],'w'],), None)\ncheck('contract fixture 5', solve([[0,0],[0,0],[4,1],[['a','w',[0,0,4,4],1,True,False,None,'',True]],'w'],), None)\ncheck('contract fixture 6', solve([[0,0],[0,0],[2,2],[['a','w',[0,0,4,4],1,True,False,[0,0,2,2],'',True]],'w'],), None)\ncheck('contract fixture 7', solve([[0,0],[0,0],[0,0],[['a','w',[0,0,4,4],1,True,False,None,'',True]],'w'],), ['a',[0,0]])\ncheck('contract fixture 8', solve([[0,0],[0,0],[1,1],[],'w'],), 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":"f0de5cfd5d853c2425745a98bc1f6541813d8fa765e0fca7e82b5dd47d52ed6a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    origin,scroll,point,records,window = data\n    x,y = point[0]-origin[0]+scroll[0],point[1]-origin[1]+scroll[1]\n    hits = []\n    for index,(ident,owner,rect,z,exposed,transparent,clip,proxy,enabled) in enumerate(records):\n        if owner != window or not exposed or transparent: continue\n        x0,y0,x1,y1 = rect\n        if not (x0 <= x < x1 and y0 <= y < y1): continue\n        if clip is not None and not (clip[0] <= x < clip[2] and clip[1] <= y < clip[3]): continue\n        hits.append((z,-index,proxy if proxy else ident))\n    if not hits: return None\n    return [max(hits,key=lambda hit:(hit[0],hit[1]))[2],[x,y]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('contract fixture 1', solve([[N,10],[N+1,3],[N+1,11],[['a','w',[0,0,8,8],1,True,False,None,'',True]],'w'],), ['a',[N+2,4]])\ncheck('contract fixture 2', solve([[0,0],[0,0],[1,1],[['back','w',[0,0,4,4],1,True,False,None,'',True],['front','w',[0,0,4,4],5,True,False,None,'proxy',False]],'w'],), ['proxy',[1,1]])\ncheck('contract fixture 3', solve([[0,0],[0,0],[1,1],[['first','w',[0,0,4,4],2,True,False,None,'',True],['second','w',[0,0,4,4],2,True,False,None,'',True]],'w'],), ['first',[1,1]])\ncheck('contract fixture 4', solve([[0,0],[0,0],[1,1],[['a','other',[0,0,4,4],1,True,False,None,'',True],['b','w',[0,0,4,4],2,False,False,None,'',True],['c','w',[0,0,4,4],3,True,True,None,'',True]],'w'],), None)\ncheck('contract fixture 5', solve([[0,0],[0,0],[4,1],[['a','w',[0,0,4,4],1,True,False,None,'',True]],'w'],), None)\ncheck('contract fixture 6', solve([[0,0],[0,0],[2,2],[['a','w',[0,0,4,4],1,True,False,[0,0,2,2],'',True]],'w'],), None)\ncheck('contract fixture 7', solve([[0,0],[0,0],[0,0],[['a','w',[0,0,4,4],1,True,False,None,'',True]],'w'],), ['a',[0,0]])\ncheck('contract fixture 8', solve([[0,0],[0,0],[1,1],[],'w'],), 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-platform-hit-adapter-right-boundary","generated_at":"2026-09-29T14:45:51.803044+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 right boundary decision: x0 <= x < x1 and y0 <= y < y1","root_cause":"The right boundary decision in the platform hit adapter adapter violates its declared contract.","sha256":"ca295f6287dcf2479dd54eb5d43bd6fdd6ad25f0e9c00ca384098b48a36e924f","title":"Touching an exclusive object boundary counts as a semantic hit · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.948,"exit_code":1,"observations":[{"actual":["a",[3,4]],"check":"contract fixture 1","expected":["a",[3,4]],"passed":true},{"actual":["proxy",[1,1]],"check":"contract fixture 2","expected":["proxy",[1,1]],"passed":true},{"actual":["first",[1,1]],"check":"contract fixture 3","expected":["first",[1,1]],"passed":true},{"actual":null,"check":"contract fixture 4","expected":null,"passed":true},{"actual":["a",[4,1]],"check":"contract fixture 5","expected":null,"passed":false},{"actual":null,"check":"contract fixture 6","expected":null,"passed":true},{"actual":null,"check":"contract fixture 7","expected":["a",[0,0]],"passed":false},{"actual":null,"check":"contract fixture 8","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [\"a\", [3, 4]], \"expected\": [\"a\", [3, 4]], \"passed\": true}, {\"check\": \"contract fixture 2\", \"actual\": [\"proxy\", [1, 1]], \"expected\": [\"proxy\", [1, 1]], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [\"first\", [1, 1]], \"expected\": [\"first\", [1, 1]], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 5\", \"actual\": [\"a\", [4, 1]], \"expected\": null, \"passed\": false}, {\"check\": \"contract fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 7\", \"actual\": null, \"expected\": [\"a\", [0, 0]], \"passed\": false}, {\"check\": \"contract fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.159,"exit_code":1,"observations":[{"actual":["a",[3,4]],"check":"contract fixture 1","expected":["a",[3,4]],"passed":true},{"actual":["proxy",[1,1]],"check":"contract fixture 2","expected":["proxy",[1,1]],"passed":true},{"actual":["first",[1,1]],"check":"contract fixture 3","expected":["first",[1,1]],"passed":true},{"actual":null,"check":"contract fixture 4","expected":null,"passed":true},{"actual":["a",[4,1]],"check":"contract fixture 5","expected":null,"passed":false},{"actual":null,"check":"contract fixture 6","expected":null,"passed":true},{"actual":["a",[0,0]],"check":"contract fixture 7","expected":["a",[0,0]],"passed":true},{"actual":null,"check":"contract fixture 8","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [\"a\", [3, 4]], \"expected\": [\"a\", [3, 4]], \"passed\": true}, {\"check\": \"contract fixture 2\", \"actual\": [\"proxy\", [1, 1]], \"expected\": [\"proxy\", [1, 1]], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [\"first\", [1, 1]], \"expected\": [\"first\", [1, 1]], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 5\", \"actual\": [\"a\", [4, 1]], \"expected\": null, \"passed\": false}, {\"check\": \"contract fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 7\", \"actual\": [\"a\", [0, 0]], \"expected\": [\"a\", [0, 0]], \"passed\": true}, {\"check\": \"contract fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.049,"exit_code":0,"observations":[{"actual":["a",[3,4]],"check":"contract fixture 1","expected":["a",[3,4]],"passed":true},{"actual":["proxy",[1,1]],"check":"contract fixture 2","expected":["proxy",[1,1]],"passed":true},{"actual":["first",[1,1]],"check":"contract fixture 3","expected":["first",[1,1]],"passed":true},{"actual":null,"check":"contract fixture 4","expected":null,"passed":true},{"actual":null,"check":"contract fixture 5","expected":null,"passed":true},{"actual":null,"check":"contract fixture 6","expected":null,"passed":true},{"actual":["a",[0,0]],"check":"contract fixture 7","expected":["a",[0,0]],"passed":true},{"actual":null,"check":"contract fixture 8","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"contract fixture 1\", \"actual\": [\"a\", [3, 4]], \"expected\": [\"a\", [3, 4]], \"passed\": true}, {\"check\": \"contract fixture 2\", \"actual\": [\"proxy\", [1, 1]], \"expected\": [\"proxy\", [1, 1]], \"passed\": true}, {\"check\": \"contract fixture 3\", \"actual\": [\"first\", [1, 1]], \"expected\": [\"first\", [1, 1]], \"passed\": true}, {\"check\": \"contract fixture 4\", \"actual\": null, \"expected\": null, \"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\": [\"a\", [0, 0]], \"expected\": [\"a\", [0, 0]], \"passed\": true}, {\"check\": \"contract fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}