Svend Tofte <> wrote:

> You could use just onfocus="this.blur()" instead.
> Anyway, it's a dumb idea to use this.

Yes, the (popular) onfocus-blur method is horrible for accessibility. I
think the first snippet posted -

> <a href="#" onClick="this.href.focus=blur(); return false;">

was attempting to get around those problems by making it so that a click
didn't focus the element. It doesn't quite work - there's no such
property as Link.href.focus, and calling blur() doesn't return anything
to assign anyway. A better way of doing it, which produces less flicker
than the onclick="this.blur();" the above is equivalent to would be to
temporarily assign this.blur() to onfocus when the link is clicked. You
could do this to all links on the page automatically using this script -

  function link_down() {
    this.onfocus= this.blur;
  function link_up() {
    this.onfocus= window.clientInformation ? null : window.undefined;
  function link_bind() {
    var i;
    for (i= 0; i<document.links.length; i++) {
      document.links[i].onmousedown= link_down;
      document.links[i].onmouseup= link_up;

and then calling link_bind() when all links in the document have loaded
(eg. in <body onload>). This approach removes the outlines but still
allows keyboard navigation to work.

To be honest, though, I still wouldn't personally bother use it except in
exceptional circumstances.