Punto di controllo inutile #1: WCAG 1.3.5

jacopo deyla
4 min readJan 7, 2021
Photo by Jonathan Kemper on Unsplash

Oggi leggevo un articolo utile per capire i requisiti di accessibilità con esempi, e ho deciso di fare una verifica. E la verifica è stata negativa, quindi

Il punto di controllo1.3.5 per ora va ignorato. L’autocomplete non funziona!

E’ un piccolo problema, ma ha a che fare con la conformità. Per essere conformi alla legge, il 100% dei requisiti del 100% del campione deve essere a norma, ma c’è un requisito inutile, che non funziona: criterio di successo 1.3.5 Identificare lo scopo degli input .

Il requisito sarebbe molto utile, perchè prevede di sfruttare i browser e la loro capacità di autocompletare i campi dei moduli. Se un certo campo ha un certo attributo, allora dovrebbe dire al browser di compilarlo coi dati che ha già come il nome, il cognome, la mail, inseriti magari altre cento volte su altri siti.

Chi ha attivato l’autocompletamento usa già questa possibilità che funziona abbastanza bene. Ma ancora una volta gli standard, che vengono dopo il mondo reale, per regolamentare il web che già esiste, non sono soddisfatti.

I dati che potremmo evitare di digitare ogni volta, sono davvero tanti e riguardano anche indirizzo di spedizione, di fatturazione, carta di credito ecc. ecc.

Il punto di controllo WCAG chiede di usare quell’attributo e di usarlo bene, per permettere di attivare questa funzionalità nel modo corretto. Ergo, se non lo usi o lo usi male, fai un errore di accessibilità che rende la tua pagina non conforme.

Ma è proprio vero?

Can I use autocomplete?

E’ una cosa un po’ da tecnici, ma lo è anche questo articolo. Ogni volta che si vuole utilizzare un attributo di un qualche linguaggio, si può vederne la compatibilità su un sito che si chiama Can I use, e nel nostro caso dice:

Il sito dice che lo puoi usare, ma è supportato solo parzialmente, nel senso che se anche dici di disattivare l’autocompletamento alcuni browser lo ignorano completamente. Solo che CanIUse non si è chiesto il perchè, mentre io si.

Photo by Afif Kusuma on Unsplash

In ogni caso si scopre che già serve a metà,…. uhm.

E se “I use autocomplete”?

Ho preso il pezzo di codice che propone un altro sito di riferimento, W3 schools per vedere se davvero le cose funzionano come previsto.

Qui https://www.w3schools.com/tags/att_input_autocomplete.asp c’è la spiegazione di come usare l’attributo, e lo si può vedere all’opera qui https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_autocomplete

La cosa comoda dell’esempio, è che si può modificare il codice direttamente e provarne l’effetto.

Usare altri valori: non serve

La prima cosa che ho provato, è stata quella di dire al browser di usare un certo valore per l’autocomplete, diverso da quello previsto, ovvero di autocompletare il campo nome, con “email”

<form … autocomplete=”on”>
<label for=”fname”>First name:</label>
<input type=”text” id=”fname” name=”fname” autocomplete=”email”>

<input type=”submit”>
</form>

Il campo nome, veniva comunque compilato col nome e non con l’email.

Questa prova l’ho fatta con Chrome e con Safari, che oggi coprono più o meno l’85% dei browser in circolazione nel mondo.

Cosa conta allora? Il mondo reale

Da tempo l’accessibilità, i browser e gli ausili, mi hanno insegnato che il mondo reale è un’altra cosa dagli standard. Che i software vivono nel mondo reale digitale, non nelle accademie, e devono funzionare il più possibile.

Allora ho provato a lavorare su altri 3 elementi del form e funzionano tutti!

Sono:

  • name
  • id
  • etichetta, qualunque essa sia.

Ebbene se si usa qualcosa di sensato per uno di questi tre elementi, i campi verranno compilati con i dati corretti. Se cioè scrivo id=”nome” e non id=”ajejebrazorf”, il browser saprà che va compilato col mio nome, anche se questo è Ajejebrazorf. Oppure se io imposto id=”email” o name=”email” il browser proverà a compilare il campo con le email che ho registrato nelle impostazioni del browser nell’autocompletamento (o tra i contatti se su Safari).

La cosa più sorprendente è stata l’etichetta: basta che la parola “email” o “mail” siano scritte semplicemente prima del campo, che il browser indovinerà lo stesso la richiesta!

A che pro tutto ciò?

Anche se la cosa è veramente marginale, ha però il suo piccolo impatto. Se ad esempio valido un qualsiasi form, ad esempio https://www.w3.org/accounts/request con un qualche sistema, anche automatico, tipo https://mauve.isti.cnr.it/singleValidation.jsp .

Se non c’è nulla (che tanto non serve) rileverò sempre un errore al punto 1.3.5

e questo avrà un impatto legale se il sito è di un qualche soggetto che deve rispettare l’accessibilità.

Per non avere una valutazione negativa si è costretti ad inserire un attributo con un valore inutili entrambi, solo per passare la verifica.

Dal punto di vista pratico, per l’utente, tutto ciò sarà assolutamente irrilevante.… come un sacco di altri requisiti obbligatori, ma questa sarà forse un'altra storia.

--

--