Re: [selectors] What is the order of evaluation of :matches() and :not()?

On Fri, Aug 29, 2014 at 8:36 AM, Benjamin Poulain <bpoulain@apple.com> wrote:
> On Aug 28, 2014, at 3:30 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
>> On Fri, Aug 29, 2014 at 8:08 AM, Benjamin Poulain <bpoulain@apple.com> wrote:
>>> On Aug 28, 2014, at 2:35 PM, Boris Zbarsky <bzbarsky@MIT.EDU> wrote:
>>>> On 8/28/14, 5:30 PM, Benjamin Poulain wrote:
>>>>> One obvious example is the matching of :visited. Let say we have “:matches(:visited, .foobar)”. If a link has the class foobar, its style varies if the engine evaluate selectors from left to right or right to left.
>>>>
>>>> It shouldn't.  Can you give an actual example where it does?
>>>
>>> Let say we have:
>>>
>>> <style>
>>> :matches(:visited, a) {
>>>    display:block;
>>>    width: 100px;
>>>    height: 100px;
>>>    background-color: red
>>> }
>>> </style>
>>> <a href=“http://w3.org”>link</a>
>>>
>>> If only the first one is match, we are in the “visited” case, and none of the properties apply. If the second one is matched, all the properties apply.
>>
>> That still has nothing to do with ordering, unless you assume that
>> :matches() short-circuits and stops when it first finds a match. (It
>> probably does, in implementations, but it's not specified as such.)
>>
>> If this example really does give any problems for a browser, it's a
>> bug in their handling of the "UAs may [...] implement other measures
>> to preserve the user’s privacy while rendering visited and unvisited
>> links differently." escape hatch.  They should ensure that the
>> :visited styling restrictions don't apply to :visited in :matches()
>> when a non-:visited branch also matches.
>
> As I said in the original email, such interpretation is completely fine with me. I would just like it to be clear/explicit in the text to avoid differences between engines.

The issue I was trying to emphasize is that it falls into the totally
undefined "other measures" clause, so there's nothing really to define
here. :/

~TJ

Received on Thursday, 28 August 2014 22:39:51 UTC