2011-01-16 18 views
8

Mögliche Duplizieren:
Whats the rendering difference between a span and label tag?Fehlermeldung: <span> vs <label>

Wenn Sie in HTML eine Fehlermeldung angezeigt, das Element verwenden Sie, <span> oder <label>?

Können Sie einige Vor- und Nachteile für jede von ihnen auflisten, vorausgesetzt, dass einige Styling, wie z. B. Farbe und Rand über ihre class angewendet werden?

Danke!

+5

Dies ist * nicht * ein Duplikat dieser Frage, die sich auf Unterschiede in der Art und Weise bezieht, wie sie standardmäßig gerendert werden und welche nicht für jeden Zweck besser geeignet sind (geschweige denn den spezifischen Zweck, der in dieser Frage erwähnt wird). – Quentin

Antwort

13

Angenommen, Sie meinen eine Fehlermeldung, die einem bestimmten Formularsteuerelement zugeordnet ist, verwenden Sie <label>.

Die semantischen Argumente sind umstritten, da sie in diesem Fall nicht eindeutig sind, aber die praktischen Argumente gewinnen recht gut. Wenn sich ein Bildschirmleser in forms mode befindet, kann er nicht beschriftbaren Text überspringen, wodurch die Fehlermeldungen des Benutzers ausgeblendet werden.

-1

http://www.w3schools.com/tags/tag_label.asp: "Das Tag definiert eine Bezeichnung für ein Eingabeelement."

Für normalen Inline-Text verwenden Sie span.

+6

Bitte empfehlen Sie nicht diese Website als Referenz - http://w3fools.com/ - und es ist nicht "regulärer Inline-Text", es ist eine Fehlermeldung, vermutlich mit einem bestimmten Eingabeelement verbunden. – Quentin

+0

@David Dorward: Es war das erste Ergebnis auf Google für "Label HTML". Aber jeder kann es selbst googlen und eine ähnliche Beschreibung des Tags auf allen anderen Seiten finden. Und ich weiß nicht, ob es mit einem Eingabefeld verbunden ist, da alle OP angegeben wurde "Wenn Sie eine Fehlermeldung in HTML anzeigen". Wie auch immer, ich bin sicher, dass der Unterschied jetzt klar ist. – Alec

-2

Ich werde wahrscheinlich <span> verwenden, weil jedes Eingabefeld bereits eine <label> hat und es mir nie vorkam, zwei Beschriftungen für ein Eingabefeld zu haben.


Diese Antwort war falsch: siehe Kommentare unten.

+1

Es gibt keine Begrenzung für die Anzahl der Beschriftungen, die mit einem bestimmten Formularsteuerelement verknüpft werden können. – Quentin

+0

@David Dorward - Ich nehme an, dass die Schemadefinitionssprache [s] nicht reich genug ist, um zu erkennen/zu verhindern, dass mehrere Labels pro Eingabeelement nicht unterstützt werden. Gibt es irgendwo, wo ausdrücklich gesagt wird, dass sie unterstützt werden? Ist es eine allgemeine Redewendung? Erwarten Sie, dass z.B. Screenreader würden so codiert sein, dass sie mehrere Labels erwarten/unterstützen? – ChrisW

+2

"Mehr als ein LABEL kann mit demselben Steuerelement verknüpft sein" - http: //www.w3.org/TR/html4/interact/forms.html # h-17.9.1 – Quentin

1

Entweder kann verwendet werden und beide können gestylt werden. Ich denke, die Diskussion wird symantisch sein, was klarer ist. Ich denke an Etikettenelemente, die mit der Beschreibung der Absicht eines bestimmten Eingabeelements verbunden sind. Ich fühle nicht, dass Fehlerinformationen angezeigt werden und passt die Spanne.

1

AFAIK, der Zweck eines Labels ist, dass das Klicken auf das Label auf das Steuerelement klickt, für das es "ist". Dies ist sehr hilfreich für Dinge wie Checkboxen und Radio-Buttons, wo die eigentliche Kontrolle klein und knifflig ist.