Wcag uitgelegd

Kolommen die niet onder elkaar gaan

Kolommen die niet onder elkaar gaan — WCAG 1.4.10 Reflow (post 4/10)

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.

Dit is een van de meest voorkomende reflow-problemen die ik tegenkom bij audits. En het heeft bijna altijd dezelfde oorzaak: flex-shrink: 0 op de sidebar.

Dat property zegt: “Ik krimp niet. Nooit. Wat er ook gebeurt.” Best assertief voor een sidebar.

De fix:

Geef de layout flex-wrap: wrap, zodat kolommen onder elkaar gaan als er niet genoeg ruimte is.

/* Niet doen */
.layout { display: flex; }
.sidebar { width: 300px; flex-shrink: 0; }

/* Wel doen */
.layout { display: flex; flex-wrap: wrap; }
.sidebar { flex: 1 1 300px; }
.content { flex: 1 1 100%; }

Of gebruik een media query als je meer controle wilt:

@media (max-width: 320px) {
  .layout { flex-direction: column; }
}

Test het zelf: maak je browservenster 320 pixels breed. Staan de kolommen nog naast elkaar? Dan heb je een reflow-probleem.

Dit geldt ook voor kaartgrids, productoverzichten en dashboards. Alles wat naast elkaar staat moet onder elkaar kunnen gaan.

Related Posts

Content verdwijnt door overflow hidden

Content verdwijnt door overflow hidden

Je zoomt in op een webpagina. De tekst wordt groter. En dan, halverwege een zin, houdt de tekst op. Alsof iemand de rest heeft afgeknipt.

Knop met icoon en tekst, maar aria-label vervangt alles

Knop met icoon en tekst, maar aria-label vervangt alles

Een knop. Disketje-icoon. Daarnaast: “Opslaan.” De developer dacht: laat ik een uitgebreider aria-label toevoegen. “Sla het huidige document op naar de server.”

Afbeelding als link zonder beschrijvend alt

Afbeelding als link zonder beschrijvend alt

Een winkelwagen-icoon. Klik erop en je gaat naar je winkelwagen. Logisch.