Transitions CSS3 sur les pseudo-éléments (:après :avant) ne fonctionne pas?

Je suis en montrant la title attribut d'un lien sur :hover. L'attribut title est ajouté le lien par :after...

Maintenant, je me demande comment je peux animer l'opacité de la :after pseudo-élément lorsque le curseur de-dans et planant.

html

<a class="link" href="#" title="something"></a>

css

.link {
    display:block;
    width:50px;
    height:50px;
    background:red;
}

.link:after {
    position:relative; 
    content: attr(title); 
    top:55px; 
    color:$blue; 
    zoom: 1; 
    filter: alpha(opacity=00); 
    opacity: 0;
    -webkit-transition: opacity .15s ease-in-out;
    -moz-transition: opacity .15s ease-in-out;
    -ms-transition: opacity .15s ease-in-out;
    -o-transition: opacity .15s ease-in-out;
    transition: opacity .15s ease-in-out;
}

.link:hover:after { 
    zoom: 1; 
    filter: alpha(opacity=100); 
    opacity: 1;
}

Découvrez la démo: http://jsfiddle.net/d2KrC/

Des idées pourquoi cela ne fonctionne pas?

:before et :after sont des pseudo-éléments, :hover est une pseudo-classe. Ce sont deux concepts distincts, à ne pas confondre les uns avec les autres.
C'est un bogue documenté dans webkit. Découvrez ma réponse ci-dessous pour un hack pour réparer, et également le rapport de bug pour rester à jour sur son état de
Pas besoin d'-ms-transition. Cette propriété n'a jamais existé.

OriginalL'auteur matt | 2012-05-14