W3C home > Mailing lists > Public > public-webapi@w3.org > April 2008

Re: [selectors-api] Handling :link and :visited Pseudo Classes

From: Joćo Eiras <joao.eiras@gmail.com>
Date: Thu, 17 Apr 2008 08:50:47 +0100
Message-ID: <e72b1b360804170050x2a47c47tc7b32a4d842a081e@mail.gmail.com>
To: "Bjoern Hoehrmann" <derhoermi@gmx.net>
Cc: "Boris Zbarsky" <bzbarsky@mit.edu>, public-webapi <public-webapi@w3.org>

I think you're making a big effort trying to come up with a meaningful
solution. However, it can get much complicated than that.
Lets say you magically implement a solution which would be impossible
for a client side script to detected if any 3rd party website was
accessed.

I still can do the following:

#one:visited,#one:link{background-color:url(detect_url?1)}
#two:visited,#two:link{background-color:url(detect_url?2)}

where #one and #two are just two arbitrary selectors that point to
anchors. Even though I cannot have a client side script detecting if
those links are visited, the user agent will fetch those two urls, and
tell a server side script that they were visited. Privacy gone.

It's a unglorious battle.



2008/4/17, Bjoern Hoehrmann <derhoermi@gmx.net>:
>
>  * Boris Zbarsky wrote:
>  >So it sounds to me like neither :link nor :visited match anything.  But someone
>  >who actually has the beta (or can look at the code, of course) should check: the
>  >white-paper is vague enough it could mean other things too, and IE8b1 doesn't
>  >always match the white-papers.
>
>
> After some quick tests I am not sure what it does or is supposed to do.
>  As a simple example, I made two links <a href='...'><span>...</span></a>
>  one visited, one unvisited.
>
>   document.querySelectorAll(":link");      // returned zero elements
>   document.querySelectorAll(":visited");   // returned zero elements
>   document.querySelectorAll(":link *");    // returned two elements
>   document.querySelectorAll(":link span"); // returned two elements
>   document.querySelectorAll(":visited *"); // returned zero elements
>
>  My original assumption was actually that it treats both selectors as if
>  it would not support them at all, except that it does not throw on their
>  use (that would require all calls to return zero and having :not() to
>  tell that and matching no elements at all, but it turns out :not() is
>  not supported).
>
>  So from these results it would seem :visited never matches anything and
>  :link matches all links except when it is the subject of the selector in
>  which case it matches nothing. That seems contrary to the documentation.
>
>  As for the suggestion that all links must match one or the other, that
>  would disallow e.g. reporting accurate results for all "visible" links
>  but omitting any invisble link. I don't think that should be disallowed.
>
>  (As an aside, IE8 throws if the selector argument has trailing white
>  space, but does not if it's leading white space instead. A quick reading
>  of css3-selectors suggests white space on either end is illegal).
>
> --
>  Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
>  Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
>  68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/
>
>
Received on Thursday, 17 April 2008 07:51:22 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 17 April 2008 07:51:24 GMT