Gültige Label-IDs für Fragmente
Silktide prüft Formular-Labels, die per ID auf ein anderes Element verweisen, und meldet Labels, deren ID nirgends auf der Seite existiert. Ein Label, das auf nichts zeigt, kann nichts benennen.
In benennt ein <label> ein Formularfeld, indem sein Attribut for auf die id des Feldes gesetzt wird. Diese Prüfung stellt nur sicher, dass die referenzierte ID irgendwo auf der Seite existiert – eine begleitende Prüfung, Gültige Label-IDs, geht weiter und prüft, ob das Ziel ein Formularfeld ist, das ein Label annehmen kann.
<!-- Problem: Nichts auf der Seite hat die id="food" -->
<label for="food">Lieblingsessen</label>
Warum das wichtig ist
Ein Label mit einer defekten Referenz bewirkt nichts: Ein kann es keinem Feld zuordnen, sodass das Feld, für das das Label gedacht war, ohne Namen angekündigt wird, und ein Klick auf das Label fokussiert es nicht mehr. Da die Seite unverändert aussieht, treten diese Fehler oft unbemerkt auf, wenn IDs umbenannt oder das Markup umstrukturiert wird; nur eine automatisierte Prüfung erkennt sie.
So beheben Sie das Problem
- Suchen Sie das Element, das das Label beschreiben sollte, und setzen Sie den
for-Wert des Labels exakt auf dieiddieses Elements (IDs unterscheiden Groß- und Kleinschreibung):
<!-- Behoben: Das Label verweist auf eine reale ID -->
<label for="food">Lieblingsessen</label>
<input type="text" id="food">
- Falls dem Zielelement seine
idfehlt, fügen Sie eine hinzu. - Wenn das Label veraltet ist und nichts mehr beschreibt, entfernen Sie es.
So prüft Silktide das
- Auf jeder Seite alle
<label>-Elemente mit einem nicht-leerenfor-Attribut finden. - Nach einem Element irgendwo auf der Seite suchen, dessen
idübereinstimmt. - Das Label melden, wenn kein solches Element existiert.