Vaig veure una publicació a LinkedIn sobre com l'accessibilitat d'alguns modals és defectuosa perquè atrapen el focus, incomplint el criteri d'èxit 2.1.2 Sense parany de teclat de les WCAG (Web Content Accessibility Guidelines). Això és incorrecte, però és fàcil entendre com algú pot arribar a aquesta conclusió.
Quan parlem d'accessibilitat, sovint citem les WCAG perquè presenten els criteris d'una manera comprensible.
Però practicar l'accessibilitat (ja sigui desenvolupant llocs web o aplicacions accessibles, analitzant o auditant l'accessibilitat en projectes existents, o corregint aquests problemes) normalment requereix anar més a fons.
Primer, tenim els documents Understanding de les WCAG. Ajuden els desenvolupadors a entendre millor cada criteri amb informació de fons i detalls tècnics, incloent-hi tècniques suficients amb exemples.
Després, tenim la suite Accessible Rich Internet Applications (ARIA). Defineix com fer que el contingut web i les aplicacions web siguin accessibles per a persones amb discapacitat. L'Authoring Practices Guide (APG) explica detalladament com s'han d'implementar els patrons i les pràctiques.
També tenim la EN 301 549, que és la norma europea harmonitzada per als requisits d'accessibilitat en productes i serveis TIC. Aquesta norma especifica com s'apliquen les WCAG al contingut web, documents i aplicacions.
Tants materials poden ser aclaparadors. Però significa que entren en detalls molt específics sobre què cal aconseguir i com fer-ho.
Comencem pel criteri 2.1.2 Sense parany de teclat. La definició de les WCAG és: «Si el focus del teclat es pot moure a un component de la pàgina mitjançant una interfície de teclat, aleshores el focus es pot allunyar d'aquest component usant únicament una interfície de teclat, i, si requereix més que les tecles de fletxa o tabulació sense modificar o altres mètodes de sortida estàndard, s'ha d'informar l'usuari del mètode per moure el focus.»
Sembla prou clar. Si navegues amb el teclat, cap component hauria d'atrapar-te d'una manera de la qual no puguis sortir amb el teclat.
Però explorem el patró ARIA Dialog (Modal). La documentació ARIA aclareix: «Un diàleg és una finestra superposada sobre la finestra principal o sobre una altra finestra de diàleg. Les finestres sota un diàleg modal estan inactives. És a dir, els usuaris no poden interactuar amb el contingut fora d'una finestra de diàleg activa. El contingut inactiu fora d'un diàleg actiu normalment es veu obscurit o enfosquit visualment de manera que és difícil de distingir, i en algunes implementacions, els intents d'interactuar amb el contingut inactiu provoquen el tancament del diàleg.
Igual que els diàlegs no modals, els diàlegs modals contenen la seva pròpia seqüència de tabulació. És a dir,
No hi ha ambigüitat. Un modal (o diàleg) ha d'impedir que l'usuari surti del modal fins que es tanqui. Contradiu això el criteri de les WCAG?
Si consultem el document Understanding sobre el criteri d'èxit 2.1.2, a la secció d'intencions, s'explica: «La intenció d'aquest criteri d'èxit és assegurar que el contingut no «atrapi» el focus del teclat dins de subseccions del contingut en una pàgina web. Això és un problema comú quan múltiples formats es combinen dins d'una pàgina i es mostren mitjançant connectors o aplicacions incrustades.
Hi pot haver moments en què la funcionalitat de la pàgina web restringeixi el focus a una subsecció del contingut, sempre que l'usuari sàpiga com deixar aquest estat i 'alliberar' el focus.»
Tot sembla reduir-se a dues consideracions: si el mètode de sortida és estàndard, i si l'aplicació del patró modal és adequada.
El primer és fàcil de resoldre, ja que l'ús de la tecla Esc o d'un botó de tancament s'esmenta al patró ARIA Dialog (Modal).
El segon és on rau la decisió important. Per què fem servir un modal? Aquest patró s'utilitza per presentar informació o una decisió que s'ha de mostrar i reconèixer abans que l'usuari pugui continuar amb la seva tasca.
Si tornem a la publicació de LinkedIn, ara sabem que un modal en el qual l'usuari pot passar-lo per alt sense reconèixer-lo és una implementació incorrecta. Aleshores, d'on ve la confusió? Probablement la persona que ho publicava estava pensant en un diàleg no modal on l'usuari hauria de poder navegar fora del diàleg. Però en anomenar-lo modal i usar-lo com a exemple d'incompliment del criteri d'èxit 2.1.2 de les WCAG, simplement estava fent una afirmació enganyosa.
El problema existeix perquè modal s'usa de manera laxa com a concepte ampli que engloba diversos tipus d'interfícies d'usuari amb comportaments i implementacions diferents. No obstant, a la documentació, l'especificació del modal està clarament definida i és diferent de conceptes similars.
L'accessibilitat requereix un ús del llenguatge més específic i rigorós que altres disciplines. Alguns poden pensar que aquest rigor és innecessari, però estem parlant d'estàndards. El rigor i la fiabilitat dels diferents documents i normes és una gran part del que els fa valuosos.