2011-01-16 15 views
8

Eventuali duplicati:
Whats the rendering difference between a span and label tag?errore: <span> vs <label>

Quando si visualizza un messaggio di errore in HTML, quale elemento si usa, o <span><label>?

Puoi elencare alcuni pro e contro per ciascuno di essi, supponendo che alcuni stili, come colore e margine verranno applicati tramite il loro class?

Grazie!

+5

Questo * non * è un duplicato di quella domanda, che riguarda le differenze nel modo in cui eseguono il rendering di default e non su quale sia più adatto a qualsiasi scopo (per non parlare dello scopo specifico menzionato in questa domanda). – Quentin

risposta

13

Supponendo che si intenda un messaggio di errore associato a un controllo modulo specifico, utilizzare <label>.

Gli argomenti semantici sono oggetto di dibattito, in quanto non sono chiari in questo caso, ma gli argomenti pratici si concludono in modo soddisfacente. Se uno screen reader è in forms mode, può saltare il testo senza etichetta nascondendo così i messaggi di errore dell'utente.

-1

http://www.w3schools.com/tags/tag_label.asp: "Il tag definisce un'etichetta per un elemento di input."

Per il normale testo in linea, utilizzare span.

+6

Si prega di non raccomandare quel sito come riferimento - http://w3fools.com/ - e non è "normale testo in linea", si tratta di un messaggio di errore, presumibilmente associato a uno specifico elemento di input. – Quentin

+0

@David Dorward: è stato il primo risultato su Google per "label html". Ma ognuno è libero di google stesso e trova una descrizione simile del tag su tutte le altre pagine. E non so se è collegato a un campo di input, poiché tutto l'OP dichiarato era "Quando si visualizza un messaggio di errore in HTML". Ad ogni modo, sono sicuro che la differenza ora sia chiara. – Alec

-2

È probabile che utilizzi <span> perché ogni campo di input ha già uno <label> e non mi è mai venuto in mente di avere due etichette per un campo di input.


Questa risposta era sbagliata: vedere i commenti di seguito.

+1

Non esiste un limite al numero di etichette che è possibile associare a un controllo di modulo specificato. – Quentin

+0

@David Dorward - Immagino che il linguaggio di definizione dello schema [s] non sia abbastanza ricco da rilevare/impedire/specificare che più etichette per elemento di input non sono supportate. C'è un posto che dice esplicitamente che sono supportati? È un idioma/pratica comune? Ti aspetti che, ad es. gli screen reader sarebbero codificati per aspettarsi/supportare più etichette? – ChrisW

+2

"Più di una ETICHETTA può essere associata con lo stesso controllo" - http: //www.w3.org/TR/html4/interact/forms.html # h-17.9.1 – Quentin

1

Entrambi possono essere utilizzati ed entrambi possono essere abbinati. Penso che la discussione sarà su symantically che è più chiara. Penso che gli elementi dell'etichetta siano associati alla descrizione dell'intento di un particolare elemento di input. Non credo che la visualizzazione delle informazioni di errore si adatti a questo e preferisco lo span.

1

AFAIK, lo scopo di un'etichetta è che facendo clic sull'etichetta si fa clic sul controllo che è "per". Questo è molto utile per cose come checkbox e pulsanti radio, dove il controllo reale è piccolo e difficile da fare clic.