RGAA 3.2016 - Rule 11.1.2

Summary

This test consists in checking the presence and the unicity of the "id" attribute of each form field associated with a <label> tag. We assume here that a form field is associated with a "

Business description

Criterion

11.1

Test

11.1.2

Description

Chaque champ de formulaire, associé à une étiquette (balise label), vérifie-t-il ces conditions ?
  • Le champ de formulaire possède un attribut id ;
  • La valeur de l’attribut id est unique ;
  • La balise label possède un attribut for ;
  • La valeur de l’attribut for est égale à la valeur de l’attribut id du champ de formulaire associé.

Level

A

Technical description

Scope

Page

Decision level

Decidable

Algorithm

Selection

Set1 (input form fields)

All the <input> tags within a <form> tag with a "type" attribute equals to:

  • "text"
  • or "password"
  • or "checkbox"
  • or "radio"
  • or "file"
  • or "search"
  • or "tel"
  • or "email"
  • or "number"
  • or "url"
  • or "date"
  • or "range"
  • or "color"
  • or "time"

AND all the <textarea>, <select>, <datalist>, <keygen> tags AND for all of them no "aria-label", "aria-labelledby" or "title" attribute.

Set2

All the <label> tags within a <form> tag

Set3

All the element of Set1 with no <label> tag as parent.

Set4

All the element of Set2 with an <input> child with an "id" attribute.

Process

Tests

Test1

For each element of Set1, test if the node contains a not empty "id" attribute.

For each occurence of false-result of Test1, raise a MessageA.

Test2

For each element of Set1 with an "id" attribute, test that this id is unique on the page.

For each occurence of false-result of Test2, raise a MessageB.

Test3

For each element of Set2, test if this element has a not empty "for" attribute.

For each occurence of false-result of Test3, raise a MessageC.

Test4

For each element in Set3, test if the "id" attribute is equals to the "for" attribute of a <label> in the same

.

For each occurence of false-result of Test4, raise a MessageD.

Test5

For each element in Set4, test if the "for" attribute is equals to the "id" attribute of the <input> in the same

.

For each occurence of false-result of Test5, raison a MessageE.

Messages

MessageA : Id attribute missing
  • code :IdMissing
  • status: Failed
  • parameter : tag name
  • present in source : yes
MessageB : Id Not Unique
  • code :IdNotUnique
  • status: Failed
  • parameter : tag name
  • present in source : yes
MessageC : For attribute Missing
  • code :ForMissing
  • status: Failed
  • parameter : tag name
  • present in source : yes
MessageD : Input Not linked To Label.
  • code :InvalidInput
  • status: Failed
  • parameter : tag name
  • present in source : yes
MessageE : Label Not linked To Input Child.
  • code :InvalidLabel
  • status: Failed
  • parameter : tag name
  • present in source : yes

Analysis

Not Applicable

There is no input form tag on the page (Set1 is empty).

Failed

At least one input element on the page is not well linked with a label. (Test1 OR Test2 OR Test3 OR Test4 OR Test5 return false for at least one element).

Passed

All input on the page are well associated with a label. (Test1 AND Test2 AND Test3 AND Test4 AND Test5 return true for all the elements).

TestCases

TestCases files for rule 11.1.2