In het vorige artikel in deze serie hebben we gekeken naar het eerste principe van toegankelijkheid: zorgen dat inhoud beschikbaar moet zijn in een formaat dat gemakkelijk door de gebruiker kan worden waargenomen. Als een gebruiker ondersteunende technologieën gebruikt, is een manier om dit mogelijk te maken het gemakkelijker te maken voor die technologieën om uw site en de inhoud daarvan te ontleden en te begrijpen. In dit artikel zullen we ons concentreren op één specifieke manier om dit te doen: ARIA.
WAI-ARIA (Web Accessibility Initiative-Accessible Rich Internet Applications), of ARIA, is een W3C-protocol dat de interactie van uw site met ondersteunende technologieën verbetert. Het doet dit op een aantal manieren:
Oude browsers vormen hier geen probleem: ARIA wordt ondersteund door de meeste moderne browsers en schermlezers en verder zijn er geen compatibiliteitsproblemen.
In deze serie zullen we ons concentreren op de eerste van de bovenstaande opsommingstekens, het verklaren van een element rol als onderdeel van de paginastructuur.
Als de structuur van een pagina programmatisch kan worden bepaald en elke 'regio' van de webpagina kan worden geïdentificeerd (bijvoorbeeld de navigatie van de site, de hoofdinhoud, de zijbalk, enz.), Kunnen hulptechnologieën deze structuur beter presenteren aan de gebruiker. "Skip to content" -links (die we in het volgende artikel bespreken) kunnen bijvoorbeeld verouderd raken als een schermlezer wist waar de hoofdinhoud was. HTML biedt echter geen manier om het doel van een regio op de pagina te identificeren. Dit is waar ARIA-rollen ingrijpen.
Een ARIA-rol is eenvoudig een attribuutwaarde die het doel van het element. Het meest eenvoudige voorbeeld zou een zoekformulier zijn:
De rol 'zoeken' identificeert dit als een formulier voor het doorzoeken van de inhoud van de site, en een schermlezer die in staat is te herkennen dat weet waar de gebruiker naartoe moet als ze naar inhoud willen zoeken. Sommige schermlezers bieden bijvoorbeeld een sneltoets om naar het zoekformulier te gaan. Evenzo zorgt het besef van de structuur van de pagina ervoor dat ondersteunende technologieën een betekenisvolle 'boom' van de pagina kunnen genereren. De JAWS-schermlezer gebruikt bijvoorbeeld de puntkomma-sleutel om tussen deze rollen over te slaan, zodat de gebruiker snel kan schakelen tussen de regio's van de site (de koptekst, navigatie, hoofdinhoud, etc.).
Dit type kenmerk wordt genoemd Document Landmark Rollen, en onder de beschikbare waarden zijn er:
Inhoud met betrekking tot de website, bijvoorbeeld de naam van de website en / of bedrijfslogo. In de meeste thema's is deze informatie aanwezig header.php
, en labels een element dat de sitetitel, beschrijving en logo omhult met deze rol:
">
Deze rol identificeert het gedeelte van de pagina dat de navigatielinks voor het document of de website bevat. Een thema kan meerdere navigatielocaties hebben en elk thema kan zijn ingepakt in een element met de navigatierol:
Volgens de HTML5-specificaties, role = "navigation"
is verondersteld impliciet te zijn in het gebruik van , en dus niet verplicht. Het is echter niet schadelijk om expliciet te zijn.
De hoofdinhoud van de pagina. Deze moet verschijnt maar één keer op een pagina. Elk thema kan variëren, maar de relevante sjabloonbestanden bevatten doorgaans:
Je 'hoofdlus' kan bijvoorbeeld er ongeveer zo uitzien:
// De lusinhoud
en je paginasjablonen zien er ongeveer zo uit:
>
Hiermee wordt het zoekformulier (en) op uw site geïdentificeerd en kan het meerdere keren worden gebruikt. De meeste thema's 'coderen' een zoekformulier niet in hun thema, maar vertrouwen in widgetgebieden waar de gebruiker de zoekwidget kan toevoegen. In dit geval (en ervan uitgaande dat u WP 3.6 of hoger uitvoert) hoeft u niets te doen: het standaard zoekformulier van WordPress voegt de zoekfunctie al naar behoren toe. Verder behandelt het ook de formulierlabels en verzendknop op een toegankelijke manier.
Als je een zoekformulier in je thema hardcodeert, gebruik het dan zeker get_search_form ()
(Zie codex). Als u ten slotte wilt dat uw thema het standaard zoekformulier wijzigt, kunt u een sjabloonbestand maken met de naam searchform.php
-maar vergeet niet om de zoekfunctie toe te voegen. De standaard zoeksjabloon is:
Hiermee wordt een stukje op zichzelf staande inhoud geïdentificeerd dat alleen lijkt te kloppen. Een goed voorbeeld hiervan zijn de blogberichten die op de pagina 'Berichten' verschijnen. Evenzo kan elke opmerking als een 'artikel' worden beschouwd. Het kan ook worden genest: bijvoorbeeld een opmerking (artikel) kan in de blogpost worden geplaatst (artikel).
role = "article"> // Titel / uittreksel plaatsen ...
Hiermee wordt een regio geïdentificeerd die is beschreven als 'ondersteunende inhoud voor de hoofdinhoud'. In een WordPress-context kan dit worden opgevat als een zijbalk. Jouw sidebar.php
sjabloon kan daarom er ongeveer zo uitzien:
Dit wordt meestal gebruikt om de voettekst te identificeren. Officieel wordt het beschreven als:
Een groot waarneembaar gebied dat informatie over het bovenliggende document bevat.
Het kan bijvoorbeeld voetnoten, auteursrechten, koppelingen naar privacyverklaringen, enz. Bevatten. Het wordt echter over het algemeen gebruikt om de voettekst van de pagina te labelen, ongeacht de inhoud ervan. Firefox, Safari en Chrome wijzen automatisch de rol contentinfo toe aan tags:
...
Hoewel het toeneemt, varieert de ondersteuning voor HTML5 door schermlezers. Aan de andere kant is ondersteuning voor ARIA-oriëntatiepunten doorgaans veel beter. Dus hoewel steeds meer browsers semantische HTML5-tags automatisch toewijzen aan hun juiste rol, is het nog steeds een goed idee om de rol expliciet te vermelden. Er moet echter voor worden gezorgd dat de oorspronkelijke 'rol' van een semantisch element niet wordt gewijzigd. U moet bijvoorbeeld voorkomen dat u iets doet als:
Klik hier!
Hieronder staat een lijst met enkele HTML5-elementen, samen met hun impliciete ARIA-rollen.
HTML5-element | Impliciete rol van ARIA-oriëntatiepunt | Andere notities |
---|---|---|
| role = "banner" | Er mag maar één exemplaar van banner zijn |
| role = "navigation" | |
| role = "main" | Er zou slechts één instantie van hoofd moeten zijn |
| role = "artikel" | |
| role = "complementair" | |
| role = "contentinfo" | Er moet slechts één exemplaar van contentinfo zijn |
| role = "button" |
Wanneer u HTML5 gebruikt, moet u een script gebruiken zoals HTML5 Shiv v3.6, zoals gebruikt in de Twenty * -thema's, om ondersteuning te bieden voor oudere browsers.
ARIA-rollen aangeven is een ongelooflijk eenvoudige manier om gebruikers van ondersteunende technologieën te helpen de lay-out van uw site te interpreteren en de inhoud te vinden waarnaar ze op zoek zijn. In het volgende deel van deze serie zullen we kijken naar het principe om ervoor te zorgen dat je thema is bruikbaar. Losjes gezegd stelt dit dat gebruikers gemakkelijk en veilig hun weg moeten kunnen vinden door uw site.