Gebruik geen role="application"

Bart Simons op 23/07/2013 - reageer als eerste

In een eerdere blogpost hebben we een aantal WAI-ARIA landmark roles aanbevolen. Als u deze in uw pagina's verwerkt, kunnen screenreader- en toetsenbordgebruikers gemakkelijker door de pagina navigeren. Over de speciale WAI-ARIA landmark role="application" hebben we het nog niet gehad omdat u deze bijna nooit mag gebruiken in webpagina's.

Wat doet het?

Als u role="application" gebruikt voor een onderdeel (widget) van een webpagina, dan krijgt een screenreader(gebruiker) de boodschap dat dit onderdeel gebruikt moet worden zoals een desktop applicatie. Alle functionaliteit die een screenreader standaard voorziet voor componenten van een website (tabben van link naar link, met pijltjestoetsen door een keuzelijst, het aankondigen van koppen en lijsten, ...) worden achterwege gelaten. Als ontwikkelaar moet u dit alles nu zelf programmeren.

Meestal niet gebruiken

We noemen een widget snel een applicatie, maar dit betekent meestal niet dat u role="application" nodig heeft. Als de widget gebruik maakt van standaard HTML-elementen (keuzelijsten, selectievakjes, invoervelden, hyperlinks, paragrafen) is er geen reden om role="application" te gebruiken. Browsers en screenreaders moeten immers niets speciaals doen om met deze componenten om te gaan. Ook als de widget dynamischer is (zoals een slideshow, treeview, toolbar, menu, tabs enz.) is role="application" niet nodig. WAI-ARIA biedt hiervoor andere oplossingen die u dus niet zelf hoeft te programmeren. Als u standaard WAI-ARIA componenten gebruikt, is de kans groter dat screenreaders het ondersteunen en zo hoeft u het wiel niet opnieuw uit te vinden.

Gebruik role="application" niet als het niet nodig is. Foutief (lees: overbodig) gebruik van role="application" maakt een webpagina of onderdeel ervan totaal onbruikbaar voor gebruikers van het toetsenbord, screenreaders en andere hulpmiddelen. De component zal immers totaal anders reageren dan de gebruiker verwacht.

Wanneer wel gebruiken?

Enkel als uw widget hoofdzakelijk niet bestaat uit standaard HTML en zeer interactief is, kan u role="application" overwegen. Dus enkel voor widgets die weliswaar in de browser draaien maar eigenlijk een desktop aplicatie zijn in plaats van webcontent (Voorbeeld online presentaties.

Als u het gebruikt, plaats het dan op een element dat enkel de widget bevat waarvoor het van toepassing is.

Nogmaals, als u role="application" gebruikt, moet u zelf programmeren hoe uw widget werkt met een screenreader en het toetsenbord en de werking ook duidelijk maken aan de gebruiker. Dit is een heel ander vak dan websites bouwen en het vereist grondig testen met verschillende screenreaders.

Conclusie

U zal dus bijna nooit gebruik maken van role="application"!

Bron: If you use the WAI-ARIA role "application", please do so wisely!

Reageer

De volgende HTML tags zijn toegestaan: <a> <b> <ul> <li>