Imagen de menú desplegable tomado de code-extreme.comEl modo utilizado por la mayoría de desarrolladores para implementar un menú desplegable (horizontal o vertical), suele ser mediante DHTML, HTML Dinámico implementado con javascript. Esta técnica tiene problemas de accesibilidad, y problemas semánticos debido a que el menú no suele estar codificado directamente en el documento HTML o XHTML, sino que se crea dinámicamente mediante largas funciones javascript, lo que a su vez provoca dependencia del navegador donde se visualiza.

Una de las soluciones que mejor resuelve el problema de menús desplegables mediante HTML/XTHML y CSS son las listas Suckerfish. Esta técnica está muy bien explicada (en inglés) en HTMLDog y A List Apart. Este último lo acabo de encontrar traducido en Manual de Diseño Digital.

Mira un ejemplo guapo del Suckerfish.