Stikkord: 1.3.1, headers, id, scope, skjermleser, tabell, th
th, Scope og caption
beskrives i enkle datatabeller. I mer kompliserte tabeller kan det også være nødvendig å bruke andre teknikker.
Vis Skjermlesere og tabeller
HUSK: prøv alltid å utforme tabellene så enkelt som mulig! Selv god tilgjengelighetskoding kompenserer ikke for uoversiktelig tabellstruktur. Vurder for eksempel om du kan:
- Dele tabellen i mindre og enklere tabeller
- Flytte overskrifter/informasjon som ikke hører til dataene ut av tabellen
- …
For å oppfylle SK 1.3.1 i WCAG skal det være mulig å bestemme «programmeringsmessig» hvilke relasjoner som hører til en datacelle. Litt forenklet kan vi si at en maskin skal kunne bestemme hvilke tabelloverskrifter som trengs for å skjønne verdien i datacellene. For eksempel skal en skjermleser kunne lese opp riktige ledetekster, så verdiene blir forståelige.
Nedenfor er den samme tabellen merket på tre ulike måter: ingen rad- eller kolonneoverskrifter, doble kolonneoverskrifter og doble kolonneoverskrifter med headers og id
.
I første kolonne finner vi produkter: først kolonneoverskriften som går over to rader, deretter epler og pærer. I første rad finner vi i tillegg to årstall som igjen er delt inn i fire kvartaler i rad to. Hvordan tabellene leses opp kan du eventuelt sjekke med forskjellige skjermlesere. Jeg har lagt inn demoer med Jaws for å vise hvordan ulik koding kan resultere i ulik opplesing av tabellen.
Tabell uten rad- og kolonneoverskrifter
Det er vanskelig å skjønne datatabeller uten bruk av tabelloverskrifter for de som bruker skjermleser. I praksis leses bare en celle av gangen, og da er det viktig at verdien kan kobles til riktig rad- og kolonneoverskrift. Tabellen nedenfor er så liten at mange skjermleserbrukere nok kan klare å finne ut av den, men det er mer krevende enn hvis tabellen er riktig merket.
-
Vis tabell uten rad og kolonneoverskrifter
Produkt |
2011 |
2012 |
1. kvartal |
2. kvartal |
3. kvartal |
4. kvartal |
1. kvartal |
2. kvartal |
3. kvartal |
4. kvartal |
Eple |
18
|
20
|
20
|
18
|
30
|
25
|
60
|
65
|
Pære |
20
|
25
|
40
|
25
|
21
|
25
|
38
|
30
|
-
Vis HTML-kode
<table border="0" width="764">
<tbody>
<tr>
<td style="text-align: bottom; vertical-align:bottom; padding-bottom: 7px;" rowspan="2" width="98">Produkt</td>
<td colspan="4" height="42">2011</td>
<td colspan="4">2012</td>
</tr>
<tr>
<td width="68" height="38">1. kvartal</td>
<td width="71">2. kvartal</td>
<td width="81">3. kvartal</td>
<td width="81">4. kvartal</td>
<td width="81">1. kvartal</td>
<td width="81">2. kvartal</td>
<td width="81">3. kvartal</td>
<td width="84">4. kvartal</td>
</tr>
<tr>
<td>Eple</td>
<td>
<div align="right">18</div></td>
<td>
<div align="right">20</div></td>
<td>
<div align="right">20</div></td>
<td>
<div align="right">18</div></td>
<td>
<div align="right">30</div></td>
<td>
<div align="right">25</div></td>
<td>
<div align="right">60</div></td>
<td>
<div align="right">65</div></td>
</tr>
<tr>
<td>Pære</td>
<td>
<div align="right">20</div></td>
<td>
<div align="right">25</div></td>
<td>
<div align="right">40</div></td>
<td>
<div align="right">25</div></td>
<td>
<div align="right">21</div></td>
<td>
<div align="right">25</div></td>
<td>
<div align="right">38</div></td>
<td>
<div align="right">30</div></td>
</tr>
</tbody>
</table>
-
Vis tabellen med Jaws
Tabell med doble kolonneoverskrifter
Vanligvis skal det fungere bra med kun rad- og kolonneoverskrifter, dvs. th
. Teknikken kan kombineres med headers
og id
(se neste avsnitt), men denne teknikken anbefales normalt ikke.
-
Vis tabell med doble kolonneoverskrifter
Antall tonn frukt solgt i 2011 og 2012
Produkt |
2011 |
2012 |
1. kvartal |
2. kvartal |
3. kvartal |
4. kvartal |
1. kvartal |
2. kvartal |
3. kvartal |
4. kvartal |
Eple |
18
|
20
|
20
|
18
|
30
|
25
|
60
|
65
|
Pære |
20
|
25
|
40
|
25
|
21
|
25
|
38
|
30
|
-
Vis HTML-kode
<table border="0" width="764"><caption>Antall tonn frukt solgt i 2011 og 2012</caption>
<tbody>
<tr>
<th style="text-align: bottom; vertical-align:bottom; padding-bottom: 14px;" rowspan="2" scope="col" width="98">Produkt</th>
<th colspan="4" scope="col" height="42">2011</th>
<th colspan="4" scope="col">2012</th>
</tr>
<tr>
<th scope="col" width="68" height="38">1. kvartal</th>
<th scope="col" width="71">2. kvartal</th>
<th scope="col" width="81">3. kvartal</th>
<th scope="col" width="81">4. kvartal</th>
<th scope="col" width="81">1. kvartal</th>
<th scope="col" width="81">2. kvartal</th>
<th scope="col" width="81">3. kvartal</th>
<th scope="col" width="84">4. kvartal</th>
</tr>
<tr>
<th scope="row">Eple</th>
<td>
<div align="right">18</div></td>
<td>
<div align="right">20</div></td>
<td>
<div align="right">20</div></td>
<td>
<div align="right">18</div></td>
<td>
<div align="right">30</div></td>
<td>
<div align="right">25</div></td>
<td>
<div align="right">60</div></td>
<td>
<div align="right">65</div></td>
</tr>
<tr>
<th scope="row">Pære</th>
<td>
<div align="right">20</div></td>
<td>
<div align="right">25</div></td>
<td>
<div align="right">40</div></td>
<td>
<div align="right">25</div></td>
<td>
<div align="right">21</div></td>
<td>
<div align="right">25</div></td>
<td>
<div align="right">38</div></td>
<td>
<div align="right">30</div></td>
</tr>
</tbody>
</table>
-
Vis tabellen med Jaws
Tabell med headers og id
Hvis rekkefølgen på tabelloverskriftene er viktig, og denne rekkefølgen avviker fra det skjermlesere kan gjette er teknikken med headers
og id
et alternativ. Som nevnt anbefales det vanligvis ikke. headers
-attributtet har id’ene til cellene som skal leses opp som verdi:
<td headers="2011 2011-2">
Tabellen nedenfor ser lik ut som tabellen med doble kolonneoverskrifter. headers
brukes imidlertid for å få lest opp kvartalene før årstallene.
-
Vis tabell med headers og id
Antall tonn frukt solgt i 2011 og 2012
Produkt |
2011 |
2012 |
1. kvartal
| 2. kvartal
| 3. kvartal
| 4. kvartal
| 1. kvartal
| 2. kvartal
| 3. kvartal
| 4. kvartal
|
Eple |
18
|
20
|
20
|
18
|
30
|
25
|
60
|
65
|
Pære |
20
|
25
|
40
|
25
|
21
|
25
|
38
|
30
|
-
Vis HTML-kode
<table border="0" width="764"><caption>Antall tonn frukt solgt i 2011 og 2012</caption>
<tbody>
<tr>
<th id="produkt" style="text-align: bottom; vertical-align:bottom; padding-bottom: 14px;" rowspan="2" scope="col" width="98">Produkt</th>
<th id="2011" colspan="4" scope="col" height="42">2011</th>
<th id="2012" colspan="4" scope="col">2012</th>
</tr>
<tr>
<th id="2011-1" width="68" height="38">1. kvartal</td>
<th id="2011-2" width="71">2. kvartal</td>
<th id="2011-3" width="81">3. kvartal</td>
<th id="2011-4" width="81">4. kvartal</td>
<th id="2012-1" width="81">1. kvartal</td>
<th id="2012-2" width="81">2. kvartal</td>
<th id="2012-3" width="81">3. kvartal</td>
<th id="2012-4" width="84">4. kvartal</td>
</tr>
<tr>
<th scope="row">Eple</th>
<td headers="2011-1 2011">
<div align="right">18</div></td>
<td headers="2011-2 2011">
<div align="right">20</div></td>
<td headers="2011-3 2011">
<div align="right">20</div></td>
<td headers="2011-4 2011">
<div align="right">18</div></td>
<td headers="2012-1 2012">
<div align="right">30</div></td>
<td headers="2012-2 2012">
<div align="right">25</div></td>
<td headers="2012-3 2012">
<div align="right">60</div></td>
<td headers="2012-4 2012">
<div align="right">65</div></td>
</tr>
<tr>
<th scope="row">Pære</th>
<td headers="2011-1 2011">
<div align="right">20</div></td>
<td headers="2011-2 2011">
<div align="right">25</div></td>
<td headers="2011-3 2011">
<div align="right">40</div></td>
<td headers="2011-4 2011">
<div align="right">25</div></td>
<td headers="2012-1 2012">
<div align="right">21</div></td>
<td headers="2012-2 2012">
<div align="right">25</div></td>
<td headers="2012-3 2012">
<div align="right">38</div></td>
<td headers="2012-4 2012">
<div align="right">30</div></td>
</tr>
</tbody>
</table>
-
Vis tabellen med Jaws