通常我使用
根据W3C验证器,它无效。
标签元素的“for”属性必须引用一个表单控件。
for
属性吗?像这样First Name: praveen
。我可以像这样使用label: label(id='firstname')
吗?这样我就可以在JS中使用id更新值了。这仍然无效吗? - Praveenfor
属性的情况下使用它,例如<label>名字:<label id="firstname"></label></label>
,则会收到此错误“标签元素不得出现为标签元素的后代”。您仍然可以使用它,但不要指望它是有效的HTML。它仍然可以在大多数浏览器中正常工作(除了那些面向辅助功能的浏览器)。 - federico-t<input>
、<button>
等),而不是任意元素。请参阅HTML规范:一些元素,不是所有与表单相关的元素都被归类为可标记元素。这些是可以与button
、input
(如果type属性不是hidden状态)、keygen
、meter
、output
、progress
、select
、textarea
。名字: praveen
,我能否使用 label: label(id='firstname')
这样的格式呢?这样我就可以在JS中通过id更新值了。 - Praveenlabel
元素必须引用控件(例如input
),因此它不能引用另一个label
元素,即使在HTML5中也存在这种限制。label
标记来标记标签。通常,像姓名这样的文本数据最好使用input type=text
进行阅读。如果由于某些原因无法使用它或其他控件,则ARIA规范推荐的方法是使用语义中立的元素,通常是span
,并使用ARIA属性aria-labelledby
来指定标签和span
之间的连接。例如:<span id=firstnameLabel>First Name:</span>
<span role=textbox id=firstname aria-labelledby=firstnameLabel></span>
span
和 aria
属性。 - Praveenaria-describedby
,现已更正为 aria-labelledby
(与文本中一致)。aria-labelledby
对应于控件和其 label
之间的关系,这是必不可少的。aria-describedby
属性可以用于 附加 引用更详细的说明。 - Jukka K. Korpela在 JS 中可能会起作用,但这将是无效的 HTML。
label
元素的目的。 - BoltClock