Hoppa till innehåll
SilktideHjälp

Föråldrat scope-attribut

Silktide kontrollerar om scope-attribut har placerats på vanliga dataceller i tabeller. Scope-attributet beskriver vad en rubrik gäller för och hör därför endast hemma på rubrikceller. På en datacell är det föråldrat och kan vilseleda hjälpmedel.

I definieras scope för rubrikceller med <th>. Om det placeras på en datacell med <td> betyder det vanligtvis en av två saker: cellen är egentligen en rubrik och bör vara en <th>, eller så finns attributet kvar från gammal kod och bör tas bort.

<!-- Problem: scope på en datacell -->
<td scope="col">Namn</td>

Varför detta är viktigt

En bygger sin bild av en tabell utifrån koden. Ett scope-attribut på en datacell är en motsägelsefull signal: elementet säger "Jag är data" medan attributet säger "Jag etiketterar andra celler". Olika hanterar motsägelsen på olika sätt – vissa ignorerar attributet, andra behandlar cellen som en rubrik – vilket innebär att tabellen kan läsas upp med felaktiga eller inkonsekventa rubriker beroende på vilken programvara besökaren använder.

Så åtgärdar du problemet

Avgör vad cellen egentligen är:

  1. Om den fungerar som en rubrik ändrar du den till en <th> och behåller ett giltigt scope-värde (row, col, rowgroup eller colgroup):
<!-- Åtgärdat: rubriken är en riktig rubrikcell -->
<th scope="col">Namn</th>
  1. Om den innehåller vanliga data tar du bort scope-attributet helt:
<!-- Åtgärdat: vanlig datacell -->
<td>Namn</td>

Så testar Silktide detta

  1. Hitta varje tabellcell på varje sida.
  2. Rapportera varje datacell med <td> som har ett scope-attribut, oavsett dess värde.

Läs mer

Senast uppdaterad

Var den här sidan hjälpsam?