{"abstract":"Native clipped regions remain semantically hit-testable.","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 if clip is not None and not (clip[0] <= x <= clip[2] and clip[1] <= y <= clip[3]): continue but still mishandles the regression fixtures.","family":"s3-accessibility-platform-hit-adapter-native-clip","id":"FA-54821","implementations":{"attempt":{"sha256":"dcc15ead22d526acb7dbca0dc700f2bd152393338d38311341ae24c2af926f2a","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":"22749c03449c0e74e8b53e8aa9daf9d7af5bebeaa16dcce915be70e77d9c62c1","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 False: 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-native-clip","generated_at":"2026-09-29T14:45:51.839973+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 native clip decision: if clip is not None and not (clip[0] <= x < clip[2] and clip[1] <= y < clip[3]): continue","root_cause":"The native clip decision in the platform hit adapter adapter violates its declared contract.","sha256":"f0b8cd44453beef03e0917921cc04369ac27783fe903bd7d22071f1528e519e6","title":"Native clipped regions remain semantically hit-testable · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.407,"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":null,"check":"contract fixture 5","expected":null,"passed":true},{"actual":["a",[2,2]],"check":"contract fixture 6","expected":null,"passed":false},{"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\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 6\", \"actual\": [\"a\", [2, 2]], \"expected\": null, \"passed\": false}, {\"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"},"broken":{"elapsed_ms":40.936,"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":null,"check":"contract fixture 5","expected":null,"passed":true},{"actual":["a",[2,2]],"check":"contract fixture 6","expected":null,"passed":false},{"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\": null, \"expected\": null, \"passed\": true}, {\"check\": \"contract fixture 6\", \"actual\": [\"a\", [2, 2]], \"expected\": null, \"passed\": false}, {\"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":43.69,"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"}