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.