Znaczniki HTML <strong> oraz <em> służące do podkreślenia ważności tekstu, pod względem formatowania są odpowiednikami znaczników
A. <b> oraz <u>
B. <u> oraz <sup>
C. <i> oraz <mark>
D. <b> oraz <i>
Pytanie z egzaminu CKE, czerwiec 2021 (arkusz EE.09-SG-21.06).
Elementy strong oraz em mają znaczenie semantyczne: strong oznacza tekst o dużej ważności, a em oznacza nacisk, czyli zaakcentowanie fragmentu wypowiedzi. Pod względem domyślnego formatowania w przeglądarkach strong zwykle wygląda jak b, czyli tekst pogrubiony, a em zwykle wygląda jak i, czyli tekst pochylony. Dlatego odpowiednikiem wizualnym jest para b oraz i. Ważne jest jednak to, że to nie są znaczniki o identycznym sensie. W standardach HTML, obecnie zgodnie z HTML Living Standard, zaleca się używać strong i em wtedy, gdy chcemy przekazać znaczenie treści, a nie tylko zmienić wygląd. Przykładowo w komunikacie formularza lepiej użyć strong dla ważnego ostrzeżenia, bo czytniki ekranowe i narzędzia dostępności mogą potraktować taki fragment inaczej. Natomiast samo pogrubienie nagłówka albo nazwy produktu można zrobić przez CSS, np. font-weight: bold. Moim zdaniem to jest jedna z tych rzeczy w HTML, które na początku wyglądają banalnie, ale później mocno wpływają na jakość i dostępność strony.
W tym pytaniu łatwo pomylić dwie sprawy: wygląd tekstu w przeglądarce oraz jego znaczenie semantyczne w strukturze dokumentu HTML. Element strong domyślnie jest renderowany podobnie jak b, czyli jako pogrubienie, a element em domyślnie przypomina i, czyli tekst pochylony. Nie chodzi tu więc o podkreślenie linią ani o wyróżnienie kolorem, tylko o typowy efekt wizualny nadawany przez style przeglądarki. Element mark służy do zaznaczania fragmentu tekstu jako istotnego w danym kontekście, często wygląda jak tekst podświetlony na żółto, ale nie jest odpowiednikiem em. Element u kojarzy się z podkreśleniem, jednak w HTML ma inne zastosowanie, np. oznaczanie tekstu o specjalnym charakterze, a w praktyce bywa też mylony z linkami, więc trzeba z nim uważać. Sup oznacza indeks górny, używany np. przy potęgach albo przypisach, więc nie ma związku z akcentowaniem ważności tekstu. Częsty błąd polega na tym, że słowo podkreślenie rozumie się dosłownie jako podkreślenie kreską. W HTML lepiej myśleć kategoriami semantyki: strong i em mówią, po co wyróżniamy tekst, a b i i głównie opisują, jak on wygląda. Z mojego doświadczenia warto to zapamiętać, bo potem przy CSS, dostępności i walidacji kodu ta różnica naprawdę wychodzi.