Który z fragmentów kodu HTML5 zostanie uznany przez walidator za niepoprawny?
<img src="kot.jpg" alt="Kot">
<a href="kontakt.html">Kontakt</a>
<p class="info" class="ramka">Tekst</p>
<input type="text" name="imie">
Niepoprawny jest fragment <p class="info" class="ramka">. Każdy atrybut może wystąpić w znaczniku tylko raz, więc walidator zgłosi błąd „Duplicate attribute class”. Przeglądarka weźmie pod uwagę wyłącznie pierwszą wartość, a druga klasa zostanie po cichu pominięta i jej style nie zadziałają.
Do zapamiętania: kilka klas zapisuje się w jednym atrybucie, oddzielając je spacjami: <p class="info ramka">. Element dostaje wtedy style z obu reguł CSS, .info i .ramka. W JavaScripcie listą klas zarządza się przez właściwość classList, a w PHP przy generowaniu kodu warto składać klasy w jeden napis.
Pozostałe fragmenty są poprawne, choć mogą wydawać się niepełne. Odnośnik <a href="kontakt.html"> ma wymagany adres i treść, a ścieżka względna jest w pełni dozwolona. Pole <input type="text" name="imie"> to element pusty, więc w HTML5 nie potrzebuje znacznika zamykającego ani ukośnika na końcu.
Obraz <img src="kot.jpg" alt="Kot"> ma oba atrybuty, których wymaga walidator: src z adresem pliku i alt z tekstem alternatywnym. Brak któregoś z nich byłby błędem, ale tu niczego nie brakuje. Typowy odruch to szukanie błędu w najdłuższym albo najbardziej złożonym kodzie - tymczasem walidator patrzy na reguły: czy atrybuty są dozwolone, czy wymagane są obecne i czy żaden się nie powtarza.
Zdublowany atrybut łatwo przeoczyć wzrokiem, ale walidator wychwyci go od razu.