Girovagando per la rete ho trovato un form che mi ha suggerito un’idea…
Problema: Campi radio tipo “SI” e “NO” con una label senza campo associato per entrambi i campi ed un testo descrittivo più dettagliato. ecco un esempio di come si presenta attualmente la struttura (semplificata) in Plone:
Codice:
<div> <label>Musica ?</label> <div>Se ti piace la musica classica scegli Si altrimenti scegli No</div> <input type="radio" name="musica" id="musicasi" value="si" /> <label for="musicasi">Si</label> <input type="radio" name="musica" id="musicano" value="no" /> <label for="musicano">No</label> </div>
Lo screen reader Jaws, quando è in modalità ediitazione, ignora la prima label non associata ad alcun campo ed il div con classe formHelp e legge solo Si e No. L’utente non vedente è come se dovesse “firmare un assegno in bianco..”.
L’unica cosa che può fare è uscire dalla modalità editazione leggere i testi e rientrare in modalità editazione… Questa operazione diventa particolarmente pesante per form con molti campi.
Primo aggiustamento: Questo tipo di campi devono essere racchiusi in un fieldset. il tag legend verrà letto da Jaws:
Codice:
<div>
<fieldset>
<legend>Musica ?</legend>
<div>Se ti piace la musica classica scegli Si
altrimenti scegli No</div>
<input type="radio" name="musica" id="musicasi" value="si" />
<label for="musicasi">Si</label>
<input type="radio" name="musica" id="musicano" value="no" />
<label for="musicano">No</label>
</fieldset>
</div>
Ora Jaws in modalità editazione legge meglio il form, ma salta ancora il div di classe formHelp.
Da notare che quando Jaws legge i campi SI e NO, ora antepone sempre il testo della LEGEND; pronuncia qualcosa tipo “Musica ? SI” e “Musica ? NO”.
Soluzione proposta: Prendendo spunto da un form visto in rete ho pensato fattibile inserire un link nella legend che punti al div col testo di aiuto:
Codice:
<div>
<fieldset>
<legend>Musica ? [ <a href="#aiuto_musica" title="ulteriori
informazioni sulla compilazione del campo">Help</a> ]</legend>
<div id="aiuto_musica">Se ti piace la musica
classica scegli Si altrimenti scegli No</div>
<input type="radio" name="musica" id="musicasi" value="si" />
<label for="musicasi">Si</label>
<input type="radio" name="musica" id="musicano" value="no" />
<label for="musicano">No</label>
</fieldset>
</div>
Verificato con Jaws, il link viene letto correttamente e consente, premendo il tasto invio, di uscire automaticamente dalla modalità editazione e leggere il testo di aiuto.
Per gli utenti vedenti è possibile nascondere tramite css il link “[Help ]” in quando non necessario:
<span>[ <a...>Help</a> ]</span>
Risultato:
Pro: l’utente non vedente se vuole può accedere facilmente al testo di aiuto e viene indicato subito il fatto che tale testo esiste. Non c’e’ bisogno che esca manualmente dalla modalità editazione e cerchi manualmente se esiste qualcosa che Jaws non ha letto.
Contro: in questo modo la legend viene letta come detto prima prima di ogni campo radio e con la legend anche il testo del link: “Musica ? Aiuto SI” e “Musica ? Aiuto NO”
