Frage

Ich habe nie einen Grund gehabt, ein Label-Element innerhalb einer Legende Element zu setzen (nie wirklich darüber nachgedacht oder gesehen es getan). Aber mit dem Entwurf bin Umsetzung mir, es ist verlockend, dies zu tun.

Hier ist, was ich zu tun versucht:

<fieldset>
<legend><label for="formInfo">I would like information on</label></legend>
<select id="formInfo">
    <option value="Cats">Cats</option>
    <option value="Dogs">Dogs</option>
    <option value="Lolz">Lolz</option>
</select>
</fieldset>

Es funktioniert wie erwartet (Klick auf das Label fokussiert den entsprechenden Eingang) in Firefox3, Safari, Opera und IE6 / 7 und Validierung geht, aber ich frage mich nur, ob es irgendwelche bekannten Gründen (Zugänglichkeit? Semantik? Browser Ausgaben), warum sollte dies nicht geschehen

War es hilfreich?

Lösung

Wo ist dein </fieldset>?

Semantisch legend beschreibt ein fieldset , nur wie label beschreibt ein einzelnes Feld.

Fieldsets sollen Gruppe zusammen semantisch verwandten Bereichen verwendet werden (zum Beispiel eine „Adresse“ Fieldset könnten Eingabefelder für Straße, Stadt und Land haben).

Angenommen, Sie mehr als ein Feld in der Feldgruppe haben, dann tun, was Sie vorschlagen Sinn nicht semantisch machen -. Sie separate Legende Text erstellen müssen, die Fieldset beschreibt, dann ein Etikett für jedes Feld

Wenn Sie nur ein Feld haben, dann müssen Sie nicht Fieldset oder Legende überhaupt.

Also, im Grunde sollte man nicht tun, was Sie tun.

Wenn Sie es tun zusätzliche Elemente haben CSS-Regeln oder Javascript Ereignisse heften sich an, du bist besser dran generische Elemente wie div und span verwenden, die nicht Text-zu-Sprache verwirren und andere nicht-visuelle Benutzer Mittel.

d., In einem div oder span setzt effektiv neutral in Bezug auf Zugänglichkeit / Semantik (es nichts bedeutet) im Vergleich zu einem semantischen Elemente zu mißbrauchen (wenn auch nur geringfügig, wie in diesem Fall), die potenziell irreführend. Stell dir vor, selbst die best-case Szenario für Ihr Layout in einem Text-to-Speech-Browser: Der Text wird laut zweimal gelesen, einmal als Legende und einmal als Label - warum jemand den Satz wünschen würde: „Ich gerne Informationen würden auf“, um sie laut zweimal gelesen? Vor allem, weil es macht nur Sinn, im Rahmen der Entscheidungen in der select Kontrolle.

Andere Tipps

gut, das Label-Element selbst scheint in Ordnung - es ist die Beschreibung des „formInfo“ Element ist, das ist also keine Sorgen. Semantisch aber was ist das Wort vom legend Elemente? Es sollte eine Beschriftung für das gesamte Fieldset sein ....

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top