玛丽有一个小表格,它的字段就是这样标记的。
每当出现错误时,就会产生混乱。
我为每个输入字段都有一个标签......非常标准的事情。验证表单后,我将在表单顶部显示一个有用的小段落,详细说明丢失或不正确的信息。
我可以为同一个输入字段设置两个标签吗?一个在正确的表单中,一个在验证提醒文本中?有什么理由我不应该这样做吗?
我假设这个问题是关于 HTML 表单的。从规范:
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">
这只是一个例子......通常你会用一个标签包装这些行,因为它们很接近。