{"abstract":"An explicit empty native label falls back to content.","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":"Using the missing-label case ignores real labels.","family":"xi-accessible-name-native-empty","id":"FA-8441","implementations":{"attempt":{"sha256":"6f5f93f99a0495f7f648f9ae2db021fcb3001e775e219f24882787bf09935c0f","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 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":"cf93198b0ebbc1cd28f3cb797e22fe06f6ac2ea3fd8ba6161c7dfce9cb4de75f","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: 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-native-empty","generated_at":"2026-09-29T14:38:21.380849+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 native empty operation as `if native_label is not None:`.","root_cause":"The native empty operation uses `if native_label:` where the contract requires `if native_label is not None:`.","sha256":"e8e5f3b0496d84fddb8ec04dbc1c11ebb944e5eec869d8003f0c24eefa2ceef7","title":"Accessible name precedence: An explicit empty native label falls back to content · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.268,"exit_code":1,"observations":[{"actual":"Zulu Alpha","check":"reference order","expected":"Zulu Alpha","passed":true},{"actual":"","check":"aria empty","expected":"","passed":true},{"actual":"body","check":"native empty","expected":"","passed":false},{"actual":null,"check":"hidden","expected":"","passed":false},{"actual":null,"check":"visible","expected":"visible","passed":false},{"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":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\": \"body\", \"expected\": \"\", \"passed\": false}, {\"check\": \"hidden\", \"actual\": null, \"expected\": \"\", \"passed\": false}, {\"check\": \"visible\", \"actual\": null, \"expected\": \"visible\", \"passed\": false}, {\"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\": false}\n"},"broken":{"elapsed_ms":36.307,"exit_code":1,"observations":[{"actual":"Zulu Alpha","check":"reference order","expected":"Zulu Alpha","passed":true},{"actual":"","check":"aria empty","expected":"","passed":true},{"actual":"body","check":"native empty","expected":"","passed":false},{"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":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\": \"body\", \"expected\": \"\", \"passed\": false}, {\"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\": false}\n"},"fixed":{"elapsed_ms":36.71,"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"}