Edit in JSFiddle

var click = false;

$('a')
    .on('focus', function(){
        setTimeout(function(){
            // Si après 100ms, click n'est pas vrai, alors c'est un focus clavier
            if(!click)
                afficherAlerte("Focus réel !");
        }, 100);
    })
    .on('click', function(){
        click = true;
        afficherAlerte("Clic !");
        
        // 50ms après le timeout du focus, on remet click à faux
        setTimeout(function(){
           click = false; 
        }, 150);
    })
;

function afficherAlerte(message){
    // Crée un span qui sera masqué après une seconde
    $alert = $("<span>" + message + "</span>");
    $('body').append($alert.delay(1000).slideUp());
}
<a href="#">Lien de test</a>
span {
    display: block;        
}