我有一个如下字段集:
<fieldset>
<div class="input-left">
<legend class="legend-filters">Your full name:</legend>
</div>
<div class="input-right">
<!-- some input here ... -->
</div>
</fieldset>
我在div
内部有一个图例,可以更好地控制它的放置位置。但是,当它位于div
内时,它无法通过patry WCAG 2.0 AA测试,并返回以下错误:
Fieldset does not contain a legend element. All fieldsets should contain a legend element that describes a description of the field group.
当我从div
中删除它时,错误消失了:
<fieldset>
<legend class="legend-filters">Your full name:</legend>
<div class="input-right">
<!-- some input here ... -->
</div>
</fieldset>
这是假阳性吗?或者让div
中的图例实际上让一些用户无法访问?
修改:将div
类input-left
应用于legend
元素可以满足我的需求。但是,我仍然希望在合规级别知道需要什么。
答案 0 :(得分:2)
如果你依赖HTML 5.1(假设你的代码中没有DTD),那么<legend>
必须是<fieldset>
的第一个孩子:
Contexts in which this element can be used:
作为
<fieldset>
元素的第一个孩子。
- https://www.w3.org/TR/html51/sec-forms.html#the-legend-element
如果您将代码放入HTML validator,则会返回错误:
错误:在此上下文中,元素图例不允许作为元素div的子元素。 (抑制此子树中的更多错误。)
从第9行第7栏;到第9行,第37栏
t">↩ <legend class="legend-filters">Your f
可以使用元素
legend
的上下文:作为
fieldset
元素的第一个孩子。