Forældet scope-attribut
Silktide tjekker for scope-attributter på almindelige dataceller i tabeller. scope-attributten beskriver, hvad en overskrift gælder for, så den hører kun til på overskriftsceller. På en datacelle er den forældet og kan vildlede hjælpeteknologi.
I er scope defineret for <th>-overskriftsceller.
Hvis den sættes på en <td>-datacelle, betyder det som regel én af to ting:
Cellen er i virkeligheden en overskrift og bør være en <th>, eller attributten
er efterladt fra gammel markup og bør fjernes.
<!-- Problem: scope på en datacelle -->
<td scope="col">Navn</td>
Hvorfor det er vigtigt
En danner sit billede af en
tabel ud fra markup. En scope-attribut på en datacelle er et modstridende
signal: Elementet siger "Jeg er data", mens attributten siger "Jeg mærker andre
celler". Forskellige løser denne modstrid
forskelligt – nogle ignorerer attributten, mens andre behandler cellen som en overskrift –
så tabellen kan blive annonceret med forkerte eller inkonsekvente overskrifter, afhængigt
af hvilken software den besøgende bruger.
Sådan løser du det
Afgør, hvad cellen reelt er:
- Hvis den fungerer som en overskrift, skal du ændre den til en
<th>og beholde en gyldigscope-værdi (row,col,rowgroupellercolgroup):
<!-- Løst: overskriften er en rigtig overskriftscelle -->
<th scope="col">Navn</th>
- Hvis det er almindelige data, skal du fjerne
scope-attributten helt:
<!-- Løst: almindelig datacelle -->
<td>Navn</td>
Sådan tester Silktide dette
- Find alle tabelceller på hver side.
- Rapportér hver
<td>-datacelle, der har enscope-attribut, uanset dens værdi.