Las ventanas emergentes (popup) son esas ventanas que se aparecen repetentinamente sobre la página que estamos navegando al entrar en una página web o cuando pulsamos algún enlace.

Las ventanas emergentes se pueden clasificar en dos grupos:

  • Intrusivas: que aparecen sin ser solicitadas, como los anuncios de muchos sitios web al entrar en una página web.
  • Enlace: aparecen al pulsar sobre un enlace, normalmente, con la sana intención de mejorar la navegación o para enlazar con páginas externas.

Las ventanas emergentes deben evitarse porque, por un lado, además de molestar a muchos usuarios, dificultan la navegación a personas inexpertas (despistan a personas mayores o personas que no tienen mucho contacto con la web), a personas con dificultad de movimiento (han de hacer un esfuerzo adicional para cambiar de ventana o para cerrarla), o a personas con discapacidades cognitivas.

Por estas razones, es un error asumir que abrir un enlace en una nueva ventana mejora la navegación para todos los usuarios. Esto es falso. Hay usuarios que odian las ventanas nuevas y prefieren, en tal caso, abrir en una pestaña nueva (la navegación por pestañas no está implementada en Microsoft Internet Explorer, pero sí en Firefox u Opera). Si el usuario, realmente, quiere abrir un enlace en una nueva ventana, existen mecanismos proporcionados por el navegador para realizar estas acciones, normalmente, mediante la pulsación del botón derecho del ratón o la tecla correspondiente.

Si han aparecido los bloqueadores de ventanas es porque los usuarios están hartos de ventanas emergentes intrusivas, y como diseñadores/desarrolladores web deberíamos pensar primero en el usuario y no usarlas, salvo en casos excepcionales.

Si, por alguna circunstancia, necesitas implementar una ventana emergente debes tener en cuenta que disminuyen la accesibilidad y que debes informar al usuario de tal acción, ya que el punto 10.1 de las pautas de accesibilidad web (WCAG) dice:

10.1 Hasta que las aplicaciones de usuario permitan desconectar la apertura de nuevas ventanas, no provoque apariciones repentinas de nuevas ventanas y no cambie la ventana actual sin informar al usuario. [Prioridad 2]

La forma más habitual y elegante de informar al usuario de la apertura de nuevas ventanas es mediante un iconito (y su correspondiente texto alternativo) al lado del enlace, como el icono Flecha apuntando arriba utilizado en la Wikipedia, aunque en este caso la imagen no indica que el enlace se abra en una ventana emergente, sino que es un enlace a una página externa.

En Firefox, existe una extensión llamada TargetAlert que informa de cuando un enlace se va abrir en una nueva ventana, cuando el enlace abre un PDF, etc.

Que yo conozca, hay dos formas de hacer ventanas emergentes:

  • Mediante el atributo target="_blank" en los enlaces de HTML: Solución más simple, pero que no permite definir las propiedades de la nueva ventana (quitar barra de herramientas, cambiar tamaño, etc.). Te en cuenta que en XHTML Strict, desaparece esta propiedad.
  • Mediante Javascript: Utilizando la propiedad window.open. Esta solución permite definir las propiedades de la nueva ventana, pero necesita ser complementado con código <noscript> para navegadores que no utilicen javascript, ya que si no el enlace sería inaccesible en estos casos.

Ahora, para saltarse los bloqueadores de ventanas, comienza a extenderse una técnica mediante capas y javascript, pero realmente esta técnica no crea ventanas emergentes, sino que las simula dentro de la misma ventana.

Nota: La coctelera es un ejemplo de web que no utiliza ventanas emergentes. Al menos, yo no he visto que lo haga en ningún caso.