Solujen otsikot
Silktide tarkistaa taulukkosolut, jotka nimeävät otsikkonsa headers-attribuutin avulla, ja varmistaa, että jokainen niiden viittaama ID todella on olemassa. Viittaus puuttuvaan ID:hen katkaisee huomaamatta yhteyden solun ja sen otsikon välillä.
Monimutkaisissa taulukoissa jokaisella tietosolulla voi olla headers-attribuutti, jossa luetellaan siihen liittyvien otsikkosolujen id-arvot. Jos ID:ssä on kirjoitusvirhe tai otsikko, johon se viittasi, on nimetty uudelleen tai poistettu, yhteys lakkaa toimimasta huomaamatta.
<!-- Ongelma: elementtiä id="prise" ei ole olemassa (kirjoitusvirhe sanasta "price") -->
<td headers="prise">$40</td>
Miksi tämä on tärkeää
käyttää headers-yhteyksiä ilmoittaakseen oikeat otsikot ennen jokaista arvoa. Näin henkilö, joka ei näe taulukkoa, pysyy kärryillä siitä, mitä kukin numero tarkoittaa. Kun viittaus ei osoita mihinkään, solu ilmoitetaan ilman asiayhteyttä, eikä kuuntelijalla ole mitään tapaa tietää, että jotain puuttuu – taulukkoa on yksinkertaisesti vaikeampi tai mahdoton seurata.
Rikkinäisiä viittauksia syntyy yleensä ajan myötä: otsikon id nimetään uudelleen, sarake poistetaan tai luo ID:t uudelleen. Mikään ei muutu visuaalisesti, joten ilman automatisoitua tarkistusta kukaan ei huomaa ongelmaa.
Korjaaminen
- Etsi solun
headers-attribuutti ja vertaa jokaista lueteltua ID:tä taulukon otsikkosolujenid-attribuutteihin. - Korjaa mahdolliset kirjoitusvirheet tai päivitä luettelo vastaamaan otsikon nykyistä
id-arvoa. - Jos viitattua otsikkoa ei enää ole, poista vanhentunut ID luettelosta.
- Jos taulukko on yksinkertainen – yksi otsikkorivi tai -sarake – harkitse
headers-yhteyksien poistamista kokonaan ja käytä sen sijaan<th>-solujascope-attribuuttien kanssa. Ne eivät voi rikkoutua tällä tavalla.
<!-- Korjattu: viittaus vastaa olemassa olevaa otsikkoa -->
<th id="price">Hinta</th>
...
<td headers="price">$40</td>
Näin Silktide testaa tämän
- Etsi jokaiselta sivulta jokainen taulukkosolu, jolla on
headers-attribuutti. - Jaa attribuutin arvo yksittäisiksi ID:iksi.
- Hae jokainen ID mistä tahansa sivulta.
- Ilmoita jokainen solu, joka viittaa vähintään yhteen ID:hen, jota ei ole olemassa.
Vianmääritys
ID on olemassa, mutta solu ilmoitetaan silti
Tarkista tarkkaa vastaavuutta koskevat ongelmat: ID:t erottelevat isot ja pienet kirjaimet, joten Price ja price ovat eri ID:itä. Varmista myös, että luettelon arvot on erotettu vain välilyönneillä – pilkut tai muut välimerkit muuttuvat osaksi ID:tä ja rikkovat haun.