W języku XHTML zapisano fragment kodu, który zawiera błąd walidacji. Co jest jego przyczyną?
<h6>tekst</h6> <P>pierwsza <b>linia</b><br /> Druga linia</P>
<br /> jest zapisany niepoprawnie.<b> nie może być umieszczany wewnątrz znacznika <p>.XHTML jest zapisem HTML według reguł XML, a XML rozróżnia wielkość liter. Dlatego w XHTML wszystkie nazwy znaczników i atrybutów muszą być pisane małymi literami: <p> jest poprawny, a <P> - błędny. Ten sam akapit zapisany w zwykłym HTML5 przeszedłby walidację, bo HTML wielkości liter nie rozróżnia, choć i tam przyjęło się pisać małymi. Pozostałe reguły XHTML również widać w kodzie: każdy znacznik trzeba zamknąć, a elementy puste zamyka się ukośnikiem, jak <br />. Do zapamiętania: XHTML - małe litery, zamknięte znaczniki, wartości atrybutów w cudzysłowach. Walidator W3C wskaże taki błąd od razu.
Każdy z pozostałych zarzutów dotyczy fragmentu, który jest poprawny. Znacznik <h6> istnieje - HTML i XHTML mają sześć poziomów nagłówków, od <h1> do <h6>. Zapis <br /> to właśnie wymagana w XHTML postać elementu pustego zamkniętego ukośnikiem, więc nie on psuje walidację. Pogrubienie <b> wewnątrz akapitu jest w pełni dozwolone, bo to element liniowy, który może stać w tekście akapitu. Błędem jest zapis <P> i </P> wielkimi literami - walidator XHTML nie rozpozna takich znaczników, bo w XML nazwy p i P są różne. Walidator W3C zgłasza taki błąd jako nieznany element, bo w XHTML znacznik P zapisany wielką literą nie istnieje. W HTML5 ten sam kod przeszedłby walidację, dlatego kluczowe jest tu słowo XHTML w treści zadania. W nowych stronach stosuje się już HTML5, ale reguły XHTML wciąż pojawiają się w pytaniach.