edubun
Русский

Подписи полей формы

Текстовое поле рядом со словом «Email» не подписано, пока элемент label не связан с ним; до этого экранный диктор может сказать только «поле редактирования».

Каждому полю нужно имя

Когда фокус попадает в поле формы, экранный диктор объявляет его подпись, тип и состояние: «Email, поле редактирования, обязательное». Подпись берётся из элемента label, связанного с полем. Связать их можно двумя способами. Дать input атрибут id, а label такой же for, или поместить input внутрь label. В обоих случаях щелчок по тексту подписи тоже переводит фокус в поле, и в маленькие флажки и переключатели становится гораздо легче попасть.

<label for="email">Email</label>
<input id="email" type="email" autocomplete="email">

<label>
  <input type="checkbox" name="news"> Send me the weekly menu
</label>
Два способа подписать поле: for и id или вложение.

Критерий успешного применения 3.3.2 «Метки или инструкции» уровня A в WCAG 2.2 требует подписей или инструкций везде, где содержимому нужен ввод пользователя, а 1.3.1 «Информация и смысловые связи» требует, чтобы связь подписи и поля была в коде, а не только на экране. Абзац, который просто стоит над полем ввода, близок к нему только на вид; ничто не сообщает вспомогательным технологиям, что они связаны.

Подсказка не является подписью

Атрибут placeholder показывает серый текст-подсказку внутри пустого поля. Его соблазнительно использовать вместо подписи, и многие формы регистрации так и делают. Беда в том, что он исчезает, как только начинаешь печатать, и уже не проверить, для чего было поле, а ещё он обычно настолько бледный, что не проходит правила контраста из прошлого урока. Используй видимую подпись и, если хочешь, вдобавок подсказку с примером значения.

Группы, назначение и ошибки

Переключателям и связанным флажкам тоже нужна подпись группы. Оберни их в fieldset и помести вопрос в его legend, тогда экранный диктор скажет «Размер, группа» перед «Маленький, переключатель, 1 из 3». Для личных данных атрибут autocomplete сообщает браузеру, для чего поле, с помощью имён из стандарта HTML, таких как name, email, tel, new-password и one-time-code. Критерий 1.3.5 «Указание назначения полей ввода информации» уровня AA требует именно этого, потому что так браузеры могут заполнять поля, а некоторые инструменты показывают рядом с ними знакомые значки.

Если что-то пошло не так, скажи об этом словами. Критерий 3.3.1 «Выявление ошибок» требует, чтобы ошибка ввода была обнаружена и описана пользователю текстом, а не только красной рамкой. В WCAG 2.2 добавлен и критерий 3.3.7 «Повторный ввод»: сведения, которые человек уже ввёл в том же процессе, нужно подставить за него снова или предложить выбрать, а не заставлять печатать их дважды. А 3.3.8 «Доступная аутентификация (минимальные требования)» уровня AA говорит, что шаг входа не должен зависеть от того, чтобы что-то запомнить или переписать, если нет помощи; такой помощью считаются и заполнение поля менеджером паролей, и разрешённая вставка.

Скажи, что нужно, до того как люди начнут

Инструкциям место перед полями, которые они описывают, а не в сообщении об ошибке после неудачи. Если пароль должен быть не короче 15 символов, напиши это рядом с подписью. Отмечай обязательные поля в тексте подписи, например словом «обязательно», и добавляй атрибут required, чтобы браузер тоже это объявлял. Когда появляется сообщение об ошибке, держи его рядом с полем и свяжи их через aria-describedby, указывающий на id сообщения; тогда экранный диктор прочитает сообщение, когда поле получит фокус. И наконец, переведи фокус на первое поле с ошибкой или на сводку ошибок вверху, чтобы пользователь клавиатуры не остался внизу длинной формы, гадая, что произошло.

label for="x"Связывает подпись с полем, у которого id="x"
WCAG 3.3.2Метки или инструкции (A)
WCAG 1.3.5Указание назначения полей ввода информации (AA): autocomplete
fieldset + legendПодпись группы для переключателей и флажков
WCAG 3.3.7Повторный ввод (A), новый в 2.2
WCAG 3.3.8Доступная аутентификация (минимальные требования), AA: разреши вставку и менеджеры паролей
Главное
  • Связывай каждое поле с подписью через for и id или вложением.
  • Подсказка исчезает и часто слишком бледная; это не подпись.
  • Группируй переключатели с fieldset и legend; для личных данных используй autocomplete.
  • Описывай ошибки текстом; не заставляй людей заново печатать или запоминать что-то для входа.
  1. Какой атрибут label указывает на id своего поля ввода?
  2. Почему подсказки недостаточно в роли подписи?
    • Она исчезает при вводе и часто слишком бледная
    • Браузеры её игнорируют
    • Она запрещена в HTML
    • Она работает только на телефонах
  3. Что ещё происходит, когда подпись связана с флажком?
    • Щелчок по тексту подписи ставит флажок
    • Флажок становится больше
    • Форма отправляется
    • Больше ничего
  4. Какие элементы дают группе переключателей её вопрос?
    • fieldset и legend
    • div и span
    • form и button
    • ul и li
  5. Какое значение autocomplete нужно полю email?
  6. Какой критерий требует, чтобы поля для личных данных указывали своё назначение?
    • 1.3.5 Указание назначения полей ввода информации
    • 1.1.1 Нетекстовый контент
    • 2.4.7 Видимый указатель
    • 1.4.1 Использование цвета
  7. Ошибку показывает только красная рамка. Чего не хватает?
    • Текстового описания ошибки
    • Более яркого красного
    • Звука
    • Более толстой рамки
  8. Форма входа запрещает вставку в поле пароля. Против какого критерия WCAG 2.2 это работает?
    • 3.3.8 Доступная аутентификация (минимальные требования)
    • 2.4.6 Заголовки и метки
    • 1.4.3 Контрастность (минимальные требования)
    • 2.5.8 Размер области для наведения указателя (минимальные требования)
  9. При оформлении заказа на следующем шаге снова спрашивают адрес доставки. Какой критерий помогает?
    • 3.3.7 Повторный ввод
    • 2.1.1 Клавиатура
    • 1.3.1 Информация и смысловые связи
    • 2.4.3 Перемещение указателя
  10. Какое поле подписано правильно?
    • City

Источники курса (9)
  • W3C, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation first published 5 October 2023, current edition 12 December 2024 (w3.org/TR/WCAG22/, checked 2026-10-17, rechecked 2026-10-18)
  • W3C WAI, What's new in WCAG 2.2 (w3.org/WAI/standards-guidelines/wcag/new-in-22/, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree/, checked 2026-10-17)
  • W3C, Using ARIA (w3.org/TR/using-aria/, Discontinued Draft 24 February 2026, rules 1 to 4, checked 2026-10-17)
  • W3C WAI-ARIA Authoring Practices Guide, Read Me First, "No ARIA is better than bad ARIA" (w3.org/WAI/ARIA/apg/practices/read-me-first/, checked 2026-10-17)
  • MDN Web Docs, tabindex (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex, checked 2026-10-17)
  • MDN, Heading elements, accessibility notes (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements, checked 2026-10-17)
  • MDN, autocomplete attribute (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete, checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

Проверено: 2026-10-17