div中的Fieldset传奇失败了WC11 2.0

时间:2017-05-26 12:59:38

标签: html css section508 wcag2.0 pa11y

我有一个如下字段集:

<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中的图例实际上让一些用户无法访问?

修改:将divinput-left应用于legend元素可以满足我的需求。但是,我仍然希望在合规级别知道需要什么。

1 个答案:

答案 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元素的第一个孩子。