Examples of Programmatic label
These are examples of the Programmatic label definition. The examples presented here are non-normative and not testable. They serve to illustrate some common pitfalls about the definition and to help implementers of ACT rules understand it.
Implicit labels
The input
element is a labeled control of the label
element (implicit label). Therefore the label
element is a programmatic label of the input
element.
<label>Full name: <input type="text" name="full_name" /> </label>
Explicit labels
The input
element is a labeled control of the label
element (explicit label). Therefore the label
element is a programmatic label of the input
element.
<label for="fname">Full name:</label> <input type="text" id="fname" name="full_name" />
Aria-labelledby, single reference
The span
element is referenced by the aria-labelledby
attribute on the input
element. Therefore, the span
element is a programmatic label of the input
element.
<span id="label_fname">Full name:</span> <input type="text" name="full_name" aria-labelledby="label_fname" />
Aria-labelledby, multiple references
Both span
elements are referenced by the aria-labelledby
attribute on the input
element. Therefore, each span
element is a programmatic label of the input
element.
<span id="billing">Billing</span>
<span id="address">address</span>
<input type="text" name="billing_address" aria-labelledby="billing address" />
Conflicting label methods
The span
element is referenced by the aria-labelledby
attribute on the input
element and the input
element is a labeled control of the label
. Therefore, the span
element and the label
are each a programmatic label of the input
element.
<span id="label_fname">Full name:</span>
<label>Full name: <input type="text" name="full_name" aria-labelledby="label_fname"/></label>
Invalid label for
attribute
The div
element is not labelable. Therefore, it is not a labeled control for the label
element and the label
element is not a programmatic label for the div
element.
<label for="bond">Full name</label>
<div id="bond">My name is Bond. James Bond.</div>
aria-labelledby on div
The span
element is referenced by the aria-labelledby
attribute on the div
element. Therefore, the span
element is a programmatic label of the div
element. Note that the aria-labelledby
attribute works on any element, not just on the labelable elements.
<span id="label_fname">Full name:</span>
<div aria-labelledby="label_fname">My name is Bond. James Bond.</div>