1

我有一个如下的字段集:

<fieldset>
 <div class="input-left">
  <legend class="legend-filters">Your full name:</legend>
 </div>
 <div class="input-right">
  <!-- some input here ... -->
 </div>
</fieldset>

我在 adiv中有图例,可以更好地控制它的放置位置。但是,当它在 a 内部时div,它无法通过 pa11y 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.

当我从 a 中删除它时div,错误消失了:

<fieldset>
 <legend class="legend-filters">Your full name:</legend>
 <div class="input-right">
  <!-- some input here ... -->
 </div>
</fieldset>

这是误报吗?还是在 a 中添加图例div实际上会使某些用户无法访问它?

编辑:将我的divinput-left应用于legend元素可以满足我的需要。但是,我仍然想知道在合规级别上需要什么。

4

1 回答 1

2

如果您依赖 HTML 5.1(假设是这样,尽管您的代码中没有 DTD),那么<legend>必须是 的第一个孩子<fieldset>

可以使用此元素的上下文

作为元素的第一个子<fieldset>元素。

https://www.w3.org/TR/html51/sec-forms.html#the-legend-element

如果您将代码放入HTML 验证器,则会返回错误:

错误:在此上下文中元素图例不允许作为元素 div 的子元素。(抑制来自该子树的更多错误。)

从第 9 行第 7 列开始;至第 9 行第 37 列

t">↩ <legend class="legend-filters">Your f

legend可以使用元素的上下文:

作为元素的第一个子fieldset元素。

于 2017-05-26T19:32:09.027 回答