2013-07-24 11 views
5

Dire che ho un campo di input e accanto ad esso ho un testo. Il testo dovrebbe essere sempre racchiuso in un tag html? Se è così, perché?Il testo deve sempre essere racchiuso in un tag html?

First name: <input type="text" name="fname"> 

VS

<label for="fname">First name:</label> <input type="text" name="fname"> 

risposta

5

Label in questo caso consente di fare clic sull'etichetta in sé - e vi darà attenzione all'ingresso con l'id fornito nell'attributo for. È raccomandato per l'usabilità.

Assicuratevi semplicemente di impostare l'ingresso id che l'etichetta for sia impostata sugli ingressi id.

+0

+1 per te, ho scritto le stesse informazioni con l'esempio - stavamo scrivendo simultaneamente - succede :( – ElmoVanKielmo

+0

Sì, anche se la tua risposta indica che è privo di id quindi +1 ricambiato. – McAden

2

Sicuramente in questo modo:

<label for="fname">First name:</label> <input type="text" name="fname" id="fname"> 

Il browser capisce il collegamento tra for attributo della label e id attributo della input.
Il risultato è (ad esempio), è possibile fare clic su label e lo stato attivo input ottiene lo stato attivo.

1

Per farla breve, sì, dovresti. Un testo non protetto non è molto lontano da un'immagine. È difficilmente accessibile e difficilmente modificabile senza sostituirlo completamente.

Per le regole CSS, è molto più facile se si riesce facilmente ad afferrare ogni gruppo di elementi del documento, incluso il testo.

1

Solo per completezza bene:

<label>First name: <input type="text" name="fname"></label> 

è possibile anche; più visto con type="radio".

Come detto: cliccabile (piacevole per caselle di controllo e pulsanti di opzione) e per screen reader per ipovedenti: è possibile leggere ad alta voce l'etichetta entrando nella casella di testo con scheda.

Per l'altro modulo di etichetta ho visto la convalida JavaScript, contrassegnando l'etichetta (in caso di errore).

Problemi correlati