我对使用标记label
感到怀疑。
我有div
充当小部件,模拟高级下拉列表。
<div class="control">
<label class="description">Choose:</label>
<div class="widget__list">...some other content...</div>
</div>
这里W3C规范(http://www.w3.org/TR/html401/interact/forms.html#h-17.9)说:
LABEL元素用于为没有隐式标签的控件指定标签
(更新:请不要依赖上面的(过时的)报价。请参阅下面链接的 HTML5规范)
滚动到&#34;控件&#34;部分(http://www.w3.org/TR/html401/interact/forms.html#h-17.2)我可以看到&#34;控件类型&#34; 列表中有菜单类型。
我想知道的是:
form
,input
,{{1},我的小部件也应该包含在select
元素中在它?等等?button
元素(不在label
的上下文中),我应该将其更改为form
吗?这些问题的语义最正式答案是什么?
引用是指HTML4规范,导致提出上述问题。
The current HTML5 specs for label
已经提供了我需要的答案(感谢@PeterKrauss)。
答案 0 :(得分:2)
您的文件是valid according to the W3C validator。
这意味着您的label
案例未在当前HTML标准中定义为错误。所以你不应该更担心语义,只要像你在这里一样使用它 - 如果它对你来说很自然,并且它是否按预期工作。
向上滚动到“控件”部分(http://www.w3.org/TR/html401/interact/forms.html#h-17.2)
您不希望将旧的HTML4规范用于任何事情。它于1999年出版。
当前的HTML标准位于https://html.spec.whatwg.org/multipage/。 label
元素上该规范的部分位于https://html.spec.whatwg.org/multipage/forms.html#the-label-element。
我的div-widget是否属于菜单控件的类别?
当前的HTML标准没有定义名为“菜单控件”的类别;所以label
元素是否适合作为一个类别并不重要。
我错误地使用了标签元素(不在表单的上下文中),我是否可以将其更改为span?
你没有错误地使用它。如果你是,W3C验证器会将其标记为错误。换句话说,您的案例未在当前HTML标准中定义为错误。所以你很高兴。