KWALIFIKACJA INF3 - TEST WIEDZY NR 4

PYTANIE NR 17.
Przeanalizuj poniższy fragment kodu HTML:
<div id="header"></div>
<div id="header"></div>

Co jest niepoprawne w tym kodzie pod względem walidacji?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W kodzie ten sam identyfikator id="header" został użyty w dwóch elementach. W HTML wartość atrybutu id ma jednoznacznie wskazywać pojedynczy element w całym dokumencie, aby odwołania w CSS/JS były jednoznaczne. Duplikacja id powoduje błąd walidacji i nieprzewidywalne selekcje.

Pełne wyjaśnienie:

W pokazanym fragmencie występują dwa elementy z identycznym atrybutem id="header". Z punktu widzenia poprawności dokumentu HTML identyfikator (id) powinien wskazywać jeden, unikalny element w obrębie całego dokumentu. Dzięki temu odwołania do elementu są jednoznaczne.

Dlaczego to ważne w praktyce?

  • CSS: selektor oparty o id (np. #header) ma wskazywać konkretny, pojedynczy element. Przy duplikacji stylowanie może objąć nie ten element, który autor miał na myśli.
  • JavaScript/DOM: mechanizmy wyszukiwania po id zakładają jednoznaczność. Gdy id się powtarza, kod staje się nieprzewidywalny (może zostać zwrócony pierwszy pasujący element, a nie "ten właściwy").
  • Nawigacja i odwołania: linki do kotwic i różne powiązania w dokumencie przestają być jednoznaczne.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "Znaczniki div nie powinny być używane bez zawartości." Samo użycie pustego elementu nie jest z definicji błędem walidacji. Pusty element bywa celowy, np. jako kontener na treść wstawianą skryptem lub tło/układ CSS.
  • "Znacznik div powinien zawsze być zamknięty znacznikiem /div." W podanym fragmencie każdy element ma poprawne zamknięcie, więc nie ma tu naruszenia składni.
  • "Brakuje deklaracji DOCTYPE na początku dokumentu." Pytanie dotyczy walidacji fragmentu i wskazania błędu w tym fragmencie. Brak DOCTYPE dotyczyłby kompletnego dokumentu HTML, ale nie wynika bezpośrednio z zaprezentowanego wycinka i nie tłumaczy problemu widocznego w kodzie.

Wskazówka egzaminacyjna: gdy widzisz powtórzone id w kilku elementach, to jest to jeden z najczęstszych i najbardziej "walidacyjnych" błędów. Jeśli potrzebujesz oznaczyć wiele elementów, użyj class albo nadaj różne wartości id.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Atrybut id nadaje elementowi unikalny identyfikator w obrębie całego dokumentu HTML. Dzięki temu można jednoznacznie odwołać się do elementu w CSS (selektor #id), w JavaScript (wyszukiwanie po id) oraz w linkach do kotwic.
Unikalność id zapewnia jednoznaczność: stylowanie CSS i operacje w DOM nie powinny "zgadywać", o który element chodzi. Gdy id się powtarza, kod może działać nieprzewidywalnie, a walidator HTML zgłosi błąd semantyczny.
Selektor CSS typu #header powinien wskazywać jeden element. Jeśli id jest powielone, stylowanie może objąć kilka elementów lub dać efekt trudny do utrzymania. To psuje czytelność projektu i zwiększa ryzyko konfliktów stylów w większej stronie.
W JavaScript często zakłada się, że id jest unikalne (np. przy wyszukiwaniu elementu po id). Gdy id powtarza się, skrypt może pobrać inny element niż oczekiwano (zwykle pierwszy pasujący), co prowadzi do błędów logiki i trudnych do diagnozy awarii.
Nie zawsze. Pusty div może być poprawny, jeśli pełni rolę kontenera na treść wstawianą później (np. przez JS) albo jest używany do układu/warstwy tła w CSS. Walidacja częściej dotyczy błędów składni i reguł typu unikalność id.
Jeśli kilka elementów ma wspólną cechę, użyj class zamiast id. Klasa może występować wielokrotnie i jest naturalna do grupowego stylowania oraz wyszukiwania. Id zostaw do elementów, które muszą być pojedyncze i jednoznaczne.
DOCTYPE jest ważny w kompletnym dokumencie, bo wpływa na tryb renderowania przeglądarki. Jednak w pytaniach o analizę fragmentu kodu najpierw sprawdza się błędy widoczne w samym fragmencie. Brak DOCTYPE nie tłumaczy duplikacji identyfikatora.
Najprościej użyć walidatora HTML (np. usługi W3C). Wklejasz kod lub podajesz adres strony, a narzędzie zwraca listę błędów i ostrzeżeń. To dobre ćwiczenie do INF.3: uczysz się typowych problemów, takich jak zduplikowane id.
Należy zostawić id tylko dla jednego elementu (np. id="header") i zmienić drugi identyfikator na inny (np. id="header2") albo zastąpić wspólną cechę klasą (np. class="header"). Wybór zależy od tego, czy element ma być unikalny.
Często myli się reguły walidacji z "gustem" kodowania: uznaje się puste elementy za błędne albo skupia na DOCTYPE, ignorując unikalność id. Warto ćwiczyć na krótkich fragmentach: znaleźć jeden konkretny błąd, który łamie zasady dokumentu.
info

Statystycznie 79% uczniów zna prawidłową odpowiedź. średnio łatwe

Według specjalistów z branży: "W kodzie ten sam identyfikator id="header" został użyty w dwóch elementach."

Źródła:

  • WHATWG HTML Living Standard – Global attributes: the id attribute (unikalność identyfikatora w dokumencie), https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute (dostęp: 2026-03-01)
  • MDN Web Docs – Global attributes: id, https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id (dostęp: 2026-03-01)
  • W3C Markup Validation Service – informacje o walidacji HTML i typowych błędach, https://validator.w3.org/docs/help.html (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja WHATWG HTML Living Standard – atrybut globalny id
  • MDN Web Docs – opis atrybutu id i konsekwencje duplikacji
  • W3C Markup Validation Service – ćwiczenia z walidacją HTML

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego