W3C home > Mailing lists > Public > www-style@w3.org > July 2008

Re: Parent Combinator / Parent pseudo-class

From: Alan Gresley <alan@css-class.com>
Date: Thu, 24 Jul 2008 22:19:08 +1000
Message-ID: <4888733C.1000701@css-class.com>
To: Francois Remy <fremycompany_pub@yahoo.fr>
CC: Brad Kemper <brkemper@comcast.net>, Boris Zbarsky <bzbarsky@MIT.EDU>, "Tab Atkins Jr." <jackalmage@gmail.com>, www-style list <www-style@w3.org>

Francois Remy wrote:
> 
> JScript / ECMAScript is very slow in comparaison of C++ or some other 
> native language.
> But I've done the test-case, any way. But it's only to give an idea of 
> that.


Many months ago when a similar topic came up (as often happens), I
theorized a selector like this.

#navigation ul+(li+a:focus) {...}


When the anchor element was in focus the style for the grandparent <ul>
element would be applied. The use case would be with this menu system or
any similar one.

http://css-class.com/articles/ursidae/bears5ddh-kbaccess.htm


The reason for this type of menu was for keyboard accessibility. When a
given anchor was in focus the grandparent <ul> would be rendered. This
need came crumbling down when I tested the menu in Opera 9.5. I have 
used both of these sets of selectors in this menu system for the 
accessibility functioning.

#navigation li li a:focus { /* The focus position for anchors */
	position : relative;
	left: 10000px;
	top:0;
	z-index:1;
}

and

#navigation li a:focus+ul {
	top: 0;
	left: 0;
	margin-left: 0;
	top: 2.35em;
}

This can be seen in action with Gecko and Webkit by tabbing (IE7- uses 
the active pseudo-class). In Opera 9.5 it does something that I have not 
even declared since it implements my theorized selector,

#navigation ul+(li+a:focus) {...}

and somehow mysteriously walks the chain backwards when using the SHIFT 
with the arrow keys. With Opera I can skip across top tree level list 
items with  anchors. I have now created a new demo just for Opera 9.5 
using just this CSS.

#navigation li a:focus+ul {
	top: 0;
	left: 0;
	margin-left: 0;
	top: 2.35em;
}

http://css-class.com/articles/ursidae/bears5ddh-kbaccess-opera.htm


The behavior with Opera 9.5 is the same as with the original demo. My
use case is already archived simply by focus without using any scripting
whatever apart from the API in Opera 9.5. One in which multiple
anchors of a particular DOM tree are in focus and a functioning that 
many scripts have tried to achieve but failed cross browser.

My question is what are the use cases for a parent pseudo-class or a
parent child combinator? I don't think it up to the implementors like 
Boriz to prove the performance hit. I as one author can not see a use case.

I would also suggest that before we venture down the road of parent 
pseudo-class or a parent child combinator, we first have a look at what 
the affects of *focus* is before we destroy this very powerful pseudo-class.



-- 
Alan http://css-class.com/

Nearly all men can stand adversity, but if you want to test a man's
character, give him power - Abraham Lincoln
Received on Thursday, 24 July 2008 12:19:59 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:55:10 GMT