Gunnar Bittersmann: Tabellen in Formularen

Beitrag lesen

@@Jörg

Aber warum <input type="submit" value="Absenden" />?

Besser <button type="submit">Absenden</button>. Wobei type="submit" Default ist, also entfallen kann.

Gibts einen Grund dafür, dass das besser ist?

Mehrere.

Da wäre nunächst einmal sprechender Code. <input type="submit"> sieht man nicht auf den ersten Blick an, dass es sich nicht um ein Eingabefeld, sondern um einen Button handelt. Dazu muss man schon noch einen zweiten Blick werfen – aufs Attribut. <button> hingegen ist selbsterklärend.

Noch entscheidender ist aber, dass die Beschriftung des Buttons nicht wie bei <input type="submit" value="Absenden" /> in einem Attribut steckt, sondern im Elementinhalt: <button>Absenden</button>. Das hat mehrere Vorteile:

Eine Buttonschriftung kann Markup enthalten:
<button><b>Jetzt</b> absenden!!!</button>
oder
<button>Absenden <img src="pfeil.svg" alt=""/></button>
oder
<button>Absenden <svg></svg></button>

Außerdem ignorieren automatische Übersetzer womöglich Attributwerte. (Was auch dafür spricht, eher aria-labelledby statt aria-label einzusetzen.)

Das trifft auch auf Alternativtexte für Bilder (alt-Attribute) zu. Da hat es ein Schnellschuss von Marc Adreesen in die HTML-Spezifikation geschafft. Inhalt in Attributen ist nie™ eine gute Idee, s.a. dieses Posting.

Dieser Sprachdesignfehler ist jetzt nicht mehr auszumerzen. Bei anderen Elementen wie object wurde es dann richtig gemacht: textuelle Alternative als Elementinhalt.

😷 LLAP

--
„Dann ist ja auch schrecklich, dass wir in einem Land leben, in dem nicht nur Bildungswillige leben, sondern auch hinreichende Zahlen von Bekloppten. Das darf ich so locker formulieren, ich bin ja jetzt Rentner und muss nicht mehr auf jedes Wort achten.“
— Joachim Gauck über Impfgegner