XBL2 review

Hello!

I have reviewed the XBL2 draft (21 august 2006 draft, directly from the  
CVS) and I have the following comments to make:

0. General things

a)
<style> in <resources>

How's this supposed to work? Is the provided style applied as if the  
shadow content is a document by itself? Or is the style added to the  
entire owning document, just like adding a new <style> in header? Or... is  
the <style> applied as if the bound element is a document by itself?

b)
All in all I like XBL2, it's a very good initiative and makes web  
developers feel less "guilty" when they want to do extremely complicated  
designs and "widgets" in a site. The reason is rather simplistic: one has  
only to write a clean markup for the page and use an XBL binding to add  
all the cruft.

A general concern applies, as with CSS 3-stuff, SVG and newer technologies  
which are not implemented in the dominant web browser (I shall not name  
it, for the sake of helping the world forget its name :) ). For now and,  
sadly, for a long time, such technologies are confined to cutting-edge web  
sites, or to Intranet applications with a limited target audience.

Further comments will *probably* follow.

1. Introduction

In the example I see <style> in <resources>. Why no type="text/css"?

Bad phrasing:

«The result of applying the XBL binding above to the HTML given able using  
the CSS given above is to equivalent to the result one would get if one  
simply placed the div element with class="nav" before the div element with  
class="main", but the effect is achieved without needing any changes to  
the markup.»

I don't understand what's exactly meant. Please rephrase.

1.2.1. Attributes Containing Selectors

«Note: This specification does not specify what level of Selectors support  
is required.»

Why?

If one UA claims support for XBL2 the author can't rely on the support of  
CSS 3 Selectors, practically rendering XBL2 support useless if no  
Selectors are supported. XBL2 specification should provide a list of  
required Selectors for claiming conformance. If not, we will endup with  
UAs doing something similar to IE 6: they added support for PNG, but they  
missed one of the "coolest" feature in PNG (transparencies).

2.3. The implementation element

I personally don't exactly understand the syntax used in the provided  
example:"set memory(value)" and "get memory()". Why a space? Can somebody  
explain that?

2.9. The div element

I don't see the real use for the state attribute. There are other ways to  
do the same, and there's no real imperative need for yet-another  
attribute. It's defined as a stylistic hook, same as class. It's a  
duplicate attribute.

2.13. The style element

This should have a type attribute. The style-type attribute of xbl element  
would be only the "default type". Why not allow multiple types of styles  
in a single binding?

2.14. The prefetch element

Suggestion: new attribute "condition". This should be an ECMAScript  
expression which if evaluates to true, the file is loaded. Some may want  
to prefetch some images based on various conditions.

2.15. The script element

This should have a type attribute. The script-type attribute of xbl  
element would be only the "default type". Why not allow multiple types of  
scripts in a single binding?

4.5. Binding Attachement Model

Why is the UA allowed to *act* as if it does the steps listed? What does  
acting mean in this context?

5. Shadow Content

Recommended rephrasing from:
«If a binding element that had no template element has a template element  
added, then a shadow tree must be generated.»

... to:

«A shadow tree must be generated when a template element is added to a  
binding element that had no template element.»

5.4. Processing content elements

The example starts with «Imagine the following simple document». I am not  
sure if that's appropriate, because I won't imagine anything. The provided  
example is result of what the author imagined. If I have to imagine  
something, I'd imagine something else.

I'd suggest switching from "imagination examples" to just examples: "Given  
the following document", then "Having the X element bound to...".

5.7.4. The matching pseudo-elements

Until reaching this chapter I believed I can assign any pseudo-element,  
for use within CSS. Quite an interesting concept, at first.

Reading this chapter I reached the conclusion this is much like the state  
attribute for the div element. Instead of using the provided list of  
psuedo-elements, one can use class names (icon/value/choices...). Even the  
provided example emphases that, for me, at least.

6.4. ECMAScript bindings

«First, if this is the first time the binding defined by that binding  
element is used since that binding document was loaded, then, if that  
element contains an implementation element, then the first such element  
must have its code compiled and run (see below), and the return value of  
that script, if any, must be forever associated with that binding element  
as that binding's implementation prototype object.»

This very lengthy phrase is hard for one to understand. I recommend a  
better wording. I have no suggestion, since a correct rephrasing requires  
accurate understand, and I myself don't feel confident enough to say  
"yeah, I know what he meant".



-- 
http://www.robodesign.ro
ROBO Design - We bring you the future

Received on Monday, 21 August 2006 20:21:31 UTC