Deklaracja kodowania znaków informuje przeglądarkę, jak interpretować bajty pliku HTML jako znaki (np. polskie litery). W HTML robi się to najczęściej przez element <meta charset="..."> umieszczony w sekcji <head> możliwie wysoko. W praktyce webowej standardem jest UTF-8, ponieważ obejmuje znaki z wielu alfabetów i minimalizuje ryzyko "krzaków".
Jeżeli walidator zgłasza błąd dotyczący deklaracji kodowania, oznacza to zwykle, że użyto nieprawidłowej/nieakceptowanej wartości w atrybucie charset albo że sposób deklaracji jest niezgodny z regułami walidacji dla danej wersji HTML. Stąd poprawna odpowiedź wskazuje, że w polu charset dopuszczalna jest wyłącznie wartość utf-8 (w kontekście tego konkretnego błędu z walidacji).
Dlaczego pozostałe odpowiedzi są niepoprawne?
- "w znaczniku meta nie występuje atrybut charset." — to opisuje brak atrybutu, a nie błąd mówiący o dozwolonych wartościach. Gdyby atrybutu nie było, komunikat walidatora dotyczyłby raczej braku deklaracji lub innej struktury znacznika.
- "oznaczenie ISO-8859-2 nie istnieje." — ISO-8859-2 jest znanym oznaczeniem kodowania (Latin-2). Walidacja może go nie akceptować w danym miejscu lub profilu, ale samo oznaczenie nie jest "nieistniejące".
- "oznaczenie kodowania znaków powinno być zapisane bez myślników." — w nazwach kodowań myślniki są normalne (np. UTF-8, ISO-8859-2). Problem nie polega na myślnikach jako takich, tylko na tym, jaka wartość jest dopuszczona w danym kontekście walidacji.
Wskazówka egzaminacyjna: w pytaniach o kodowanie rozróżniaj zalecenie projektowe (UTF-8 jako najlepsza praktyka) od konkretnego komunikatu walidatora, który może narzucać jedną wartość w danym profilu walidacji.