玛丽有一个小表单,它的字段都被标记了。
每当出现错误时,就会造成混乱。
我为每个输入字段都有一个标签... 这是相当标准的事情。 在验证表单后,我会在表单顶部显示一个有用的小段落,详细说明哪些信息缺失或不正确。
我可以为同一个输入字段设置两个标签吗?一个在表单中,另一个在验证提示文本中?我这样做有什么不合适的原因吗?
因此,每个表单控件可以由多个标签引用,但每个标签只能引用一个控件。所以,如果对于一个控件有第二个标签是有意义的(并且在您描述的情况下确实有意义),那么请随意添加第二个标签。LABEL元素可用于向控件添加信息,每个LABEL元素与一个表单控件相关联。
这段HTML代码是合法的且可用(单击标签中的任何一个将转移到相关字段)。
出于辅助功能方面的考虑,正确地实现这一点有些棘手。
这不是一种“常见”的方法,因此至少有一个常见的屏幕阅读器(我用NVDA测试了)只会在您将焦点移动到该字段时读取第一个标签-它会忽略同一字段的任何其他标签。
因此,如果您的错误消息位于页面顶部,则盲人或低视力用户通过字段进行制表将仅听到与之相关的错误消息,而不是旁边的“真实”标签。
因此-如果您正确地构造错误消息,那可能是件好事(肯定比仅以红色突出非验证字段要好!)。
是的,你可以让多个标签指向同一个表单控件。这是完全合法的:
<label for="fname">First name</label>
<label for="fname">Enter your info</label>
<label for="fname">Why not a third label</label>
<input type="text" id="fname" name="fname">
这只是一个示例...通常你会把这些行包装在一个标签内,因为它们很接近。
for
属性创建多个引用,可以将一个控件与多个 LABEL
关联。"请给我点赞(+1)。 - alexg
label
中更容易。您甚至可以省略for
和id
属性。规范将其称为隐式关联。 - rybo111