:hover je pseudotřída jen pro případ kdy je nad elementem myš, pokud chceš aby to fungovalo i lidem co ovládají browser klávesnicí, zduplikuj všechyn pravidla s :hover i pro :focus – ten totiž udává klávesnicový fokus.
Dále browser skáče po aktivních prvcích, tedy <li> s onclick je špatně, <li> s <a> a :focus/:hover už je použitelné i bez myši.