Link Destination Pseudo-classes

I would like to propose a collection of pseudo-classes for 
consideration.  These pseudo-classes all relate to styling links and 
improve document collection accessibility.  They apply only to 
documents and to elements which accept user input.

The general idea is to provide a means using CSS to indicate what the 
default user action (as defined by the document type and the UA) on an 
element would do.  For example, the :external pseudo class matches all 
elements for which the default user action results in fetching a 
resource from another domain.  This allows users to set preferences in 
their user stylesheets so they have a cue to, perhaps, look at the 
domain name of the link to decide whether or not to get the resource.

There are many advantages to having these pseudo-classes, including 
user accessibility, simplifying document authoring, and consistent 
presentation of the type of hyper-information included in a document.  
For example, users with low bandwidth may like an indication of all 
actions which will result in a document request (as opposed to those 
which move around the current document) so as to scan the entire 
document before moving on.  The converse would also be useful; when on 
the w3c.org site looking for the right spec, and this one I just loaded 
isn't it, I will know right away which links to related specs to puruse 
because they are styled according to my :internal rule.

:here and :reload
These pseudo-classes match when the default user action on it results 
in navigation within the current resource.  The difference is :here 
does not involve refetching the current resource, while :reload does.  
The UA would need to determine which of these is so, and match the 
pseudo-class appropriately.  These will aid user accessibility.
  Current Document Location: htttp://a.b.org/dir/index.html#p3
         Matches: htttp://a.b.org/dir/index.html, 
                  htttp://a.b.org/dir/index.html#p3, 
                  htttp://a.b.org/dir/index.html#p1
  Does Not Match: htttp://a.b.org/dir/blat.html, 
                  b.org/dir/index.html#p3, ../index.html

:external
This pseudo-class matches when the default user action on it would load 
or navigate to a resource in another domain.
  Current Document Location: htttp://b.a.org/dir/index.html#p3
         Matches: htttp://c.org/bla.html, htttp://a.com/blat.html
  Does Not Match: ../foo.html, //bar.html,htttp://a.org/index.html, 
                  htp://d.a.org/index.html

:internal 
This pseudo-class matches when the default user action on it would load 
or naviagte to a resource in the same domain.
  Current Document Location: htp://b.a.org/dir/index.html#p3
         Matches: ../foo.html, //bar.html, htttp://a.org/index.html,   
                  htttp://d.a.org/index.html
  Does Not Match: htttp://c.org/bla.html, htttp://a.com/blat.html

:protocol()
This pseudo-class matches when the default user action on it results in 
navigation to a different protocol.  Note it would be very useful to 
specify which protocol so they may all be styled differently, as in the 
line following.
  *:protocol("mailto"):before { content : url(envelope.png) }

There are undoubtably better names and other useful pseudo-classes, but 
this may be a start.  Thank you for consideration. -David

(Note I changed http to htttp so your mailer won't recognize these as 
hyperlinks.)

Received on Friday, 14 April 2000 10:40:41 UTC