Giltiga etikett-ID:n för fragment
Silktide kontrollerar formuläretiketter som hänvisar till ett annat element med hjälp av dess ID och rapporterar etiketter vars ID inte finns någonstans på sidan. En etikett som inte pekar på något kan inte namnge något.
I namnger en <label> ett formulärfält genom att ange fältets id i attributet for. Den här kontrollen verifierar endast att det refererade ID:t finns någonstans på sidan – en kompletterande kontroll, Giltiga etikett-ID:n, går längre och verifierar att målet är ett formulärfält som kan ha en etikett.
<!-- Problem: inget på sidan har id="food" -->
<label for="food">Favoritmat</label>
Varför detta är viktigt
En etikett med en bruten referens gör ingenting: en kan inte koppla den till något fält, så fältet som etiketten var avsedd för att beskriva läses upp utan namn, och när etiketten klickas på fokuseras fältet inte längre. Eftersom sidan ser oförändrad ut uppstår dessa fel vanligtvis obemärkt när ID:n byts namn eller markupp struktureras om, och de upptäcks endast genom automatiserade kontroller.
Så åtgärdar du det
- Hitta elementet som etiketten var avsedd att beskriva och ange elementets exakta
idsom värde för etikettensfor(ID:n är skiftlägeskänsliga):
<!-- Åtgärdat: etiketten pekar på ett verkligt ID -->
<label for="food">Favoritmat</label>
<input type="text" id="food">
- Lägg till ett
idom målelementet saknar ett. - Ta bort etiketten om den är kvar sedan tidigare och inte längre beskriver något.
Så testar Silktide detta
- Hitta varje
<label>-element med ett icke-tomtfor-attribut på varje sida. - Leta efter ett element någonstans på sidan vars
idmatchar. - Rapportera etiketten om inget sådant element finns.