Celleoverskrifter
Silktide kontrollerer tabellceller som angir overskriftene sine ved hjelp av headers-attributtet, og bekrefter at hver ID de refererer til, faktisk finnes. En referanse til en manglende ID bryter forbindelsen mellom en celle og overskriften uten at det vises noen feilmelding.
I komplekse tabeller kan hver datacelle ha et headers-attributt som inneholder en liste over id-verdiene til overskriftscellene som gjelder for den. Hvis en ID er skrevet feil, eller overskriften den viser til, har fått nytt navn eller blitt fjernet, slutter koblingen stille å fungere.
<!-- Problem: no element with id="prise" exists (typo for "price") -->
<td headers="prise">$40</td>
Hvorfor dette er viktig
En bruker headers-koblinger til å lese opp de riktige overskriftene før hver verdi. Slik kan en person som ikke kan se tabellen, holde oversikt over hva hvert tall betyr. Når en referanse ikke peker på noe, leses cellen opp uten konteksten sin, og lytteren har ingen måte å vite at noe mangler på – tabellen blir ganske enkelt vanskeligere eller umulig å følge.
Brutte referanser oppstår vanligvis over tid: En overskrifts id får nytt navn, en kolonne slettes, eller et genererer ID-er på nytt. Ingenting endres visuelt, så uten automatiske kontroller er det ingen som legger merke til det.
Slik løser du det
- Finn cellens
headers-attributt, og sammenlign hver oppgitte ID medid-attributtene til tabellens overskriftsceller. - Rett eventuelle skrivefeil, eller oppdater listen med overskriftens nåværende
id. - Hvis en referert overskrift ikke lenger finnes, fjerner du den foreldede ID-en fra listen.
- Hvis tabellen er enkel – én rad eller kolonne med overskrifter – bør du vurdere å fjerne
headers-koblingene helt og bruke<th>-celler medscope-attributter i stedet. Disse kan ikke brytes på denne måten.
<!-- Fixed: the reference matches a real heading -->
<th id="price">Price</th>
...
<td headers="price">$40</td>
Slik tester Silktide dette
- Finn hver tabellcelle med et
headers-attributt på hver side. - Del attributtverdien opp i individuelle ID-er.
- Slå opp hver ID hvor som helst på siden.
- Rapporter hver celle som refererer til minst én ID som ikke finnes.
Feilsøking
ID-en finnes, men cellen rapporteres fortsatt
Se etter problemer med nøyaktig samsvar: ID-er skiller mellom store og små bokstaver, så Price og price er forskjellige ID-er. Kontroller også at listen bare er skilt med mellomrom – kommaer eller annen tegnsetting blir en del av ID-en og bryter oppslaget.