estoy de acuerdo contigo con que la mejor manera es usar pseudoclases, pero no las recomiendo por que nunca he logrado que funcionase :focus en ningún elemento que no fuese un <a> o <input>. por otro lado :target entra en conflicto con navegadores antiguos.
puedes aplicarle :focus a una lista?? te dejo un ejemplo de los intentos que he hecho, a ver si es que fallo en algo
Cita: ul li {color: green;}
ul li:focus {background: green; color: yellow;}
ul li:focus:hover { background: red;}
<ul>
<li>haz click</li>
<li>haz click</li>
</ul>
gracias