Re: [css3-selectors][css-selectors] ::first-line pseudo-element badly underspecified

Ian Hickson wrote:
> The working group discussed this.
> 
> We don't want to drop ::first-line.

Then please specify it in a way that is possible to implement interoperably.

> We considered saying that properties that are normally inherited would 
> inherit from ::first-line (e.g. 'color') but properties that are not 
> normally inherited would inherit from the parent element (e.g. 'display').

This is likely to require interesting changes to existing CSS engines, since it 
violates the existing invariant that you have a unique parent you inherit from. 
  But it would indeed resolve my issue in terms of ::first-line being 
underspecified.

I strongly suspect you wouldn't end up with two interoperable implementations of 
this, but I'm happy to be proved wrong, I guess.

> However, we would like to get a more comprehensive list of problems. If 
> the 'inherit' keyword is the only problem, then it is resolvable, it 
> seems, relatively easily.

The "inherit" keyword is a symptom.  The problem is that first-line to make 
sense as it stands you have to throw out the existing inheritance model in CSS 
and introduce a new and more complicated one, as far as I can see.  The 
"inherit" keyword makes this simple to demonstrate.

For example, in Gecko using first-line triggers internal warnings because things 
are hacked to sort of but not really inherit from the first-line and this does 
not match the inheritance model as specified by CSS.  At times the warnings 
actually indicate serious bugs, of course.  Now we can keep trying to wallpaper 
over said bugs, or we could try to fix the mismatch between first-line and the 
inheritance model, by either changing the inheritance model, changing how 
first-line works, doing both, or simply removing first-line.

As an implementor, I consider the last of this options to be the easiest in our 
implementation, and possibly even the most desirable.

-Boris

Received on Tuesday, 31 January 2006 19:20:20 UTC