Kopteksten van cellen
Silktide controleert tabelcellen die hun kopteksten benoemen met het
headers-attribuut en controleert of elke ID waarnaar ze verwijzen daadwerkelijk
bestaat. Een verwijzing naar een ontbrekende ID verbreekt stilletjes de
verbinding tussen een cel en de bijbehorende koptekst.
In complexe tabellen kan elke gegevenscel een headers-attribuut bevatten met
een lijst van de id-waarden van de koptekstcellen die erop van toepassing
zijn. Als een ID verkeerd is gespeld, of als de koptekst waarnaar deze verwees
is hernoemd of verwijderd, werkt de koppeling stilletjes niet meer.
<!-- Probleem: er bestaat geen element met id="prise" (typefout van "price") -->
<td headers="prise">$40</td>
Waarom dit belangrijk is
Een gebruikt headers-
koppelingen om vóór elke waarde de juiste kopteksten voor te lezen. Zo kan
iemand die de tabel niet kan zien, bijhouden wat elk getal betekent. Wanneer
een verwijzing naar niets wijst, wordt de cel zonder context voorgelezen en
kan de luisteraar niet weten dat er iets ontbreekt. De tabel wordt daardoor
simpelweg moeilijker of onmogelijk te volgen.
Verbroken verwijzingen sluipen meestal na verloop van tijd in een tabel: de
id van een koptekst wordt hernoemd, een kolom wordt verwijderd of een
genereert de ID's opnieuw. Visueel verandert er niets, dus
zonder geautomatiseerde controles merkt niemand het.
Zo lost u dit op
- Zoek het
headers-attribuut van de cel en vergelijk elke vermelde ID met deid-attributen van de koptekstcellen van de tabel. - Corrigeer typefouten of werk de lijst bij met de huidige
idvan de koptekst. - Als een koptekst waarnaar wordt verwezen niet meer bestaat, verwijdert u de verouderde ID uit de lijst.
- Als de tabel eenvoudig is - met één rij of kolom met kopteksten - kunt u
overwegen de
headers-koppelingen volledig te verwijderen en in plaats daarvan<th>-cellen metscope-attributen te gebruiken. Die kunnen op deze manier niet breken.
<!-- Opgelost: de verwijzing komt overeen met een bestaande koptekst -->
<th id="price">Price</th>
...
<td headers="price">$40</td>
Zo test Silktide dit
- Zoek op elke pagina elke tabelcel met een
headers-attribuut. - Splits de waarde van het attribuut op in afzonderlijke ID's.
- Zoek elke ID overal op de pagina op.
- Meld elke cel die verwijst naar ten minste één ID die niet bestaat.
Problemen oplossen
De ID bestaat, maar de cel wordt nog steeds gemeld
Controleer of de waarden exact overeenkomen: ID's zijn hoofdlettergevoelig, dus
Price en price zijn verschillende ID's. Controleer ook of de lijst alleen
met spaties is gescheiden. Komma's of andere leestekens worden onderdeel van
de ID en zorgen ervoor dat de zoekactie mislukt.