Fokusorden
Silktide finder elementer, der tilsidesætter den rækkefølge, som tastaturbrugere bevæger sig gennem siden i. Som standard går du med Tab gennem links og formularkontrolelementer i den rækkefølge, de vises i sidens kode; en positiv tabindex-attribut fremtvinger en brugerdefineret rækkefølge, hvilket næsten altid er en fejl.
<!-- Tvinger dette felt til at blive nået før alt andet på siden -->
<input tabindex="1" name="search">
Hvorfor det er vigtigt
Tastaturbrugere forventer, at Tab-tasten bevæger sig gennem en side i en forudsigelig rækkefølge, der svarer til det, de ser. En positiv tabindex overtager den rækkefølge: Fokus springer først til de nummererede elementer og derefter tilbage til alt andet, hvilket kan få til at springe rundt på siden. Det er også skrøbeligt – hvis du senere tilføjer ét nyt element, skal alt nummereres om – og det går ofte i stykker, når sider ændres.
Sådan løser du det
- Fjern positive
tabindex-værdier, og lad den naturlige rækkefølge i bestemme tabuleringsrækkefølgen. - Hvis den naturlige rækkefølge er forvirrende, skal du ændre rækkefølgen på elementerne i din HTML (og bruge CSS til det visuelle layout) i stedet for at dække over det med
tabindex. - De øvrige
tabindex-værdier er stadig fine og markeres ikke:tabindex="0"gør et element fokuserbart med tastaturet i dets naturlige position, hvilket er nyttigt for brugerdefinerede kontrolelementer.tabindex="-1"fjerner et element fra Tab-navigering, hvilket er nyttigt for elementer, der får fokus via script, f.eks. dialogbokse.
Sådan tester Silktide dette
- Find alle elementer på siden med en eksplicit
tabindex-attribut. - Markér hvert element, hvis
tabindexer større end 0, som et sandsynligt problem, der skal bekræftes. - Værdier på 0 og derunder markeres ikke.
Fejlfinding
Vi bruger bevidst positive tabindex-værdier
I sjældne tilfælde kan en sides koderækkefølge reelt ikke svare til dens logiske rækkefølge, og positive tabindex-værdier er den eneste løsning. Hvis du har bekræftet, at tabuleringsrækkefølgen giver mening ved at tabulere gennem siden, kan du markere fundet som tjekket.