Sul problema accessibilita` c'e` anche una discussione aperta nel forum (X)HTML: ti conviene darci un'occhiata dato che ci sono spunti interessanti.
Invece non riesco a capire il tuo punto di partenza.
Dici di avere una pagina valida e accessibile, e ci metti un JS (che accessibile non e`), per fare una cosa che i browser fanno senza difficolta`.
Come dire che la sovrastruttura che nelle intenzioni rende la pagina "piu` accessibile", in realta` e` proprio quella che fa diventare la pagina non-accessibile.
In realta` la scelta delle varie opzioni non serve: chi ha problemi sa gia` come ingrandire i caratteri, usare un CSS alternativo o cose simili. Eventualmente puoi spiegare il tutto in una pagina apposita (invece di dare il pesce, insegni a pescare).
Il menu va realizzato senza l'uso di JS. Ci sono menu in CSS puro, che non hano nulla da invidiare ai menu in JS: fatti un giro nei "link utili" (e sono indistinguibili a prima vista: puoi rendere lo stesso effetto).