Yksilölliset seliteyhdistykset
Silktide tarkistaa lomakkeiden selitteet, jotka nimeävät kenttänsä tunnuksen avulla, ja raportoi selitteet, joilla on sama tunnus kuin toisella selitteellä. Jokaisella kentällä tulee olla täsmälleen yksi siihen viittaava selite, jotta se ilmoitetaan aina samalla tavalla.
<label> yhdistetään lomakekenttäänsä asettamalla selitteen for-attribuutin arvoksi kentän id. Kun kaksi tai useampi selite käyttää samaa for-arvoa, ne kaikki viittaavat samaan kenttään – yleensä siksi, että lomake on kopioitu ja liitetty eikä tunnuksia ole koskaan päivitetty.
<!-- Ongelma: molemmat selitteet viittaavat tunnukseen id="name" -->
<label for="name">Nimesi</label>
<input id="name">
<label for="name">Yrityksen nimi</label>
<input id="company">
Miksi tällä on merkitystä
on valittava, mikä selite kentälle ilmoitetaan, ja eri valitsevat eri tavoin – jotkin lukevat ensimmäisen, jotkin molemmat. Samaan aikaan kenttä, jolle toinen selite oli tarkoitettu, jää kokonaan ilman selitettä, joten se ilmoitetaan nimettömänä kenttänä. Selitteen napsauttaminen myös kohdistaa kohdistuksen sen kenttään, joten kävijä, joka napsauttaa tekstiä ”Yrityksen nimi”, saattaa huomata kirjoittavansa väärään kenttään.
Korjaaminen
- Anna jokaiselle lomakekentälle oma yksilöllinen
id. - Kohdista kunkin selitteen
for-attribuutti sen kuvaaman kentän tunnukseen:
<!-- Korjattu: kukin selite viittaa omaan kenttäänsä -->
<label for="name">Nimesi</label>
<input id="name">
<label for="company">Yrityksen nimi</label>
<input id="company">
- Jos useat tekstinosat todella kuvaavat yhtä kenttää, säilytä yksi
<label>ja yhdistä lisätekstiaria-describedby-attribuutilla toisen selitteen sijaan.
Miten Silktide testaa tämän
- Etsi jokaiselta sivulta kaikki
<label>-elementit, joilla onfor-attribuutti. - Ryhmittele selitteet niiden
for-arvon mukaan. - Jos kaksi tai useampi selite käyttää samaa arvoa, raportoi kaikki ryhmän selitteet.
Vianmääritys
Selitteet ovat erillisissä lomakkeissa
Tunnusten on oltava yksilöllisiä koko sivulla, ei vain yhden lomakkeen sisällä. Kaksi samalla sivulla olevaa lomaketta, jotka molemmat sisältävät <label for="email">, ovat silti ristiriidassa keskenään – nimeä tunnukset uudelleen niin, että ne eroavat toisistaan, esimerkiksi signup-email ja newsletter-email.