Fokusordning
Silktide hittar element som åsidosätter den ordning som tangentbordsanvändare
förflyttar sig genom sidan i. Som standard går Tab-tangenten igenom länkar och
formulärkontroller i den ordning de visas i sidans kod. Ett positivt tabindex
-attribut tvingar fram en anpassad ordning, vilket nästan alltid är ett
misstag.
<!-- Gör att det här fältet nås före allt annat på sidan -->
<input tabindex="1" name="search">
Varför detta är viktigt
Tangentbordsanvändare förväntar sig att Tab-tangenten flyttar sig genom en sida
i en förutsägbar ordning som överensstämmer med det de ser. Ett positivt
tabindex kapar den ordningen: fokus hoppar först till de numrerade elementen
och sedan tillbaka till allt annat, vilket kan få
att hoppa runt på sidan. Det är också skört – om ett nytt element läggs till
senare måste allt numreras om – och det slutar ofta fungera när sidor ändras.
Så här åtgärdar du det
- Ta bort positiva
tabindex-värden och låt den naturliga ordningen i avgöra tabbningens ordning. - Om den naturliga ordningen är förvirrande kan du ändra ordningen på elementen
i din HTML (använd CSS för den visuella layouten) i stället för att försöka
dölja problemet med
tabindex. - De andra
tabindex-värdena är fortfarande giltiga och flaggas inte:tabindex="0"gör ett element fokuserbart med tangentbordet på sin naturliga plats, vilket är användbart för anpassade kontroller.tabindex="-1"tar bort ett element från Tab-navigeringen, vilket är användbart för element som fokuseras av ett skript, till exempel dialogrutor.
Så här testar Silktide detta
- Hitta alla element på sidan som har ett uttryckligt
tabindex-attribut. - Flagga varje element vars
tabindexär större än 0 som ett möjligt problem som du behöver bekräfta. - Värden på 0 eller lägre flaggas inte.
Felsökning
Vi använder positiva tabindex-värden avsiktligt
I sällsynta fall kan sidans kodordning verkligen inte överensstämma med den
logiska ordningen, och positiva tabindex-värden är den enda lösningen. Om du
har kontrollerat att tabbningens ordning är logisk genom att tabba dig genom
sidan kan du markera resultatet som kontrollerat.