Модуль 2 · Урок 8

Форми, labels і native validation

Form — контракт введення й submit data. Кожний control потребує зрозумілого purpose, видимого label, стабільного name, доречного native type та мінімально необхідних constraints.

LabelsControlsname/valueValidation

Три різні identifiers

AttributeRoleFailure example
idDocument-unique target для label/fragmentДва controls з однаковим id
forЗв’язує label з exact control idTypo не створює association
nameKey під час form submitControl без name не передає pair

Placeholder може показати короткий hint, але зникає під час вводу й не замінює persistent label.

Native controls і groups

Text-like inputemail, url, number дають native semantics/behavior, але не гарантують truthful data.
textareaБагаторядковий text input; initial value пишеться між tags.
select/optionВибір із наперед визначених values.
fieldset/legendMeaningful group, особливо radio/checkbox questions.
button typesubmit надсилає form, button не submitить автоматично.
InstructionsFormat/constraint пояснюються до помилки, а message називає control і спосіб виправлення.

Native constraints — перший gate, не security boundary

AttributeПеревіряєНе доводить
requiredValue missingЩо value правдиве
minlength/maxlengthText lengthЩо content безпечний
min/max/stepNumeric/date rangeBusiness authorization
patternClient-side formatServer-side validation
autocompleteBrowser autofill purpose hintConsent збирати зайві PII

Мінімізуйте дані

Навчальна форма пакета не просить ім’я, email або телефон. Client-side validation покращує UX, але production server все одно перевіряє, авторизує й безпечно обробляє input.

Практика модуля

  1. Заповніть form-control-map.csv: purpose, label, name, type, constraints.
  2. Додайте explicit labels, required fields і explicit button type.
  3. Перевірте click по label, keyboard flow, empty/invalid/valid states.
  4. Завершіть semantic checklist і порівняйте starter із reference.

BookFlow Semantic Page Pack

Starter/reference HTML, SVG і сім audit artifacts. Форма не має зовнішнього endpoint і використовує лише synthetic values.

Завантажити semantic HTML pack →

Офіційні джерела

Практична перевірка · урок 8 з 60

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Як explicit label пов’язується з input?
2. За що відповідає name control?
3. Чи замінює placeholder label?