- From: Steven Pemberton <Steven.Pemberton@cwi.nl>
- Date: Wed, 05 Mar 2014 17:49:31 +0100
- To: "Forms WG" <public-forms@w3.org>
It's probably too late for this draft, but here is my view of the label as
attribute situation.
1. It would be easy to add @label, @help, @hint, @alert to the attribute
set UICommon, which would mirror the content set of the UICommon elements.
2. Of the core controls
(input|secret|textarea|output|upload|range|trigger|submit|select|select1),
only <output> is the odd one out, where <label> is optional.
3. group, dialog and choices only have <label> (no help hint and alert)
4. switch and repeat have none of them
Now the special cases.
1. upload has a filename child element, which for consistency we might
want to mirror in an attribute
<upload ref="mail/attachment" accept="video/*,image/*,.txt,.pdf">
<label>Select attachment:</label>
<filename ref="@filename" />
<mediatype ref="@mediatype" />
</upload>
=>
<upload ref="mail/attachment" accept="video/*,image/*,.txt,.pdf"
label="Select attachment:" filename="{@filename}" mediatype="{@mediatype}"
/>
2. <item> has <label> and <value>. The problem here is that @value would
operate differently from @value on other elements, where it is an
expression, while here it would be a string/AVT. Not sure what to do.
<output label="Total" value="total"/>
<item label="New York" value="NY" />
<item label="{@name}" value="{@code}" />
or
<item label="New York" value="'NY'" />
<item label="{@name}" value="@code" />
Difficult.
3. itemset label value|copy. Copy is empty, and you only use it for the
ref, so do we make it an AVT or an expression?
<select model="cone" ref="my:order">
<label>Flavors</label>
<itemset model="flavors" ref="my:flavor">
<label ref="my:description"/>
<copy ref="my:description"/>
</itemset>
</select>
=>
<select model="cone" ref="my:order" label="Flavors">
<itemset model="flavors" ref="my:flavor" label="{my:description}"
copy="my:description"/>
</select>
or
<select model="cone" ref="my:order" label="Flavors">
<itemset model="flavors" ref="my:flavor" label="{my:description}"
copy="{my:description}"/>
</select>
?
Priority
I suggest a behaviour that if an element has both an attribute and its
matching element, the attribute gets priority (offering backwards
compatibility).
Styling
CSS styling is not a problem, but we might want to discuss it:
*[label]:before {content: attr(label); ... other styling...}
*[hint:hover:before {content: attr(hint); ... other styling...}
*[alert]:invalid:before {content: attr(alert); ... other styling...}
Steven
Received on Wednesday, 5 March 2014 16:50:05 UTC