PROGRAMMIAMO
Html - Form e accessibilità
Form e accessibilità

I form sono un elemento critico per quanto riguarda l'accessibilità di un sito, in particolare per quanto riguarda persone ipovedenti che si affidano a browser uditivi per navigare in rete. La ragione di questo fatto è che il form, per sua natura, richiede un'elevata interazione con l'utente, il quale deve identificare correttamente il significato dei diversi elementi (ad esempio <input>) e sapere che tipo di dati deve fornire.

Occorre anche tener presente che ci sono utenti che, per varie ragioni, navigano senza utilizzare il  mouse. Bisogna dunque anche prevedere un modo semplice per spostarsi da un campo dati al successivo per esempio usando il tasto tab della tastiera.

Fieldset e legend

Abbiamo detto precedentemente che gli elementi interni a un form (es. <input>) devono essere racchiusi in un contenitore e non possono essere messi direttamente nel form (altrimenti la validazione fornisce errori nella sintassi HTML). Negli esempi fatti finora abbiamo sempre usato un paragrafo <p> generico come contenitore (o, in alternativa, un elemento <div>).

Esiste tuttavia un elemento contenitore espressamente creato per i <form>. Si tratta dell'elemento <fieldset> che, insieme all'elemento <legend>, permette di creare form ad elevata accessibilità. Si consideri l'esempio seguente:

<form action="mailto:pinco.pallino@libero.it" method="post" name = "utente" enctype="text/plain">

<fieldset>
<legend>Dati anagrafici</legend>

.... campi in cui inserire i dati anagrafici
</fieldset>

<fieldset>
<legend>Informazioni sulla privacy</legend>

....campi in cui inserire le info sulla privacy
</fieldset>

<fieldset>
<legend>Procedura di acquisto</legend>

....campi in cui inserire i dati per l'acquisto
</fieldset>

</form>

Si osservi che l'elemento <fieldset> serve per raggruppare insieme gruppi omogenei di campi (cioè per esempio le caselle di input per inserire nome e cognome, raggruppate insieme nel primo fieldset). L'elemento <fieldset> viene visualizzato con una cornice che racchiude i campi di input, come nell'esempio qui sotto:

Dati anagrafici

Il tag <legend> serve invece per specificare una legenda, cioè una spiegazione testuale del contenuto del <fieldset> (particolarmente utile per chi non può vedere lo schermo).

Label

Per coloro che non possono vedere può essere difficile capire quale tipo di dato bisogna inserire all'interno di un determinato campo.

L'elemento <label> permette di associare strettamente un dato campo con il testo che lo accompagna. Si consideri l'esempio seguente:

<label  for="nomeutente"> Nome e cognome:</label>
<input type="text" name="nome" id="nomeutente">

Si osservi che è stato aggiunto un id alla casella di input. Il nome dell'id coincide con quello indicato nella <label> e serve per specificare che il contenuto della label (cioè Nome e cognome) si riferisce proprio a quell'elemento <input>. Si osservi che per identificare l'elemento <input> bisogna usare un attributo id, non l'attributo name (che serve per altri scopi).

Un modo alternativo per usare label è il seguente:

<label  for="nomeutente"> Nome e cognome:
<input type="text" name="nome" id="nomeutente"> </label>

In questo secondo caso <label> racchiude al proprio interno l'intero elemento <input>

L'elemento label può anche essere usato in associazione con un elemento select, come mostrato nell'esempio qui sotto:

<label for="preferito">Il tuo cibo preferito</label>
<select name="cibi" id="preferito">
<option value="formaggio">Formaggio</option>
<option value="uova">Uova</option>
<option value="cavoli">Cavoli</option>
</select>

 

Tabindex

Con l'attributo tabindex è possibile specificare l'ordine (la sequenza) con cui le successive pressioni del tasto tab selezionano i diversi campi di un form. La sequenza viene indicata con numeri interi crescenti (dal primo elemento all'ultimo che viene selezionato). Di solito si usano valori che aumentano di 10 in 10 in modo da non dover ricreare daccapo tutta la numerazione nel caso si vogliano aggiungere altri campi al form. Si osservi l'esempio seguente:

<fieldset>
<legend>Dati anagrafici</legend>
<label for="nome"> Nome:
<input type="text" name="nome" id="nome" tabindex="10"></label> <br> <br>
<label for="cognome"> Cognome:
<input type="text" name="cognome" id="cognome" tabindex="20"></label>
</fieldset>

I valori di tabindex indicano che il campo cognome viene selezionato dopo il campo nome, premendo il tasto tab.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it