Re: @label, @help, @hint, @alert

On Wed, 05 Mar 2014 18:51:50 +0100, Erik Bruchez <erik@bruchez.org> wrote:

> Steven,
>
> Quick comments:
>
> 1. `filename="{@filename}"` and `mediatype="{@mediatype}"` won't work,
> because AVTs evaluate to a string value. What these two attributes
> specify is the ability to *write* to a node. So for these you would
> need something like `filename-ref` and `mediatype-ref`.

Ah. OK.

> 2. We could, as discussed in that older thread, say that item and
> itemset support constant values as text:
>
> <item label="New York">NY</value>
>
> And `@value` would remain an XPath expression.

That works for me (as long as you mean <item label="New  
York"><value>NY</value></item>)

> 3. xf:copy
>
> `@copy` could be an XPath expression. If `@value` is one, then at
> least we would have some consistency here.

OK.

> 4. Styling
>
> There was a suggestion to use pseudo-elements as well. So couldn't we  
> use:
>
>     xf|label, :xf|label { ... }

Well, these only match elements.

Steven

>
> -Erik
>
> On Wed, Mar 5, 2014 at 8:49 AM, Steven Pemberton
> <Steven.Pemberton@cwi.nl> wrote:
>> 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, 12 March 2014 14:30:54 UTC