Dupliserte ID-er
Silktide finner sider der den samme id-verdien brukes på mer enn ett
element. ID-er må være unike på en side, fordi alt som refererer til en
ID – skjematiketter, ARIA-relasjoner og lenker på siden – bare kan finne én av
de dupliserte ID-ene.
<!-- Begge inndatafeltene har id="name": hvilket felt beskriver hver etikett? -->
<label for="name">Navnet ditt</label>
<input id="name">
<label for="name">Bedriftsnavn</label>
<input id="name">
Hvorfor dette er viktig
er avhengig av ID-referanser for å koble sammen relaterte elementer.
Når ID-er er duplisert, kan en
lese feil etikett for et skjemafelt, eller ingen etikett i det hele tatt – i eksempelet
over kan begge feltene bli lest opp som «Navnet ditt», slik at brukeren skriver navnet sitt
i bedriftsnavnfeltet. Den samme feilen påvirker -attributter
som aria-labelledby og aria-describedby, samt lenker på siden
som hopper til en #id.
Slik løser du det
- Gi de dupliserte ID-ene nye navn, slik at hver
idpå siden er unik, og oppdater alt som refererte til dem (for-attributter, ARIA-attributter og lenker). - Hvis de dupliserte ID-ene kommer fra en gjentatt komponent – en mal som gjengis flere ganger per side – må du endre malen slik at den genererer unike ID-er, eller bruke klasser i stedet for ID-er som stilkroker når det ikke er nødvendig å referere til dem.
- Hvis en duplikat som er flagget, faktisk er ufarlig i din sammenheng, kan du ignorere funnet.
Slik tester Silktide dette
- Finn alle elementene på siden med et
id-attributt. Elementer inne i SVG-grafikk hoppes over, siden ID-ene deres tilhører en separat kontekst. - Gruppér elementene etter
id-verdien. - Når mer enn ett element har samme
id, flagges hvert av dem.