{"abstract":"The first rendered row is announced as item one even when earlier items are offscreen.","category":"Accessibility interaction semantics","checks":6,"contract":"Return [identifier,one_based_position,total] for a contiguous rendered window at zero-based offset. total is the full known dataset size or -1 for unknown; fixtures have valid offsets and known totals large enough for the window. An empty window returns [].","evaluation_group":"model-4eec5e231b9cb1d9","failed_approach":"Adding the global offset fixes positions but reporting the window end as total understates a known larger dataset and fabricates unknown totals.","family":"z-accessibility-virtual-item-position","id":"FA-11416","implementations":{"attempt":{"sha256":"329ead03919efaa1c74bb3bf5814177d3a7ae0f7ef1fe39b3dc0f79ff28a64f5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(items, offset, total):\n    return [[item,offset+i+1,offset+len(items)] for i,item in enumerate(items)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('middle window', solve(['a','b'], N, N+10), [['a',N+1,N+10],['b',N+2,N+10]])\ncheck('unknown total', solve(['a'], N, -1), [['a',N+1,-1]])\ncheck('first window', solve([str(N)], 0, N+5), [[str(N),1,N+5]])\ncheck('last window', solve(['a'], N, N+1), [['a',N+1,N+1]])\ncheck('whole set', solve(['a','b'], 0, 2), [['a',1,2],['b',2,2]])\ncheck('empty unknown', solve([], N, -1), [])\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":"1924fcc2a26ffa5b7227c1ae9b614fd3950d3b7b5098f2acd5e9a99ccbf3f94c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(items, offset, total):\n    return [[item,i+1,len(items)] for i,item in enumerate(items)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('middle window', solve(['a','b'], N, N+10), [['a',N+1,N+10],['b',N+2,N+10]])\ncheck('unknown total', solve(['a'], N, -1), [['a',N+1,-1]])\ncheck('first window', solve([str(N)], 0, N+5), [[str(N),1,N+5]])\ncheck('last window', solve(['a'], N, N+1), [['a',N+1,N+1]])\ncheck('whole set', solve(['a','b'], 0, 2), [['a',1,2],['b',2,2]])\ncheck('empty unknown', solve([], N, -1), [])\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":"b78e0d61818d324ff06fb68cb80f60ef864546c59d506b4d72ca3dc22be25989","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(items, offset, total):\n    return [[item,offset+i+1,total] for i,item in enumerate(items)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('middle window', solve(['a','b'], N, N+10), [['a',N+1,N+10],['b',N+2,N+10]])\ncheck('unknown total', solve(['a'], N, -1), [['a',N+1,-1]])\ncheck('first window', solve([str(N)], 0, N+5), [[str(N),1,N+5]])\ncheck('last window', solve(['a'], N, N+1), [['a',N+1,N+1]])\ncheck('whole set', solve(['a','b'], 0, 2), [['a',1,2],['b',2,2]])\ncheck('empty unknown', solve([], N, -1), [])\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":" 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":"z-accessibility-virtual-item-position","generated_at":"2026-09-29T14:38:47.773207+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A controlled offline accessibility-data model. It isolates the stated contract; it does not simulate browser accessibility APIs or claim full ARIA conformance.","repair":"Offset one-based positions and carry the declared total, including the unknown-total sentinel.","root_cause":"Rendered row index and rendered window length replace logical dataset index and total.","sha256":"e5665bf3d6c3f2671b1c2e7c3899d845b5cef9d7c2634f8f8d8bafcca4794e58","title":"A virtual window reports local positions as global set positions · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.416,"exit_code":1,"observations":[{"actual":[["a",2,3],["b",3,3]],"check":"middle window","expected":[["a",2,11],["b",3,11]],"passed":false},{"actual":[["a",2,2]],"check":"unknown total","expected":[["a",2,-1]],"passed":false},{"actual":[["1",1,1]],"check":"first window","expected":[["1",1,6]],"passed":false},{"actual":[["a",2,2]],"check":"last window","expected":[["a",2,2]],"passed":true},{"actual":[["a",1,2],["b",2,2]],"check":"whole set","expected":[["a",1,2],["b",2,2]],"passed":true},{"actual":[],"check":"empty unknown","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"middle window\", \"actual\": [[\"a\", 2, 3], [\"b\", 3, 3]], \"expected\": [[\"a\", 2, 11], [\"b\", 3, 11]], \"passed\": false}, {\"check\": \"unknown total\", \"actual\": [[\"a\", 2, 2]], \"expected\": [[\"a\", 2, -1]], \"passed\": false}, {\"check\": \"first window\", \"actual\": [[\"1\", 1, 1]], \"expected\": [[\"1\", 1, 6]], \"passed\": false}, {\"check\": \"last window\", \"actual\": [[\"a\", 2, 2]], \"expected\": [[\"a\", 2, 2]], \"passed\": true}, {\"check\": \"whole set\", \"actual\": [[\"a\", 1, 2], [\"b\", 2, 2]], \"expected\": [[\"a\", 1, 2], [\"b\", 2, 2]], \"passed\": true}, {\"check\": \"empty unknown\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.895,"exit_code":1,"observations":[{"actual":[["a",1,2],["b",2,2]],"check":"middle window","expected":[["a",2,11],["b",3,11]],"passed":false},{"actual":[["a",1,1]],"check":"unknown total","expected":[["a",2,-1]],"passed":false},{"actual":[["1",1,1]],"check":"first window","expected":[["1",1,6]],"passed":false},{"actual":[["a",1,1]],"check":"last window","expected":[["a",2,2]],"passed":false},{"actual":[["a",1,2],["b",2,2]],"check":"whole set","expected":[["a",1,2],["b",2,2]],"passed":true},{"actual":[],"check":"empty unknown","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"middle window\", \"actual\": [[\"a\", 1, 2], [\"b\", 2, 2]], \"expected\": [[\"a\", 2, 11], [\"b\", 3, 11]], \"passed\": false}, {\"check\": \"unknown total\", \"actual\": [[\"a\", 1, 1]], \"expected\": [[\"a\", 2, -1]], \"passed\": false}, {\"check\": \"first window\", \"actual\": [[\"1\", 1, 1]], \"expected\": [[\"1\", 1, 6]], \"passed\": false}, {\"check\": \"last window\", \"actual\": [[\"a\", 1, 1]], \"expected\": [[\"a\", 2, 2]], \"passed\": false}, {\"check\": \"whole set\", \"actual\": [[\"a\", 1, 2], [\"b\", 2, 2]], \"expected\": [[\"a\", 1, 2], [\"b\", 2, 2]], \"passed\": true}, {\"check\": \"empty unknown\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.622,"exit_code":0,"observations":[{"actual":[["a",2,11],["b",3,11]],"check":"middle window","expected":[["a",2,11],["b",3,11]],"passed":true},{"actual":[["a",2,-1]],"check":"unknown total","expected":[["a",2,-1]],"passed":true},{"actual":[["1",1,6]],"check":"first window","expected":[["1",1,6]],"passed":true},{"actual":[["a",2,2]],"check":"last window","expected":[["a",2,2]],"passed":true},{"actual":[["a",1,2],["b",2,2]],"check":"whole set","expected":[["a",1,2],["b",2,2]],"passed":true},{"actual":[],"check":"empty unknown","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"middle window\", \"actual\": [[\"a\", 2, 11], [\"b\", 3, 11]], \"expected\": [[\"a\", 2, 11], [\"b\", 3, 11]], \"passed\": true}, {\"check\": \"unknown total\", \"actual\": [[\"a\", 2, -1]], \"expected\": [[\"a\", 2, -1]], \"passed\": true}, {\"check\": \"first window\", \"actual\": [[\"1\", 1, 6]], \"expected\": [[\"1\", 1, 6]], \"passed\": true}, {\"check\": \"last window\", \"actual\": [[\"a\", 2, 2]], \"expected\": [[\"a\", 2, 2]], \"passed\": true}, {\"check\": \"whole set\", \"actual\": [[\"a\", 1, 2], [\"b\", 2, 2]], \"expected\": [[\"a\", 1, 2], [\"b\", 2, 2]], \"passed\": true}, {\"check\": \"empty unknown\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}