Hallo Matthias,
<b> oder <i> sind für mich bestenfalls sinnvoll, wenn innerhalb eines Fließtextes einzelne Worte oder Phrasen hervorzuheben sind. <strong> hat Semantik:
<strong> indicates that its contents have strong importance, seriousness, or urgency.
Die Bedeutung "Boldface" für <b> wurde aufgehoben. MDN schreibt:
The HTML Bring Attention To element (<b>) is used to draw the reader's attention to the element's contents, which are not otherwise granted special importance. (...) The <b> element doesn't convey (...) special semantic information; use it only when no others fit.
Okay. Könnte man also tun. Es ist aber nicht nötig. Im Beispiel befindet sich der hervorzuhebende Text komplett in einem <label> Element. Das habe ich per CSS eingefettet und damit ist's gut.
Wenn man das Markup nicht so
<label for="resultat">...</label><output id="resultat"></output>
sondern so
<label id="resultat_label">...<output id="resultat"></output></label>
gestalten würde, dann wäre ein <b> Element als Zielobjekt für JavaScript sinnvoll. Im Beispiel identifiziere ich das Label über querySelector("label[for=resultat]")
, das ist eigentlich ganz praktisch und spart eine eigene ID. Ich hatte tatsächlich eine Weile hin- und herüberlegt, was - auch in Hinblick auf die JavaScript Programmierung - das beste Markup ist. Ganz sicher bin ich mir nicht. Diese Version ist eigentlich auch nicht schlecht - mich störte nur das zusätzliche Kindelement:
<label id="resultat">
<b></b>
<output></output>
</label>
const resultat_label = document.querySelector("#resultat b"),
resultat_wert = document.querySelector("#resultat output");
aber dann hat man eine relativ starke Abhängigkeit zwischen der Struktur des Markup und dem JavaScript. Vermutlich ist das auch nicht das Beste. Die ursprüngliche Implementierung verwendete eine eigene ID für das Element, in das der Label-Text geschrieben wird. Das ergibt Markup, das mit IDs vollgestopft ist. Was ist besser?
Rolf
sumpsi - posui - obstruxi