1 puntos por GN⁺ 2025-06-09 | 1 comentarios | Compartir por WhatsApp
  • En la década de 1990, las páginas personales solían usar texto parpadeante y en desplazamiento para hacer que las “actualizaciones más recientes” llamaran la atención, y ambas etiquetas se convirtieron en huellas de una cultura web que hoy es difícil de encontrar
  • <blink> fue una etiqueta incluida en Netscape Navigator 2.0 en 1995; aunque Lou Montulli suele mencionarse como el origen de la idea, él aclaró que no escribió el código de la implementación real
  • Ese mismo año, Microsoft Internet Explorer 2.0 introdujo <marquee>, ofreciendo efectos basados en atributos para controlar la dirección del desplazamiento, la velocidad, la repetición y el movimiento de ida y vuelta
  • Si se anidaban ambas etiquetas, en Netscape se veía el parpadeo y en IE el desplazamiento, y hasta en navegadores que no las soportaban el texto seguía siendo legible
  • <blink> prácticamente desapareció y <marquee> sigue presente en algunos navegadores modernos, pero en sitios web reales se parece más a una nostalgia digital que perjudica la accesibilidad y la usabilidad

La competencia por efectos visuales creada por los navegadores de los 90

  • <blink> y <marquee> eran elementos clásicos del diseño web noventero para llamar la atención en páginas personales
  • Parece que incluso Macromedia Dreamweaver trataba la práctica de envolver <blink> dentro de <marquee> casi como un antipatrón
  • <blink>: de una broma a una etiqueta de uso extendido

    • La invención de <blink> suele atribuirse a Lou Montulli, pero él mismo explicó que no escribió directamente el código final de implementación
    • Antes de unirse a Netscape en 1994, Montulli fue creador del navegador de solo texto Lynx
    • Quedó la anécdota de que, al decir que los efectos visuales propuestos por los ingenieros de Netscape no funcionarían en Lynx, bromeó con que el efecto más vistoso posible en ambos navegadores sería encender y apagar el texto
    • Después, otro ingeniero cuyo nombre no fue revelado agregó <blink> en una sesión de trabajo nocturna
    • Netscape Navigator 2.0 añadió soporte para <blink> en 1995, y por la misma época también incluía GIF animados y una forma temprana de JavaScript
    • Su uso era una estructura simple sin atributos, como <BLINK>This is my blinking text!</BLINK>
    • Cuando la recomendación de HTML4 apareció dos años después, <blink> ya había sido documentado en tono de broma, pero fue muy usado en la web de finales de los 90
    • Se usaba para envolver títulos como “latest updates” en páginas personales o incluso bloques completos, y el ambiente de esa época puede experimentarse en Cameron’s World
  • <marquee>: el texto en desplazamiento de Internet Explorer

    • Microsoft lanzó Internet Explorer 2.0 el mismo año que Netscape Navigator 2.0
    • En ese momento, Internet Explorer todavía iba alcanzando las funciones que Netscape ya había implementado, pero en lugar de <blink> introdujo <marquee>
    • <marquee> permitía controlar con varios atributos la dirección del desplazamiento, la velocidad, la repetición y el movimiento de rebote de ida y vuelta
    • Un ejemplo es <MARQUEE>Oh my god this still works in most modern browsers!</MARQUEE>, y todavía puede funcionar en algunos navegadores modernos

Qué pasaba al superponer ambas etiquetas

  • A finales de los 90 también era relativamente común envolver contenido que se quería resaltar con tanto <blink> como <marquee>
    • Un ejemplo es <MARQUEE><BLINK>This is my really important message!</BLINK></MARQUEE>
    • Los usuarios de Netscape veían texto parpadeante, mientras que los de IE veían texto desplazándose o rebotando de un lado a otro
  • Esto encajaba con la característica de la web según la cual el navegador ignora los elementos que no conoce y sigue renderizando
    • Según la ley de Postel, los navegadores deben ofrecer al usuario el mejor renderizado posible incluso cuando reciben entradas que no entienden
    • La razón por la que el elemento <video> moderno no es una etiqueta autocerrada sino de bloque también es permitir que navegadores antiguos que no conocen <video> puedan leer el código alternativo dentro de él
  • Incluso en navegadores que no conocían ninguna de las dos etiquetas, el texto del contenido seguía siendo legible
    • En ese sentido, se parece al mejoramiento progresivo: añadir efectos vistosos solo en navegadores compatibles y dejar texto básico en los demás entornos
    • JavaScript y CSS también pueden aplicarse siguiendo esa misma regla, lo que ayuda a la mantenibilidad y la accesibilidad

Hoy son funciones más cercanas a huellas históricas

  • Netscape 7 fue uno de los pocos navegadores que en 2002 soportó tanto <blink> como <marquee>
    • Había detalles delicados relacionados con el orden de soporte y los elementos anidados, pero en algunas páginas personales sí aparecían al mismo tiempo el desplazamiento y el parpadeo
  • <blink> es una etiqueta actualmente prácticamente muerta, y si de verdad hace falta se puede recrear un efecto parecido con CSS
  • <marquee> todavía sigue viva
    • No solo existen polyfills, también queda soporte nativo en algunos navegadores
    • Aun así, conviene evitar usar <marquee> en sitios web reales
  • Como material para disfrutar la nostalgia digital resulta interesante, pero no hay motivo para obligar a otras personas a ver texto parpadeante y en movimiento

1 comentarios

 
GN⁺ 2025-06-09
Opiniones de Hacker News
  • https://web.archive.org/web/20201111125145/https://danq.me/2...

  • Se siente como si hubiera existido hace 3.000 años
    Recuerdo la época en que se discutía si usar navegación dentro de frames era una mala práctica. No iframes, sino frames. Antes de AJAX, usábamos HTTP 204 para enviar mensajes al servidor sin recargar la página, y a principios de los 2000 pasábamos días dibujando los límites de estados sobre un mapa de un país en Dreamweaver para crear mapas de imagen clicables
    Si una actualización de plantillas de Dreamweaver se llevaba puestos los cambios, no había control de versiones ni forma de recuperarlos, y también procesábamos en el backend la posición del clic sobre una imagen. Transmitíamos actualizaciones de página con Motion JPEG, y pasábamos por varios pasos para arreglar el alpha blending de PNG en IE, a veces terminando apoyándonos en métodos con ActiveX
    Hacíamos la navegación de sitios con Java, Flash y Silverlight, y recuerdo lo salvadores que eran los GIF espaciadores, los comentarios condicionales y Firebug. No sé cuándo me hice viejo; un día simplemente pasó

    1. https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
    • Construí software web con frames y pensaba que no había ningún problema. Aún hoy no sé bien cuál es el verdadero problema de los frames; a veces se menciona la accesibilidad con lectores de pantalla, pero sigo sin saber concretamente cuál es el problema
    • Hice trabajos para clientes en los que había que dar soporte a IE6, y entre todos sus bugs y restricciones me desesperaba cada vez que un diseñador entregaba un mockup de Photoshop con esquinas redondeadas
      También tenía que ser responsive, aunque en esa época eso era sobre todo adaptarse a distintos tamaños de escritorio, y normalmente había que recortar las esquinas y colocarlas en celdas de tablas. Hacer ese tipo de cosas a mano te desarrolla una resistencia extraña como desarrollador
    • Recuerdo cortar GIFs con muchísima precisión usando la herramienta slice de Photoshop y colocarlos exactamente en tablas HTML
      Eran diseños que se veían mejor en 800x600, y todos esos momentos se perdieron en el tiempo, como lágrimas en la lluvia
    • Todavía visito varias veces por semana sitios que usan frames. Parece que nadie les avisó a los de Open Group/POSIX que hoy en día no se deberían usar frames
    • Hice un chat web con frames. Arriba había un área donde el texto se cargaba infinitamente, y abajo un campo de entrada que recibía una respuesta 204 para no recargarse al enviar un mensaje
      En la época de IE4+, creo que era la forma más elegante de hacerlo
  • Esto es algo que hice hace tiempo, y cada vez que lo muestro la gente se sorprende de que no tenga nada de JavaScript. Todas las animaciones están hechas únicamente con la etiqueta marquee: https://udel.edu/~ianozi/

    • Creo que no veía la etiqueta marquee desde hace unos 20 años, así que tal vez lo había olvidado, pero no sabía que con el parámetro direction se podía hacer scroll vertical
    • https://no-js.abhij.it/
  • Mi técnica favorita con marquee era anidarlas en distintas direcciones
    Si hacías que la marquee interna se moviera en la dirección opuesta a la externa y a la misma velocidad, podías lograr que el contenido pareciera desplazarse y luego detenerse; y alternando velocidades en más niveles, también se podía conseguir un efecto de rebote aleatorio. Creo que para que esto funcionara había que darle un ancho máximo a la marquee interna

  • Hay una razón por la que marquee es muy útil: la inyección de HTML
    marquee se mueve, y como casi nadie la usa intencionalmente, es fácil identificar si un ataque tuvo éxito al probar una vulnerabilidad de inyección de HTML. Incluso para personas no técnicas, explicar “esto no debería moverse, pero se mueve” funciona mucho mejor que “este texto no debería estar en negrita, pero lo está”

    • Cuando hago sanitización de HTML, como easter egg pongo solo marquee en la lista de permitidos, y casi nada más
    • Veo Hacker News con un agregador personalizado, y gracias a este artículo descubrí que mi agregador era vulnerable a inyección de HTML. En la pantalla, (2020) se estaba desplazando como una marquee
    • Yo siempre he usado la etiqueta <plaintext>. Como es un elemento que no se puede cerrar, convierte el resto del documento en HTML sin procesar, así que es muy llamativa
      https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
  • La etiqueta blink, por supuesto, fue muy odiada desde el principio, y en un binario de navegador que usaba para experimentar, probablemente Netscape, busqué "blink" y lo cambié por "blonk". Voilà: ya no parpadeaba

    • La edición binaria era, y sigue siendo, bastante divertida. Recuerdo haber cambiado "__gnu_warning" por "__gnu_whining" para callar las quejas innecesarias alrededor de gets()
      Claro, puede haber un buffer overrun, pero si estás usando un programa descartable, simplemente no desbordes el buffer
    • También le metí mano así al cliente de Slack. Si algo tienen de bueno las apps Electron, es que es realmente sencillo y puedes quitar funciones que no te gustan
      Por ejemplo, ocultar notificaciones o desactivar la señal de que estoy escribiendo un mensaje
  • “La bestia aparecerá rodeada de nubes arremolinadas de venganza. Las casas de los incrédulos serán derribadas y ellos serán quemados hasta los cimientos. Sus etiquetas parpadearán hasta el día del juicio.”
    Es un pasaje de The Book of Mozilla, 12:10 en about:mozilla, y ahora Mozilla se está quemando hasta los cimientos. Fin

    • Aun así, todavía uso Firefox como navegador principal
  • Un amigo siempre usaba la técnica de envolver su segundo nombre con una etiqueta para revisar rápidamente escapes faltantes y posibles XSS. Antes, esto encontraba problemas con una eficacia sorprendente

  • Este comentario está en construcción. Vuelve a visitarlo con frecuencia para ver las actualizaciones

    • ¿Dónde están el contador de visitas y el libro de visitas?
    • ¿Para qué navegador está optimizada esta página?
    • No olviden el [NEW]
  • Una de las razones por las que la gente odia estos elementos es que fueron abusados
    Pero gracias a ese abuso, mucha gente se animó a probar HTML por su cuenta. Para alguien que usaba HTML por primera vez, probar blink o marquee era bastante gratificante; eran como una droga de entrada al mundo de HTML
    Quienes usaban estos elementos seguramente acabaron aprendiendo que no debían usarlos, o quizá siguieron usándolos porque era una página de mySpace. Es fácil burlarse de blink y marquee, parecido a como un diseñador gráfico mira por encima del hombro a quien usa Comic Sans, pero estos tabúes fueron muy útiles para que la gente ganara la confianza de decir “voy a intentarlo”