Hi,
In the many Wicket applications I have seen, the most frequent error is
to not correctly set the 'for' attribute of an HTML 'label' element.
Currently it is necessary to do this from code. Although a quickly
written component will make this fairly easy, the task is occurring that
often that imho better support by wicket is warranted.
I therefore propose a new wicket:for attribute that looks as follows:
<label *wicket:for="name"*>Name</label>
<input wicket:id="name" type="text"/>
The rendered markup could for example be:
<label for="name78">Name</label>
<input id="name78" name="name78" type="text" value="..."/>
Some more thoughts on the design of the wicket:for attribute:
- The value of the attribute refers to a component by component id. The
referred component must be a sibling of the same container that provides
the markup with the label element. Referring to a component outside this
container is tricky as then component ids are no longer unique.
- The wicket:for attribute will render the 'for' attribute with the
markup id of the referenced component as value.
- The method setOuputMarkupId(true) will be called on the referenced
component.
More ideas?
If I would implement such a wicket:for attribute, would it be accepted
in Wicket core?
Regards,
Erik.
--
Erik van Oosten
http://day-to-day-stuff.blogspot.com/