Wcag uitgelegd

Single-page app die de titel niet bijwerkt

Single-page app die de titel niet bijwerkt — WCAG 2.4.2 Paginatitel (post 5/7)

Je navigeert van de homepage naar de contactpagina. De content verandert. De URL verandert. Het tabblad? Staat nog steeds “Home - Webshop.”

In een single-page applicatie (React, Vue, Angular, Next.js) laadt de browser geen nieuwe pagina bij navigatie. De content wordt dynamisch vervangen. Maar het <title>-element wordt niet automatisch bijgewerkt — dat moet de developer handmatig doen.

Waarom is dit een probleem?

  • Een schermlezer kondigt de nieuwe pagina niet aan. De gebruiker weet niet of de navigatie gelukt is.
  • Bij meerdere tabbladen staat overal dezelfde titel.
  • De browsergeschiedenis (terug-knop) toont dezelfde titel voor elke “pagina.”
// Niet doen: titel vergeten bij routewijziging
function navigeerNaar(pagina) {
  renderContent(pagina);
  // document.title blijft ongewijzigd
}

// Wel doen: titel meteen bijwerken
function navigeerNaar(pagina) {
  renderContent(pagina);
  document.title = pagina.titel + " - Webshop";
}

In React:

useEffect(() => {
  document.title = `${paginaTitel} - Webshop`;
}, [paginaTitel]);

Tip: voeg dit toe aan je router, niet aan elke individuele pagina. Dan vergeet je het niet bij een nieuwe pagina.

Test: klik door je SPA en kijk na elke navigatie naar het tabblad. Verandert de titel?

Related Posts

Carrousel-knoppen voor de content

Carrousel-knoppen voor de content

“Vorige. Volgende.” Dat is het eerste wat een schermlezergebruiker hoort bij je carrousel. Vorige en volgende. Maar vorige en volgende van wat?

"Welkom" zegt niets

"Welkom" zegt niets

“Welkom.” “Pagina 1.” “Home.” “Untitled Document.” Dat zijn titels die ik regelmatig tegenkom. Ze bestaan. Ze zijn niet leeg. Maar ze zeggen niets.

Foutmeldingen

Foutmeldingen

Je vult een formulier in, klikt op verzenden, en ergens bovenaan verschijnt een rode tekst.