Typ iets om te zoeken...

Wcag uitgelegd

Eenvoudige tabel die onnodig horizontaal scrollt

Eenvoudige tabel die onnodig horizontaal scrollt — WCAG 1.4.10 Reflow (post 9/10)

Openingstijden. Twee kolommen. Dag en tijd.

Maandag: 09:00 - 17:00 Dinsdag: 09:00 - 17:00

Bij 320 pixels breedte past dit prima in één kolom. Maar de tabel scrollt toch horizontaal. Waarom? Omdat het een <table> is en iemand er overflow-x: auto op heeft gezet.

“Maar tabellen zijn toch uitgezonderd van reflow?”

Ja en nee. De uitzondering geldt voor complexe tabellen met veel kolommen — een spreadsheet met tien kolommen moet je niet in een kolom proppen. Maar een tabel met twee kolommen? Die hoeft niet horizontaal te scrollen.

De betere aanpak: maak van een eenvoudige tabel een lijstweergave bij smalle schermen.

@media (max-width: 320px) {
  .tabel thead { display: none; }
  .tabel tr {
    display: block;
    margin-bottom: 1rem;
  }
  .tabel td {
    display: flex;
    justify-content: space-between;
  }
  .tabel td::before {
    content: attr(data-label);
    font-weight: bold;
  }
}

Het resultaat: in plaats van een horizontaal scrollende tabel zie je bij smal scherm:

Maandag 09:00 - 17:00

Dinsdag 09:00 - 17:00

Leesbaar. Geen horizontaal scrollen nodig.

De vuistregel: heeft je tabel twee of drie kolommen? Dan is een lijstweergave bij smal scherm bijna altijd beter. Heeft je tabel acht kolommen met data? Dan mag die horizontaal scrollen — maar zet de scrollbar dan op de tabel, niet op de hele pagina.

Related Posts

Elementen met een vaste breedte

Elementen met een vaste breedte

Je zoomt in tot 400%. De tekst wordt groter, de pagina smaller.

Navigatiemenu verdwijnt bij inzoomen

Navigatiemenu verdwijnt bij inzoomen

Home. Over ons. Diensten. Projecten. Contact. Vijf links op een rij. Op een breed scherm prima. Bij 400% zoom? Dan past “Contact” niet meer. Die link valt buiten het scherm. Zonder scrollbar. Zonder hamburgermenu.

Kolommen die niet onder elkaar gaan

Kolommen die niet onder elkaar gaan

Sidebar links. Content rechts. Op een groot scherm: perfect. Bij 400% zoom: twee kolommen gepropt in 320 pixels. De sidebar neemt de helft in beslag. De content wordt zo smal dat je twee woorden per regel leest. Of je moet horizontaal scrollen.