2017-05-26 6 views
1

Ich habe eine Fieldset wie folgt aus:Fieldset Legende innerhalb eines div nicht pa11y WCAG 2.0

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

Ich habe die Legende innerhalb eines div über mehr Kontrolle zu haben, wo es platziert wird. Allerdings, wenn es innerhalb eines div ist, schlägt es die pa11y WCAG 2.0 AA-Test, und der folgende Fehler zurückgegeben:

Fieldset does not contain a legend element. All fieldsets should contain a legend element that describes a description of the field group.

Wenn ich es von einem div entfernen, geht der Fehler weg:

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

Ist das ein falsch positives Ergebnis? Oder macht die Legende in einer div es tatsächlich für einige Benutzer unzugänglich?

Edit: Anwendung meiner div Klasse input-left auf die legend Element tut, was ich brauche. Ich würde jedoch gerne auf der Einhaltungsebene wissen, was erforderlich ist.

+0

Was meinen Sie mit Ihrem Bedarf „, um mehr Kontrolle über w zu haben hier ist es platziert "? Idealerweise ist das Legendenelement ein direkter Nachkomme des Fieldset-Elements. MDN sagt: "Erlaubte Eltern: A'

'dessen erstes Kind ist das' 'Element". https://developer.mozilla.org/en/docs/Web/HTML/Element/legend Auch dieser Artikel hilft, ein Licht zu werfen: https://www.paciellogroup.com/blog/2007/11/fieldsets-legends- and-screen-readers/ –

+0

Ich hatte eine falsche Annahme, dass 'legende' standardmäßig kein Blockelement war. Und die "erlaubte Eltern" -Referenz in der MDN-Verbindung ist, was ich suchte. Fühlen Sie sich frei, eine richtige Antwort hinzuzufügen, und ich werde es wählen. – mjoyce91

Antwort

2

Wenn Sie auf HTML lehnen 5.1 (vorausgesetzt, so, obwohl keine DTD in Ihrem Code), dann <legend> das erste Kind von <fieldset> sein muss:

Contexts in which this element can be used :

As the first child of a <fieldset> element.

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

Wenn Sie Ihren Drop Code in die HTML validator, dann wird es einen Fehler zurück:

Error: Element legend not allowed as child of element div in this context. (Suppressing further errors from this subtree.)

From line 9, column 7; to line 9, column 37

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

Contexts in which element legend may be used:

As the first child of a fieldset element.

Verwandte Themen