dedlfix: Welchen nutzen haben die Bezeichner id und for im HTML

Beitrag lesen

Tach!

<div class="form-group">

Hier wäre doch eventuell ein <fieldset> richtig?

Nicht wirklich. Ein fieldset gruppiert mehrere zusammengehörende Eingabeelemente. Ein fieldset um ein Eingabeelement ist nutzlos, eher schädlich.

Und welchen Schaden bringt ein fieldset hier, der ein div-Element nicht mitbringt?

Vermutlich soll ein Element mit der Klasse form-group tatsächlich etwas gruppieren — was bedeutet, das es hier fehl am Platze ist.

Bezieht sich das "es" auf das div oder das fieldset?

Jedenfalls sollte man etwas kennen, bevor mal darüber urteilt, sonst ist die ganze schöne Argumentation hinfällig, weil sie vom Ziel als nicht besonders glaubwürdig und vertane Zeit das zu lesen eingestuft wird. Auf Tools herumzuhacken bringt den Probleminhaber nicht weiter und sorgt auch nicht unbedingt für die nötige Motivation.

Mein Anliegen ist es, dem Probleminhaber nicht von oben herab Vorschriften zu machen, sondern ihn da abzuholen, wo er ist und ihn mitzunehmen. Dazu fand ich, dass "kann man, sollte man aber nicht" ein guter Einstieg auf die Frage nach dem "kann man …?" ist. Mehr sollte es gar nicht sein, und die eigentliche Aussage folgte auf dem Fuße. Ebenso eine Überreaktionen aufgrund dieser einleitenden Formulierung. Es gibt kein Gesetz, dass ein Input ein Label braucht, und deshalb erläutere ich das anhand der Vorteile, weil ich darauf hoffe, dass der Leser es nun aufgrund von Verständnis für die Arbeitsweise und die Folgen einsetzt und nicht nur als unumstößliche Vorschrift.

Zurück zum Thema. Die form-group gruppiert alle Elemente, die zu einem Formularelement gehören. Das betrifft nicht nur Label und Input sondern auch alle Elemente, die Hilfetexte oder Fehlermeldungen dafür beinhalten. Semantisch gesehen bilden diese Elemente eine Komponente. Komponenten sind auch kein unbekanntes Konzept mehr, wenn es darum geht, Anwendungen für das Web zu erstellen, wozu ich auch einfache Formulare zähle.

Zuum Nachteil falsch verwendeter HTML-Elemente: diese bringen ja nun mal eine Logik mit, die bei falscher Verwendung Verwirrung stiftet. Für fieldset ist das beispielsweise die implizite Rolle group. Was will mir der Seitenanbieter denn mitteilen, wenn er behauptet, dass Gruppen existieren,die ich nicht erkenne? — Sicher habe ich dann etwas übersehen. Oder nicht?

Diese Fragen drängen sich unwillkürlich auf und ein Benutzer kann sich dagegen nicht wehren. Bis er es aufgibt, diese Fragen zu klären, hast du ihm schlicht Lebenszeit geklaut, die er mit etwas angenehmeren hätte verbringen können.

Ich kann dieser Argumentation nicht so richtig folgen, denn ich kenne niemanden, der eine Website nutzen möchte und sich dazu die Semantik der verwendeten Elemente anschaut und sich daraufhin die Frage nach dem Sinn des Lebens stellt. Screenreader-Benutzer habe ich noch nicht kennengelernt, aber auch da vermute ich Menschen, die nicht gleich in Depression verfallen, nur weil die Semantik der Elemente ihren Screenreadern eine Herausforderung gibt. (Und nein, das soll keine Aufforderung sein, ihnen das Leben absichtlich zu erschweren. Das muss ich leider dazusagen, weil sonst gleich wieder das negativst mögliche hinzuinterpretiert und mir vorgeworfen wird.)

dedlfix.

083

Welchen nutzen haben die Bezeichner id und for im HTML

  1. 1
    1. 0
      1. 1
        1. 0
      2. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 1
        2. 0
          1. 0
    2. 0
  2. 0
  3. 0
    1. 1
      1. 0
        1. 1
          1. 0
        2. 0
          1. 0
            1. 1
              1. 0
                1. 0
                  1. 0
                    1. 0
            2. 0
              1. 1
                1. 1
                  1. 0

                    bootstrap

                    1. 0
                    2. 0
                    3. 2
                      1. 1
                        1. 1
                          1. 2
                            1. 3
                              1. 2
                                1. 0
                            2. 0
                              1. 0
                                1. 0
                                  1. 1
                            3. 1
                  2. 0
                    1. 0
                      1. 0
                        1. 0
                          1. 0
                            1. 0
                              1. 0
                                1. 0
                      2. 1
                        1. 0
                          1. 0
                        2. -1
                          1. 1
                            1. 0
                              1. 1
                                1. 1
                                  1. 0
                                    1. 1
                                      1. 0
                                        1. 3
  4. 3
    1. 1
      1. 0
        1. 1
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. -1
                          1. 1
      2. 0