[selectors] Why the special cases in the definition of :not()?


I am starting to look into Selectors Level 4 and I would like to understand the rationale behind some design choices of :not():
-Why is there limitations on the nesting of :not() with other functional pseudo classes? The combinations ":matches(:not(...))", :not(:matches(...)) or :not(not()) seem useful for authors and easy to implement. 
-Why take a selector list as the argument? This seems to be equivalent to :not(:matches(...)) while providing a more complicated syntax. 

If the limitations are just carried over from Level 3, I think it would be useful to drop all restrictions except the pseudo-element matching. The pseudo class :not() could then just be a logical NOT operation over a single compound selector. 


Received on Tuesday, 5 August 2014 15:02:06 UTC