- From: Benjamin Poulain <bpoulain@apple.com>
- Date: Thu, 28 Aug 2014 15:36:07 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: Boris Zbarsky <bzbarsky@mit.edu>, www-style list <www-style@w3.org>
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.
Benjamin
Received on Thursday, 28 August 2014 22:37:42 UTC