Fix "Broken headers attribute reference" in HTML
Why it's a problem
In a complex table, a cell's headers attribute lists the ids of the headers describing it. If an id does not exist in the table (renamed, typo, deleted header), the screen reader reads the value without its header: “1,240” instead of “2026 budget, 1,240”.
How to fix it — HTML
Check that every id in headers matches a header cell (<th>) in the SAME table, and that no cell references itself. For a simple table (one header row and/or column), skip headers entirely: <th scope="col"> and <th scope="row"> are enough.
<table>
<tr><th id="poste">Poste</th><th id="budget-2026">Budget 2026</th></tr>
<tr><th id="audit">Audit</th><td headers="audit budget2026">1 240</td></tr>
</table><table>
<tr><th id="poste">Poste</th><th id="budget-2026">Budget 2026</th></tr>
<tr><th id="audit">Audit</th><td headers="audit budget-2026">1 240</td></tr>
</table>
<!-- Tableau simple : scope suffit, pas besoin de headers -->
<tr><th scope="row">Audit</th><td>1 240</td></tr>Check your site in 30 seconds
Conformly detects this kind of issue across all your pages, continuously, and alerts you on every regression.
Free scan