27 juli, 2010
‘Tijdrovend’, ‘ingewikkeld’ en ‘kan niet’ zijn de meestgehoorde argumenten van ontwikkelaars om het toegankelijk bouwen van het project te verwerpen. Gelukkig zijn alle argumenten nonsens. In dit artikel een samenvatting van de quick wins voor toegankelijk bouwen.
Het is 2010, tabellen voor opmaak kunnen écht niet meer.
Het lastige is natuurlijk dat er diverse niveaus van toegankelijk bouwen zijn. Het is echter mijn stellige overtuiging dat iedere zichzelf respecterende front-end ontwikkelaar er op uit is om de meest schone en semantisch correcte code op te leveren. Ik ben dan ook uitgegaan van de webrichtlijnen versie 2 in deze lijst van aandachtspunten.

Als je deze ijkpunten meeneemt in de bouw van een website of -app, zul je zien dat niet alleen de code aan de achterkant, maar ook de beleving aan de voorkant en de zoekmachine-vindbaarheid van je project aanzienlijk zal toenemen.
Bedenk tevens dat voor front-end developers een taak is weggelegd aan de CMS-kant. Het is onze taak om back-end developers te wijzen op de ondersteuning van elementen zoals <abbr> en <cite> in de editor van het gekozen CMS.
In het opstellen van deze lijst ben ik wellicht zaken vergeten, en misschien heb je een verscherping of aanvulling van een van de ijkpunten. Laat het me dan weten, dan neem ik het op deze lijst.
Categorieën: Best Practice, Schone code, Toegankelijkheid
Goed stuk. Je kunt trouwens ook rel=”external” gebruiken als attribuut voor een Javascript-variant van target=”_blank”, dat is denk ik duidelijker dan een class.
In de tijd dat een ontwikkelaar nog met de hand een statische site in elkaar zette had dit misschien nog allemaal nut, maar op het web 2.0 is het toch vaak belangrijker om ergens geautomatiseerd of user generated content vandaan te halen die niet toegankelijk is, en dat dan ook blijft.
Niet zozeer oneens, maar wel een kleine kritische opmerking. Het b-element wordt ook in de laatste standaard gewoon ondersteund:
http://www.w3.org/TR/html5/text-level-semantics.html#the-b-element
- Jorrit
@alexandervn: Eens, dat gebruikte ik voorheen altijd. Echter, als je goed kijkt naar de waarde van het rel-attribuut, is dat niet helemaal op z’n plaats. Het beschrijft de relatie, niet de locatie ;-)
@ipenburg Dat ben ik niet helemaal met je eens. Het mooie van deze tijd is de wildgroei aan API’s waarmee je content als platte data (bijna altijd XML) binnenkrijgt, en er dus vervolgens je eigen opmaak aan kunt geven.
@Jorrit: Tsja, eens. De vraag is; is het verstandig, net als met het target-attribuut eigenlijk. De semantische waarde van bold tekst is iets anders dan strong of emphasized tekst ;-)
@Jorrit:
“The b element should be used as a last resort when no other element is more appropriate. In particular, headings should use the h1 to h6 elements, stress emphasis should use the em element, importance should be denoted with the strong element, and text marked or highlighted should use the mark element.”
Vrij duidelijk dus dat het geen aanrader is ;-)
Jeroen, (mooie site en goede opsomming trouwens :-)
Een korte aanvulling v.w.b. de b en i elementen: deze zijn in HTML5 niet slechts bedoelt voor opmaak maar hebben wel degelijk semantische waarde: http://html5doctor.com/i-b-em-strong-element/.
Persoonlijk vind ik het een beetje verwarrend en onrealistisch gesteld aangezien ik denk dat vrijwel niemand deze elementen juist zal gaan gebruiken, maar ze zijn dus wel opnieuw gedefiniëerd en krijgen een unieke semantische waarde.
Oh, en volgens mij is het niet de maar het doctype :-)
@Jeroen: Je kan wel opmaak geven aan gestructureerde content van derden, maar niet verwachten dat die content beschikbaar is als markup met alle gewenste lang-attributen en abbr-elementen erin. Zelfs al zou het technisch mogelijk zijn om een language span in deze reactie te stoppen, dan is nog niet iedere gebruiker altijd even alert om die dan ook te benutten.
@Valuedstandards Bedankt voor het compliment!
Ik was niet op de hoogte van de nieuwe semantische waardes van de “oude” elementen, ik deel je mening dat het vooral verwarrend is. Ik ga daar nog even dieper naar kijken, en misschien is het wel een artikeltje waard, of een bericht richting het W3C ;-)
Ik pas het lidwoord direct aan, haha…helemaal waar ;-)
@ipenburg Je reactie is tweeledig; enerzijds geef je aan dat externe data niet is voorzien van de juiste mark-up. Dat is natuurlijk niet tegen te spreken, en is ook niet redelijkerwijs te realiseren zonder foutmarges. Ik ga hier nog even over nadenken. Ik kan me voorstellen dat je aangeeft dat deze data van externe sites afkomstig is, maar er kan in sommige gevallen ook redactie over worden gevoerd (met uitzondering van bijvoorbeeld Twitter).
Anderzijds geef je aan dat gebruikers niet altijd even alert zijn. Dit is een behoorlijk andere discussie; dit is namelijk de kern van wat toegankelijkheid inhoudt; iedereen in het team is verantwoordelijk. Daar kun je geen uitzonderingen in maken wat mij betreft.
@valuedstandards: Het is niet alleen verwarrend en onrealistisch, maar als je dus HTML fragmenten uit een database of via een API binnenkrijgt zou je op één of andere manier moeten kunnen achterhalen voor welke HTML versie een b of i element in die content oorspronkelijk bedoeld was om zeker te weten of de unieke semantische waarde daar van toepassing kan zijn.
@Jeroen: Web 2.0 houdt in dat ongeveer de hele wereld onderdeel van het team is, en dat twitter inderdaad het ultieme voorbeeld is waar je weinig mee kan wat verregaande toegankelijkheid betreft. Daarnaast zitten er waarschijnlijk ook weer haken en ogen aan het voeren van een redactie over content omdat door het toevoegen van markup juist de twijfel over semantiek wordt weggenomen. Die twijfel was in de wetenschappelijke oorsprong van HTML ongewenst, maar wordt in een sociale context juist belangrijker voor een rijkere communicatie.
@ipenburg: Eens, en dat zal ook wel het spanningsveld blijven de komende tijd tussen toegankelijkheid en sociale media en invloed van gebruikers. Ik heb net een project rondom toegankelijkheid mogen afronden bij Microsoft Nederland, en zij hebben natuurlijk ook nog de uitdaging van vele engelse termen in merknamen. In samenspraak met Accessibility zijn daar goede afspraken over gemaakt, maar met 2500 contenteigenaren is het echt een uitdaging om dat goed uit te rollen.
Ik vind je reactie naar @ValuedStandards in dat opzicht ook een interessante invalshoek; wie bepaalt de semantische waarde uiteindelijk? Is datgene wat de gebruiker bedoeld gelijk aan de interpretatie van de redacteur?
Bedankt voor de goede feedback!