aunque funcionara en el navegador que funcionara, esta mal. es decir, no es la gramatica correcta segun el estandar. pues los elementos lineales no pueden contener elementos de bloque. es un principio basico para cualquier etiqueta. para lo que te corresponde, tienes que hacer que el enlace ocupe todo el espacio del item. para ello, debes utilizar css. generalmente es cuestion de quitar el padding del item y hacer que el enlace sea de tipo bloque para que ocupe todo el ancho.
Código:
li{
padding:0;
}
a{
display:block;
}