Computer Science is no more about computers than astronomy is about telescopes. Edsger W. Dijkstra

Menús desplegables en JAWS

2007-06-18 20:54:13-05

Programacion

Para ver el post original en mi página: clic aquí.

Algo que me di cuenta con JAWS, fue la falta de un tema que permitiera menús desplegables. Se puede hacer un poco a lo tosco, metiendo en la plantilla del diseño de la página un código HTML estático que despliegue el menú. Pero eso no tiene gracia. Tomando en cuenta que JAWS tiene un gadget que permite la creación de menús de una forma fácil.

Pero la buena estructuración de los componentes de JAWS hacen de esto una tarea relativamente sencilla. Todo esto únicamente con CSS, :) por supuesto.

Para poder lograrlo únicamente tenemos que hacer lo siguiente:

Primero necesitamos una parte de la hoja de estilo que permita los menús desplegables, podemos usar el siguiente código:

#menus
{

  background-color: #a30000;
  color: #000000;
}
#menus
{

  width: 100%;
  height: 20px;
}

.menu {
  font-family: arial, sans-serif; width:990px; position:relative; margin:0; font-size:11px; margin:0px 0 0px 0; z-index:100;
}

.menu ul li a, .menu ul li a:visited {
  display:block;
  text-decoration:none;
  color:#000;
  width:150px;
  height:20px;
  text-align:center;
  color:#ffcc00;
  background:#a30000;
  line-height:20px;
  font-size:11px;
  overflow:hidden;
}
.menu ul {padding:0; margin:0;list-style-type: none; }
.menu ul li {float:left; margin-right:1px; position:relative;}
.menu ul li ul {display: none;}

.menu ul li:hover a
{color:#ffffff;
 background:#183884;
}
.menu ul li:hover ul{display:block; position:absolute; top:20px; left:0; width:151px;}
.menu ul li:hover ul li a.hide
{
 background:#a30000;
 color:#ffffff;
 }
.menu ul li:hover ul li:hover a.hide
{background:#183884;
color:#ffffff;
}
.menu ul li:hover ul li ul {display: none;}
.menu ul li:hover ul li a
{display:block; background:#a30000;
color:#ffcc00;}
.menu ul li:hover ul li a:hover
{background:#183884;
color:#ffffff;}
.menu ul li:hover ul li:hover ul {display:block; position:absolute; left:151px; top:0;}
.menu ul li:hover ul li:hover ul.left {left:-151px;}
 

Nota: Este estilo funciona para navegadores que no son IE. Se supone existe un "IE Hacking" para este menú desplegable, pero se lo quité desde hace tiempo y no recuerdo que le debería agregar :S. Osea que si alguien necesita adaptarlo a IE, nada más tiene que investigar el IE Hacking.

Con el estilo anterior y este código HTML podemos crear un pequeño menú desplegable.

 <div id="menus">
     <div class="menu">     
     <ul>
         <li><a class="hide" href="#">Menu 1</a>      
        <ul>
        <li><a href="#">Item 1-1</a></li>
        <li><a href="#">Item 1-2</a></li>
        <li><a href="#">Item 1-3</a></li>
        </ul>
        </li>
        <li><a class="hide" href="#">Menu 2</a>
        <ul>
        <li><a href="#">Item 2-1</a></li>
        <li><a href="#">Item 2-2</a></li>
        <li><a href="#">Item 2-3</a></li>
        </ul>
       </li>
   </ul>
 </div>
</div>
 

Cómo se puede ver la estructuración es bastante sencilla, un div llamado menus, un div de clase menu los cuales agrupan a todo. Y simples listas anidadas para la creación de los menús y submenús en general.

Ahora tenemos que modificar el template de salida del gadget "Menu" para que permita una salida HTML como el ejemplo anterior. Y el template quedaría de esta forma:

<!-- BEGIN menu -->
<div id="menus">
  <div class="menu">
  <ul>
  <!-- BEGIN section -->
  <!-- BEGIN single -->
   <li><a href="{url}">{title}</a></li>
  <!-- END single -->
  <!-- BEGIN withitems -->
   <li><a class="hide" href="{url}" title="{title}">{title}</a>
   <ul>
   <!-- BEGIN item -->
    <li><a href="{url}" title="{title}">{title}</a></li>
   <!-- END item -->
   </ul>
  </li>
  <!-- END withitems -->
 <!-- END section -->
        </ul>
  </div>
</div>
<!-- END menu -->
 

Y con esto ya tenemos listo un menú desplegable en JAWS, y podremos usar el gadget Menu para organizarlo :).

Happy Coding!!!

Permalink: http://www.mononeurona.org/users/entry/thot/580


Comments Comentblogs:

New Comentblog

Captcha



Login



Remember me:
thot
Amante de la libertad y por lo mismo un ferviente partidario del software libre.
linux politica programming software libre hacking
Powered by:
Despabilando la MonoNeurona.org
Livechat

<-Nombre
jairo wrote:
cual es el otro blog de thot
on 9/8/08

souf wrote:
está vivo... ¡VIVO!
on 10/6/08

souf wrote:
¡funciona!
on 10/6/08

souf wrote:
yes
on 10/6/08

thot wrote:
simón, s1mo yo creo que sí. Hay que ponerse de acuerdo.
on 6/5/08

s1m0 wrote:
que onda thot ps el aarkerio que tiene ganas de un curado de melon jaja ps ahora que vayamos a teotihuacan jaja como vez??
on 2/5/08

teosho wrote:
que tal alocardio_tut
on 26/4/08

aarkerio wrote:
Viendo si el livechat sirve
on 5/4/08

gmarin38 wrote:
q onda ponte chingon ya falta poco tiempo para tu taller :P
on 10/10/07

norcorp wrote:
guayabin que paso como has estado?
on 25/8/07

¿Qué estuve haciendo?
Yo
3 weeks, 4 days ago
Felicidades a Vendaval. Más vale tarde que nunca.
on 14/9/08
Ni pedo, metí mejor imágenes del código.
on 19/8/08
no puedo publicar la segunda parte de la intro a JSF's
on 19/8/08
Por el modo "paranoico" del filtrado en el editor de la mononeurona...
on 19/8/08
Estaría chido que Centauro tuviera GeSHi
on 12/8/08
Preparando introducción a JSF's para la mononeurona
on 10/8/08
Muy buen libro por cierto. Da asco ver las porquerías que hacen algunos curas.
on 5/8/08
Ah caray! apenas lo presentan? y yo la lo leí :|
on 5/8/08
Algún otro mononeurón recibe errores de postgres cuando entra a la mononeruona?.
on 5/8/08
Galerias
FirefoxjEdit.orgGimpOpenOffice.orgHacker
Top
Colectivo MonoNeurona.org © 2002-2008.