Ga naar hoofdinhoud

Table

Table responsive

Met de class .dso-table-responsive wordt de tabel responsive wanneer de viewport smaller is dan 768px:

Horizontal scrolling

Als het al bekend is dat een tabel in een smalle container wordt geplaatst, zoals in een menu naast een kaart kan de implementator het responsive scroll gedrag forceren met een wrapper div.dso-table-scroll-container.

Boven de tabel verschijnt de melding beweeg de tabel van links naar rechts.

Gebruik tabellen om inhoud logisch te structureren, zodat het gemakkelijker wordt om relaties te zien en te begrijpen. Gebruik een tabel nooit om inhoud op een pagina op te maken. Gebruik in plaats daarvan het gridsysteem.

Het component <table> wordt als een data-tabel gebruikt of als data-grid.

Hoe component "table" gebruiken als data-tabel

  • Bij het weergeven van logisch gestructureerde informatie
  • Bij het weergeven van "key-value pairs".
  • Wanneer je wel headers kan toekennen.
  • Wanneer er geen interactieve elementen zijn om de tabel aan te passen.
  • Een data tabel is daarmee een statische weergave van informatie.
  • Opbouw van data tabel is met native HTML <table> tag
  • Gebruik <th scope="col"> voor koptitels in de kolommen.
  • Gebruik <th scope="row"> voor koptitels in de rijen.

Wanneer gebruik je het component "table" niet

Maak geen layout-tabel

Gebruik een <table> nooit om inhoud op een pagina op te maken. Dit is ook wel bekend als een layout-tabel. Gebruik in plaats daarvan het responsive grid-systeem om inhoud op een pagina op te maken.

Zie ook: Layout

Voorbeeld van een layout-tabel

Maak geen definition lists met "table"

  • Definition lists worden ook gebruikt om logisch gestructureerde data te tonen. Definition lists worden onder andere gebruikt bij het tonen van meta data.
  • Gebruik een definition list als je geen koptitel als header boven de kolom kan plaatsen.
  • Gebruik een <table> als je wel een koptitel boven de kolommen kunt plaatsen. De kolom kun je als een groep met een koptitel beschouwen.

Zie ook: Definition List.

Hoe component "table" te gebruiken als data-grid

Een data grid is een dynamischere weergave van informatie. Het bevat wel interactieve elementen om de tabel aan te passen.

  • Opbouw van data grid is met native HTML <table> tag én ARIA table role="grid"
  • Gebruik <th> om koptitels in header te definiëren.
  • Specifieke keyboard interacties moeten verder worden toegevoegd voor interactieve elementen.

Sorteren in een data-grid

  • Bij het gebruik van role="grid" wordt vanuit gegaan dat de data in het data-grid aanpasbaar is. Voeg aria-readonly="true" toe, als de data niet aanpasbaar is.
  • Als je een kolom sorteerbaar wilt maken, voeg dan aan <th> "role=columnheader" toe.
    • Als je een rij sorteerbaar wilt maken, voeg dan aan <th> "role=rowheader" toe.
  • Wanneer de sortering oplopend is, geef dit bij <th> aan met aria-sort="ascending". Bij aflopende resultaten, gebruik aria-sort="descending".
  • Als er meerdere sorteerbare kolommen of rijen zijn, dan mag er alleen één sortering tegelijk actief zijn met aria-sort.

Gedrag en toegankelijkheid

  • Een tabel heeft altijd een <caption> nodig. De caption wordt als een titel opgelezen door een screenreader. Indien deze visueel niet wenselijk is wordt deze verborgen met .sr-only.
  • Houd de tabel zo eenvoudig mogelijk. Dit verhoogt de begrijpelijkheid van de tabel voor eindgebruikers.
  • Zorg ervoor dat er maximaal één kop niveau is voor de kolommen en maximaal één kop niveau voor de rijen. Screen readers hebben vaak moeite om goed meerdere kop niveaus op te lezen.
  • Gebruik <th scope="col"> voor koptitels in de kolommen.
  • Gebruik <th scope="row"> voor koptitels in de rijen.
  • Splits de table in twee losse tables als er twee kop niveaus nodig zijn.

Bronvermelding

Disclaimer

De namen in de voorbeelden zijn fictief en hebben geen relatie tot werkelijke personen. Elke overeenkomst met betrekking tot naam, karakter of achtergrond van bestaande personen berust volledig op toeval. The names in the examples are fictitious and have no relation to actual persons. Any similarity with regard to name, character or background of existing persons is entirely coincidental.