Атрибут HTML – required

Булів атрибут required (обов'язковий), якщо присутній, вказує, що користувач повинен задати значення в полі, перш ніж форма-власник цього поля може бути подана.

Атрибут required підтримується типами <input>: text, search, url, tel, email, password, date, month, week, time, datetime-local, number, checkbox, radio, file, а також контрольними елементами форм <select> і <textarea>. Коли він присутній на будь-якому з цих типів полів та елементів, то такий елемент дає збіг зі псевдокласом :required. Якщо цей атрибут не задано, то збіг буде з псевдокласом :optional.

Цей атрибут не підтримується і не має змісту на полях типів range і color, адже вони обидва мають усталені значення. Усталене значення для типу color#000000. Усталене значення типу range – це середина між min і max, причому min і max у більшості браузерів усталено мають значення 0 і 100 відповідно, коли не оголошені. Атрибут required також не підтримується на полях типу hidden: не можна очікувати того, що користувачі заповнять приховане поле форми. Врешті-решт, required не підтримується на жодному з кнопкових типів полів, серед яких також image.

У випадку однойменної групи кнопок radio, якщо хоч одна радіокнопка в групі має атрибут required, то в цій групі повинна бути вибрана радіокнопка, хоч це й не обов'язково повинна бути та, до котрої застосовано атрибут. Щоб полегшити підтримку коду, рекомендується або включати атрибут required в кожну однойменну радіокнопку в групі, або ж взагалі не включати його.

У випадку однойменної групи полів типу checkbox – обов'язковими є лише ті поля для галочок, що мають атрибут required.

[!NOTE] Якщо задати aria-required="true", то це повідомляє читачам з екрана, що елемент (будь-який елемент) є обов'язковим, але на фактичну обов'язковість це не впливає.

Взаємодія між атрибутами

У зв'язку з тим, що поле лише для прочитання не може бути змінено, атрибут required не має жодного впливу на поля, на яких також задано readonly.

Зручність

При доданні атрибута required слід надавати видиме позначення поруч з контрольним елементом, що сповіщатиме користувачів про те, що <input>, <select> або <textarea> є обов'язковим. На додачу до цього, слід використовувати псевдоклас :required, оформлюючи елементи так, аби було видно, що вони обов'язкові. Це покращує зручність для зрячих користувачів. Допоміжні технології повинні сповіщати користувачів, що контрольний елемент є обов'язковим, на основі атрибута required, але додавання aria-required="true" також не завадить, якщо комбінація браузера та читача з екрана ще не підтримує required.

Валідація обмежень

Якщо елемент є обов'язковим, а його значення — порожній рядок, то елемент переживає стан valueMissing і буде відповідати псевдокласу :invalid.

Занепокоєння щодо доступності

Слід надавати користувачам позначення того, що контрольний елемент є обов'язковим. Варто пересвідчитись, що це позначення є багатогранним: за допомогою тексту, кольору, знаків та атрибута, щоб усі користувачі розуміли вимоги, незалежно від власних колірної сліпоти, когнітивних особливостей і використання читача з екрана.

Приклад

HTML

<form>
  <div class="group">
    <input type="text" />
    <label>Нормальне поле</label>
  </div>
  <div class="group">
    <input type="text" required />
    <label>Обов'язкове поле</label>
  </div>
  <input type="submit" />
</form>

Результат

Дивіться також