Lieber Matthias,
Stell dir eine zweispaltige Tabelle mit den Spalten Name und Anzahl vor. In der Spalte Anzahl steht ein input. In Wirklichkeit ist es etwas komplexer aber in jeder Spalte steht entweder ein input-Element oder Text.
ich sehe das so: Eine Tabellenüberschrift (<th>
) beschreibt einen Inhalt, nicht aber den Sinn eines Eingabe-Elements. Im Falle von "Anzahl" mag das ja noch einigermaßen hinhauen, weil eine Anzahl keine Einheit benötigt (die wäre wohl "Stück" oder "Exemplar"). Aber so ganz prinzipiell ist ein Eingabefeld kein Inhalt.
Was spricht denn dagegen, grundsätzlich um jedes Eingabefeld ein
<label>
zu schnüren?
- die richtige Beschriftung zu bestimmen
- der Aufwand, das label für Sehende auszublenden
Ach so. Schauen wir mal.
"Die richtige Beschriftung zu bestimmen" ist ein Problem? Eines, das durch die Spaltenüberschrift hinreichend abgedeckt werden kann? Das klingt für mich nicht nachvollziehbar logisch. Dazu kommt noch, dass ein solches Formularelement vermutlich serverseitig ausgewertet werden soll. Welchen Kontext versteht denn der Server? Der hat doch irgendetwas, das er mit der Anzahl in Verbindung bringen soll! Warum kann er dann beim Erstellen des Formulars keine sinnvolle Beschriftung leisten?
"Der Aufwand, das label für Sehende auszublenden" sollte ganz schnell erledigt sein, wenn Du das Label nicht um das Eingabefeld herum gruppierst, sondern beide als Geschwisterknoten mit for
- und id
-Attributen verknüpfst. Dann kann CSS das ganz schnell unsichtbar machen.
Liebe Grüße
Felix Riesterer