This is a fantastic article, and here's the best line:
Pseudo-classes like :focus and :hover are basically event handlers... event handlers with really patchy browser support.
I've never though of :hover in that way before, but it is absolutely true. Javascript is an excellent, usable langauge - we can use it to facilitate the experience of the majority user.