W pokazanym fragmencie formularza HTML użyto elementu <input> z atrybutami type="password", size="30" oraz maxlength="20". Kluczowe jest rozróżnienie funkcji atrybutów size i maxlength.
maxlength="20" oznacza, że użytkownik może wprowadzić maksymalnie 20 znaków. To jest rzeczywiste ograniczenie długości danych wpisywanych do pola po stronie przeglądarki (walidacja po stronie klienta).
size="30" nie ustala limitu danych. Określa jedynie, jak szerokie pole jest wyświetlane (w przybliżeniu: na ile znaków jest "ustawione" wizualnie). Użytkownik może wpisać mniej lub więcej niż wynika z size, ale jeśli istnieje maxlength, to właśnie ono zatrzyma wprowadzanie po przekroczeniu limitu.
type="password" wpływa na sposób prezentacji wpisywanych znaków: przeglądarka maskuje je (np. kropkami lub gwiazdkami), aby osoby postronne nie mogły ich odczytać z ekranu. To maskowanie nie zmienia jednak samego limitu znaków.
Dlatego poprawna interpretacja jest taka, że pole służy do wprowadzenia maksymalnie 20 znaków, a podczas wpisywania znaki nie są widoczne w postaci jawnego tekstu.
- Odpowiedzi mówiące o 20 znakach widocznych są błędne, bo przeczą działaniu typu password (maskowanie).
- Odpowiedzi mówiące o 30 znakach są błędne, bo traktują size jako limit, podczas gdy limit wynika z maxlength.
- Odpowiedź o 30 znakach niewidocznych łączy prawidłową cechę maskowania z błędnym limitem długości.
W praktyce, przy projektowaniu formularzy, warto pamiętać, że ograniczenia w HTML (np. maxlength) nie zastępują walidacji po stronie serwera, ale poprawiają ergonomię i wstępnie porządkują dane wejściowe.