Re: QSA, the problem with ":scope", and naming

On 2011-10-19 01:58, Tab Atkins Jr. wrote:
> Based on discussion on the mailing list,<style scoped>  will be
> changing to the latter behavior as well, with the ability to invoke
> the former behavior in the rare circumstances when you explicitly want
> it.

Despite some similarities in appearance, the proposed changes to <style 
scoped> will still use selectors differently from that proposed here for 
a new findAll() method.

1. Syntax

In <style scoped>, selectors still can't begin with a combinator, but in 
the proposed API, they can.

The @global at-rule was proposed to


2. Matching the Context Element

In scoped stylesheets, the context element itself can be the subject of 
a selector. But the proposed API will never return the element itself in 
the result.

div.findAll("div") // Does not match the element itself

(same as querySelectorAll() in this case)

<div>
   <style scoped>
     div { ... } /* Matches the context element */
   </style>
</div>


3. The Subject of Selectors

In scoped stylesheets, the potential matches of a selector will only 
include:
* The context element itself
* Descendants of the context element

In the proposed API, the potential matches will include:
* Descendants of the context element
* Siblings of the context element

In the existing API, the potential matches include:
* Descendants of the context element only


div.findAll("+p") // Matches sibling p elements

div.querySelectorAll(":scope+p") // Matches nothing
document.querySelectorAll(":scope+p", div) // Matches sibling p elements

<div>
   <style scoped>
     :scope+p { ... } /* Matches nothing */
   </style>
<div>
<p>...</p>

-- 
Lachlan Hunt - Opera Software
http://lachy.id.au/
http://www.opera.com/

Received on Wednesday, 19 October 2011 12:17:45 UTC