使用labellegend来明确指出表单控件的必填状态____20160503

原文地址


说明

该技巧的目的是为了成功提交数据,为特定表单控件、必填表单提供清楚的说明。一个样例或文字指明控件必填,使用label说控件必填,并将样例或文本说明编程式链接到控件,或使用legend通过fieldset为群组控件提供必填说明。如果使用样例,用户在第一次使用前就被告知它的含义。


样例

样例1:可以使用文本来指出必填状态(label for

下面样例中的文本区域有明确的标签“名(必填)”。label元素的for属性的值为input元素的id属性,且label文本指明控件必填。

注意:一些开发者习惯将“required”简写为“req”。但是有些证据表明这种缩写会令人困扰。


效果

样例2:使用星号(*)来指出必填状态


效果

所需的区域都标有星号(*).

样例3:使用图片来指出必填状态


效果

Required Control指出表单控件必填

...

样例4:指出单选组和复选组的必填状态

legend 元素为fieldset 元素定义标题(caption)


效果

我对以下(必填)感兴趣:

...

屏幕阅读器体验效果

  • 样例1:
  • 在IE11浏览器中,争渡、永德、NVDA均朗读input元素的标签,聚焦编辑框朗读:“名必填 可编辑文本”;

  • 样例3:
  • 在IE11浏览器中,争渡、永德、NVDA均朗读input元素的标签,聚焦编辑框朗读:“名 可编辑文本”;在Google chrome浏览器中,使用NVDA,tab键聚焦编辑框朗读:“名必填 可编辑文本”;

  • 样例4:
  • 在IE11浏览器中,使用NVDA,当用tab从上向下浏览到分组内第一个元素的时候会朗读legend元素的内容,朗读的形式是:legend元素的内容+“分组”+当前访问的元素的标签+控件类型+选中状态,朗读样例:“我对以下必选项感兴趣 分组 摄影 复选框 未选中”;使用争渡、永德,tab键浏览时,无法感知legend元素的存在。