Die Tilde ist dafür da, dass Attribut-Werte angesprochen werden, die ein Leerzeichen enthalten. Für Attribut-Werte, die einen Bindestrich enthalten, ist ein senkrechter Strich (|) zuständig. Da hier ein Bindestrich verwendet wird, sollte class|= verwendet werden.
Hm, in der Form funktioniert das hier seit Jahren ohne die geringsten Probleme bzw. Nebenwirkungen.