一个input字段可以有两个标签吗?

玛丽有一个小小的形状,而且这里的标签就是这样的。
每当一个错误进入,混乱就会播种。

每个input字段都有一个标签,非常标准的事情。 validation表单后,我在表单顶部显示一个有用的小段落,详细说明哪些信息丢失或不正确。 我可以为同一个input字段使用两个标签吗? 一个在正确的forms,一个在validation提醒文本? 有什么理由不应该这样做吗?

我假设这个问题是关于HTML表单的。 从规格 :

LABEL元素可用于将信息附加到控件。 每个LABEL元素只与一个表单控件相关联。

因此,每个表单控件都可以被多个标签引用,但是每个标签只能引用一个控件。 所以如果有一个控件的第二个标签是有意义的(在你描述的情况下,它可以)随意添加第二个标签。

该HTML是合法的,它的工作原理(点击任何标签将焦点转移到有问题的领域)。

对于可访问性的原因来说,这样做有点麻烦。

这不是一个“通用”的方法,因为至less有一个通用的屏幕阅读器(我用NVDAtesting过)只会在将焦点移到字段时读取第一个标签 – 它忽略了同一字段的任何附加标签。

因此,如果您的错误消息位于页面的顶部,那么盲人或低视力用户在字段中跳转时,只会在login字段时听到错误消息,而不是旁边的“真实”标签。

因此,如果你正确地说出错误信息,这可能是一件好事(当然,比用红色突出显示非validation字段更好!)。

是的,你可以有多个标签指向同一个表单控件。 这是完全合法的 :

 <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"> 

这只是一个例子…通常你会用一个标签来包装这些线条,因为它们很近。

你有尝试过会发生什么? 如果有效,我不相信会对你的表格和页面造成任何损害。 你会得到一个加号,因为使用将能够点击validation错误,并把重点放在正确的领域。

我没有尝试过,但我想这是可能的。 但我不build议使用它,因为标签定义了字段的用途,错误信息不会。 所以我不应该使用标签来validation警告。