KWALIFIKACJA INF3 - STYCZEŃ 2021 (test 2)

PYTANIE NR 12.
Który z poniższych przykładów kodu HTML5 zostanie zakwalifikowany przez walidator HTML jako błędny?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Walidator zgłosi błąd, gdy w elemencie <p> umieścisz <style>. Akapit przyjmuje treść frazową, a <style> to element metadanych i nie jest dozwolonym potomkiem <p> (błąd modelu treści). Pozostałe warianty pokazują poprawne użycie atrybutów class, id i style w <p>.

Pełne wyjaśnienie:

Pytanie sprawdza, czy rozumiesz, że walidacja HTML obejmuje nie tylko składnię (np. domknięcie znaczników), ale też model treści, czyli to, jakie elementy mogą być zagnieżdżone w innych.

Odpowiedź zawierająca fragment z <style> wewnątrz <p> jest błędna, ponieważ element <p> (akapit) ma model treści ograniczony do treści frazowej (tekst, elementy typu <span>, <em> itp.). Element <style> jest elementem metadanych i służy do definiowania reguł stylów, a nie do bycia częścią treści akapitu. W praktyce przeglądarka może "poradzić sobie" z takim kodem, ale walidator ma obowiązek wskazać niepoprawne zagnieżdżenie.

Pozostałe przykłady są poprawne z punktu widzenia HTML:

  • Wariant z class oraz id mieści się w typowym użyciu: atrybuty identyfikują element do stylowania lub skryptów.
  • Wariant z atrybutem style (styl inline) jest formalnie dopuszczalny: reguła CSS jest przypisana bezpośrednio do elementu.
  • Wariant z samym class również jest poprawny: klasa może być potem użyta w arkuszu stylów.

Typowy błąd na egzaminie polega na myśleniu: "skoro <style> dotyczy wyglądu tekstu w <p>, to mogę go tam wstawić". Walidator rozdziela jednak warstwę treści od metadanych i wymusza poprawną strukturę dokumentu.

Wskazówka praktyczna: jeśli potrzebujesz stylów, umieszczaj je w sekcji <head> albo w zewnętrznym pliku CSS, a w treści używaj klas/identyfikatorów do powiązania elementów z regułami.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Walidator HTML to narzędzie, które porównuje dokument z regułami specyfikacji HTML. Sprawdza nie tylko składnię (np. domknięcie znaczników), ale też poprawność struktury, czyli czy elementy są zagnieżdżone zgodnie z modelem treści. Dzięki temu wykrywa błędy, które przeglądarka może "ukryć".
Element <style> jest elementem metadanych, a <p> powinien zawierać treść frazową (tekst i drobne elementy inline). Wstawienie <style> do środka akapitu łamie model treści, więc walidator zgłosi błąd, nawet jeśli przeglądarka spróbuje to naprawić.
class może wystąpić na wielu elementach i służy do grupowania (np. wspólne style). id powinno być unikalne w całym dokumencie i identyfikuje pojedynczy element (np. do nawigacji, skryptów, stylowania). Oba atrybuty są poprawne w elementach takich jak <p>.
Tak, atrybut style (CSS inline) jest poprawny formalnie. Używa się go do szybkiego nadania stylu pojedynczemu elementowi, np. testowo lub w prostych szablonach. W praktyce zaleca się częściej style w plikach CSS i używanie class/id dla lepszej czytelności.
Najczęstsze to: niepoprawne zagnieżdżanie (np. element "nie może być potomkiem" innego), brakujące atrybuty wymagane w danym kontekście, duplikaty id, błędne wartości atrybutów oraz użycie elementów w niewłaściwym miejscu dokumentu. Egzamin często celuje w model treści, nie tylko literówki.
Tak. Przeglądarki mają mechanizmy naprawy błędów parsera HTML i często renderują stronę "w miarę dobrze". To nie znaczy, że kod jest poprawny: walidator może wskazać problemy, które później skutkują innym DOM niż oczekujesz, błędami w CSS/JS albo problemami z dostępnością.
Najczęściej w zewnętrznym pliku CSS podłączonym przez <link> w sekcji <head>. Dopuszczalne jest też użycie <style> (zwykle w <head>). Styl inline w atrybucie style jest poprawny, ale mniej zalecany w większych projektach.
Szukaj sytuacji, gdy element "blokowy/metadanych" jest wstawiony do środka elementu, który przyjmuje tylko treść frazową. Pomaga reguła: akapit <p> to głównie tekst i elementy inline. Jeśli widzisz w nim coś typu <style> lub inne nietypowe elementy, to sygnał błędu walidacji.
<pre> wpływa na formatowanie wyświetlanego tekstu (zachowanie białych znaków), ale walidator ocenia strukturę HTML, a nie to, czy kod wygląda jak "ładny blok". Jeśli wewnętrzny fragment (np. wstawiany jako tekst lub generowany) łamie zasady zagnieżdżania, walidator nadal może zgłosić błąd.
Ćwicz na realnym walidatorze (np. Nu HTML Checker) i analizuj komunikaty "element not allowed as child of…". Powtórz modele treści najczęstszych elementów: <p>, listy, tabele, sekcje nagłówkowe. Rób krótkie testy: co wolno zagnieżdżać, a co jest tylko dla <head>.
info

Około 40% zdających odpowiada poprawnie na to pytanie. trudne

Eksperci podkreślają: "Walidator zgłosi błąd, gdy w elemencie &lt;p&gt; umieścisz &lt;style&gt;."

Źródła:

  • WHATWG HTML Living Standard – The p element (content model) oraz The style element (kategorie i dozwolone umiejscowienie), https://html.spec.whatwg.org/ (odpowiednie sekcje specyfikacji) – dostęp 2026-03-02
  • Nu HTML Checker (dokumentacja i zachowanie walidatora), https://validator.w3.org/nu/ – dostęp 2026-03-02
  • MDN Web Docs – &lt;p&gt;: The Paragraph element, https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p – dostęp 2026-03-02

Materiały:

  • Dokumentacja specyfikacji HTML (modele treści elementów)
  • Dokumentacja walidatora Nu HTML Checker i przykłady komunikatów błędów
  • MDN Web Docs: opisy elementów &lt;p&gt; i &lt;style&gt; oraz zasady osadzania CSS

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego