HTML 属性:required

如果存在,布尔属性 required 表示用户必须为输入指定一个值,然后才能提交其所属的表单。

required 属性支持 textsearchurltelemailpassworddatemonthweektimedatetime-localnumbercheckboxradiofile<input> 类型,以及 <select><textarea> 表单控件元素。如果存在于任何这些输入类型和元素上,则 :required 伪类将匹配。如果未包含该属性,则 :optional 伪类将匹配。

该属性不支持或与 rangecolor 输入类型无关,因为两者都有默认值。color 类型默认为 #000000range 类型默认为 minmax 之间的中点 — 在大多数浏览器中,如果未声明 minmax,则它们分别默认为 0 和 100。required 也不支持 hidden 输入类型 — 用户无法被期望填写隐藏的表单字段。最后,required 也不支持任何按钮输入类型,包括 image

对于同名的一组 radio 按钮,如果组中的单个 radio 按钮具有 required 属性,则必须选中该组中的一个 radio 按钮,尽管不一定是应用了该属性的那个。为了提高代码维护性,建议在该组的每个同名 radio 按钮中都包含 required 属性,或者都不包含。

对于同名的一组 checkbox 输入类型,只有具有 required 属性的复选框才是必需的。

注意: 设置 aria-required="true" 会告诉屏幕阅读器某个元素(任何元素)是必需的,但这不会影响元素的选填性。

属性交互

由于只读字段无法更改,因此 required 对同时指定了 readonly 属性的输入没有影响。

可用性

包含 required 属性时,请在控件附近提供可见的指示,告知用户该 <input><select><textarea> 是必需的。此外,使用 :required 伪类定位必需的表单控件,并以某种方式对其进行样式设置以指示它们是必需的。这可以提高视觉用户的可用性。辅助技术应该根据 required 属性告知用户该表单控件是强制性的,但添加 aria-required="true" 也无妨,以防浏览器/屏幕阅读器组合尚未支持 required

约束验证

如果元素是必需的且元素的值为空字符串,那么该元素将出现 valueMissing,并且该元素将匹配 :invalid 伪类。

可访问性考虑

向用户提供指示,告知他们表单控件是必需的。确保信息是多方面的,例如通过文本、颜色、标记和属性,以便所有用户都能理解要求,无论他们是否有色盲、认知差异或是否使用屏幕阅读器。

示例

HTML

html
<form>
  <div class="group">
    <input type="text" />
    <label>Normal</label>
  </div>
  <div class="group">
    <input type="text" required />
    <label>Required</label>
  </div>
  <input type="submit" />
</form>

结果

规范

规范
HTML
# attr-input-required
HTML
# attr-select-required
HTML
# attr-textarea-required

浏览器兼容性

html.elements.input.required

html.elements.select.required

html.elements.textarea.required

另见