W kodzie HTML5 znajduje się fragment, który zawiera błąd walidacji. Jakiego rodzaju jest to błąd? <h6>tekst</h6>
<p>pierwsza <b>linia</b><br>
<p>Druga linia</p>
W tym zadaniu chodziło o rozpoznanie typowego błędu związanego z poprawnym zamykaniem znaczników HTML, a dokładniej – ze znacznikiem <p>. W przedstawionym kodzie rzeczywiście pierwszy znacznik <p> nie został zamknięty przed pojawieniem się kolejnego bloku <p>, co powoduje naruszenie struktury dokumentu. Według specyfikacji HTML5, element <p> nie powinien być zagnieżdżany ani przerwany przez inny blokowy element (w tym przypadku przez drugi <p>). Przeglądarki zwykle próbują automatycznie domykać taki znacznik, ale nie jest to dobra praktyka – takie poleganie na mechanizmach autokorekty może później prowadzić do trudnych do wykrycia błędów wizualnych albo nieprzewidywalnych efektów w stylach CSS. Z mojego doświadczenia wynika, że konsekwentne zamykanie znaczników nie tylko poprawia czytelność kodu, ale i ułatwia pracę zespołową oraz skalowanie projektu. Przykład: jeśli piszesz większy artykuł i zapomnisz zamknąć <p>, cała dalsza część tekstu może zostać potraktowana jako jeden paragraf. To potrafi solidnie namieszać, nawet w prostych stronach! Branża webowa od lat promuje zasadę – pisz zgodnie ze specyfikacją, a będziesz miał mniej problemów później. Zawsze lepiej przejrzeć strukturę dokumentu dwa razy, niż potem szukać błędów na produkcji. Przy pracy z edytorami kodu warto korzystać z funkcji podświetlania składni lub walidatorów HTML, które od razu wyłapują takie potknięcia.
W pytaniu pojawia się kilka typowych nieporozumień dotyczących składni HTML5, które często się przewijają podczas nauki. Jednym z nich jest przekonanie, że znaczniki HTML powinny być pisane wielkimi literami – to nieprawda. Współczesny HTML, zgodnie ze standardem HTML5, jest case-insensitive, ale powszechną best practice jest używanie małych liter dla lepszej czytelności i zgodności z narzędziami walidującymi. Wielkie litery to już raczej relikt epoki XHTML, a nawet tam nie były konieczne. Kolejna sprawa to rzekomy brak nagłówka szóstego poziomu – <h6> – co nie ma pokrycia w rzeczywistości. <h6> to absolutnie poprawny i często używany element HTML, szczególnie przy rozbudowanej hierarchii nagłówków w dużych dokumentach. Pominięcie lub zakwestionowanie istnienia tego znacznika może świadczyć o powierzchownym zapoznaniu się ze strukturą HTML. Inna wątpliwość dotyczy znacznika <br> i jego zamykania. W HTML5 nie jest wymagane samo-domykanie tego znacznika (czyli <br />), ponieważ parsery przeglądarek rozumieją zarówno wersję z ukośnikiem, jak i bez niego – to różnica względem XHTML, gdzie domknięcie było obowiązkowe. Często spotykam się też z mylnym przeświadczeniem, że pojedyncze <br> bez ukośnika powoduje błąd – to nieprawda. Prawdziwym źródłem problemu w tym kodzie jest nieuwzględnienie zamknięcia pierwszego paragrafu przed rozpoczęciem kolejnego bloku <p>. To właśnie ten aspekt narusza poprawną strukturę dokumentu HTML5 i prowadzi do niezgodności z walidacją. Moim zdaniem, zrozumienie, które elementy muszą być jawnie domykane, a które mogą być samo-domykające się, to klucz do uniknięcia niepotrzebnych błędów i frustracji podczas kodowania stron internetowych.