{"abstract":"Empty referenced labels are dropped and precedence changes.","category":"Assistive semantics","checks":8,"contract":"Resolve existing labelledby references in order, including explicit empty labels; then aria-label, native label, and visible content; explicit labels take precedence over fallback content.","evaluation_group":"xi-accessible-name","failed_approach":"Keeping only the first ID ignores other label references.","family":"xi-accessible-name-missing-reference","id":"FA-8451","implementations":{"attempt":{"sha256":"d02bbc29d77e31b35bf42cc11a77bb5423f2d2c8cdf22b80973207f5fad9026a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(labelledby, nodes, aria_label, native_label, content, hidden):\n    referenced = [nodes[x] for x in labelledby if x in nodes and x == labelledby[0]]\n    if referenced: return ' '.join(referenced)\n    if aria_label is not None: return aria_label\n    if native_label is not None: return native_label\n    if hidden: return ''\n    return content\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('reference order', solve(['z','a'], {'z':'Zulu','a':'Alpha'}, 'fallback', 'native', 'body', False), 'Zulu Alpha')\ncheck('aria empty', solve([], {}, '', 'native', 'body', False), '')\ncheck('native empty', solve([], {}, None, '', 'body', False), '')\ncheck('hidden', solve([], {}, None, None, 'secret', True), '')\ncheck('visible', solve([], {}, None, None, 'visible', False), 'visible')\ncheck('empty reference', solve(['missing','empty'], {'empty':''}, 'fallback', None, 'body', False), '')\ncheck('parameterized label content', solve([], {}, 'label'+str(N), None, 'body', False), 'label'+str(N))\nfor repetition in range(N):\n    check('repeat empty reference', solve(['missing','empty'], {'empty':''}, 'fallback', None, 'body', False), '')\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":"ff41db31bd51ca44445b12c8f2faa92d74d8c16b7692c6f02f82d456f9be4907","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(labelledby, nodes, aria_label, native_label, content, hidden):\n    referenced = [nodes[x] for x in labelledby if x in nodes and nodes[x]]\n    if referenced: return ' '.join(referenced)\n    if aria_label is not None: return aria_label\n    if native_label is not None: return native_label\n    if hidden: return ''\n    return content\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('reference order', solve(['z','a'], {'z':'Zulu','a':'Alpha'}, 'fallback', 'native', 'body', False), 'Zulu Alpha')\ncheck('aria empty', solve([], {}, '', 'native', 'body', False), '')\ncheck('native empty', solve([], {}, None, '', 'body', False), '')\ncheck('hidden', solve([], {}, None, None, 'secret', True), '')\ncheck('visible', solve([], {}, None, None, 'visible', False), 'visible')\ncheck('empty reference', solve(['missing','empty'], {'empty':''}, 'fallback', None, 'body', False), '')\ncheck('parameterized label content', solve([], {}, 'label'+str(N), None, 'body', False), 'label'+str(N))\nfor repetition in range(N):\n    check('repeat empty reference', solve(['missing','empty'], {'empty':''}, 'fallback', None, 'body', False), '')\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":"4a8117238ad2ac80817d300f0e91664c1ddb47df852ab045ba134c325fc2746f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(labelledby, nodes, aria_label, native_label, content, hidden):\n    referenced = [nodes[x] for x in labelledby if x in nodes]\n    if referenced: return ' '.join(referenced)\n    if aria_label is not None: return aria_label\n    if native_label is not None: return native_label\n    if hidden: return ''\n    return content\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('reference order', solve(['z','a'], {'z':'Zulu','a':'Alpha'}, 'fallback', 'native', 'body', False), 'Zulu Alpha')\ncheck('aria empty', solve([], {}, '', 'native', 'body', False), '')\ncheck('native empty', solve([], {}, None, '', 'body', False), '')\ncheck('hidden', solve([], {}, None, None, 'secret', True), '')\ncheck('visible', solve([], {}, None, None, 'visible', False), 'visible')\ncheck('empty reference', solve(['missing','empty'], {'empty':''}, 'fallback', None, 'body', False), '')\ncheck('parameterized label content', solve([], {}, 'label'+str(N), None, 'body', False), 'label'+str(N))\nfor repetition in range(N):\n    check('repeat empty reference', solve(['missing','empty'], {'empty':''}, 'fallback', None, 'body', False), '')\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":"xi-accessible-name-missing-reference","generated_at":"2026-09-29T14:38:21.422309+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic model of accessible name precedence; this isolates one interface invariant without requiring a browser.","repair":"Implement the missing reference operation as `if x in nodes`.","root_cause":"The missing reference operation uses `if x in nodes and nodes[x]` where the contract requires `if x in nodes`.","sha256":"8ca0f41060e2bb2e710bfeaaeee1d2e6c1950ad845cfffdd01b12f8145161355","title":"Accessible name precedence: Empty referenced labels are dropped and precedence changes · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.284,"exit_code":1,"observations":[{"actual":"Zulu","check":"reference order","expected":"Zulu Alpha","passed":false},{"actual":"","check":"aria empty","expected":"","passed":true},{"actual":"","check":"native empty","expected":"","passed":true},{"actual":"","check":"hidden","expected":"","passed":true},{"actual":"visible","check":"visible","expected":"visible","passed":true},{"actual":"fallback","check":"empty reference","expected":"","passed":false},{"actual":"label1","check":"parameterized label content","expected":"label1","passed":true},{"actual":"fallback","check":"repeat empty reference","expected":"","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"reference order\", \"actual\": \"Zulu\", \"expected\": \"Zulu Alpha\", \"passed\": false}, {\"check\": \"aria empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"native empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"hidden\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"visible\", \"actual\": \"visible\", \"expected\": \"visible\", \"passed\": true}, {\"check\": \"empty reference\", \"actual\": \"fallback\", \"expected\": \"\", \"passed\": false}, {\"check\": \"parameterized label content\", \"actual\": \"label1\", \"expected\": \"label1\", \"passed\": true}, {\"check\": \"repeat empty reference\", \"actual\": \"fallback\", \"expected\": \"\", \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.337,"exit_code":1,"observations":[{"actual":"Zulu Alpha","check":"reference order","expected":"Zulu Alpha","passed":true},{"actual":"","check":"aria empty","expected":"","passed":true},{"actual":"","check":"native empty","expected":"","passed":true},{"actual":"","check":"hidden","expected":"","passed":true},{"actual":"visible","check":"visible","expected":"visible","passed":true},{"actual":"fallback","check":"empty reference","expected":"","passed":false},{"actual":"label1","check":"parameterized label content","expected":"label1","passed":true},{"actual":"fallback","check":"repeat empty reference","expected":"","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"reference order\", \"actual\": \"Zulu Alpha\", \"expected\": \"Zulu Alpha\", \"passed\": true}, {\"check\": \"aria empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"native empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"hidden\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"visible\", \"actual\": \"visible\", \"expected\": \"visible\", \"passed\": true}, {\"check\": \"empty reference\", \"actual\": \"fallback\", \"expected\": \"\", \"passed\": false}, {\"check\": \"parameterized label content\", \"actual\": \"label1\", \"expected\": \"label1\", \"passed\": true}, {\"check\": \"repeat empty reference\", \"actual\": \"fallback\", \"expected\": \"\", \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.229,"exit_code":0,"observations":[{"actual":"Zulu Alpha","check":"reference order","expected":"Zulu Alpha","passed":true},{"actual":"","check":"aria empty","expected":"","passed":true},{"actual":"","check":"native empty","expected":"","passed":true},{"actual":"","check":"hidden","expected":"","passed":true},{"actual":"visible","check":"visible","expected":"visible","passed":true},{"actual":"","check":"empty reference","expected":"","passed":true},{"actual":"label1","check":"parameterized label content","expected":"label1","passed":true},{"actual":"","check":"repeat empty reference","expected":"","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"reference order\", \"actual\": \"Zulu Alpha\", \"expected\": \"Zulu Alpha\", \"passed\": true}, {\"check\": \"aria empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"native empty\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"hidden\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"visible\", \"actual\": \"visible\", \"expected\": \"visible\", \"passed\": true}, {\"check\": \"empty reference\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"parameterized label content\", \"actual\": \"label1\", \"expected\": \"label1\", \"passed\": true}, {\"check\": \"repeat empty reference\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}