Agentes web y la importancia del HTML semántico y accesible
Los agentes de inteligencia artificial que navegan la web, como los de modelos LLM multimodales, se encuentran con HTML complejo y con interfaces hechas para humanos. Igual que los lectores de pantalla, muchos de estos agentes dependen de la estructura semántica y de la accesibilidad del HTML para entender una página y actuar correctamente. En este artículo, vamos a ver cómo podemos hacerle la vida fácil a los nuevos visitantes de nuestras páginas web.
Como comentábamos en el artículo sobre tráfico agéntico, hay dos enfoques principales: los agentes visuales, que procesan la página como imagen, y los agentes basados en DOM, que leen el árbol HTML o el árbol de accesibilidad. Los primeros pueden “ver” botones o imágenes aunque no tengan texto, aunque con mucho más coste computacional, mientras que los segundos son más eficientes pero solo entienden elementos que tengan atributos HTML o ARIA, lo visual puro no existe para ellos. En la práctica, los agentes híbridosque combinan ambas formas suelen ser más robustos y efectivos.
En cualquier caso, seguir buenas prácticas de HTML semántico y accesibilidad hace que los agentes funcionen mejor. A continuación, os comparto una serie de recomendaciones respaldadas por la evidencia, con ejemplos de código y referencias a estudios y benchmarks como WebArena, Mind2Web o MiniWoB++.
<!-- Correcto: Botón semántico -->
<button type="button">Play video</button>
<!-- Incorrecto: div sin semántica -->
<div onclick="playVideo()">Play video</div>
Un <button> ya comunica que es accionable. Un <div> con JavaScript no lo hace y puede confundir a un agente. Estudios recientes confirman que usar elementos nativos aumenta la tasa de éxito y reduce fallos en tareas web.
2. Poner nombres accesibles a los controles
Cualquier elemento interactivo debe tener un nombre accesible que describa qué hace. Puede venir de texto visible, de un <label>, de un aria-label o de un alt. Por ejemplo, en formularios, cada campo debe tener su <label for> asociado.
Cualquier imagen que tenga información debe llevar un alt descriptivo. Si es decorativa, se deja vacío. Un ejemplo:
<a href="/promociones">
<img src="promo.png" alt="Promoción 50% descuento en suscripción">
</a>
Más de la mitad de los banners online no tienen alt y se vuelven invisibles para agentes y lectores de pantalla. Incluso en modelos multimodales, los datos textuales bien marcados se priorizan frente a señales visuales más difusas.
<header><h1>Título del sitio</h1></header>
<nav aria-label="Menú principal">...</nav>
<main>
<article>
<h1>Título del artículo</h1>
<section><h2>Subsección</h2></section>
</article>
</main>
<aside aria-label="Relacionado">...</aside>
<footer>...</footer>
Esto da puntos de referencia claros. En el benchmark Mind2Web se vio que al filtrar el DOM para quedarse con nodos relevantes y estructurados se redujo el ruido casi a la mitad manteniendo el 95% de lo importante.
Además, en el estudio Understanding HTML with Large Language Models se demostró que los LLM generalistas ya son capaces de aprender a entender el HTML y superar modelos diseñados solo para entornos sintéticos como MiniWoB. También el trabajo Decoupling Structure and Content for DOM Representation Learning confirma que separar estructura y contenido del DOM mejora los resultados en tareas de grounding y extracción. No es casualidad que frameworks de RAG como LangChain incorporen utilidades como HTMLHeaderTextSplitter que aprovechan directamente los encabezados para segmentar mejor el contenido en chunks procesables por los modelos.
5. Dar pistas semánticas en contenido visual o dinámico
Texto oculto pero accesible: añade un <span class="visually-hidden"> con el mensaje en banners solo gráficos.
Overlays semánticos: poner un <a> transparente con aria-label encima de un banner hace que el agente pueda clicar.
Describir cambios dinámicos: usa atributos como aria-live o aria-expanded para que el agente sepa qué ha cambiado.
Prefiere estados estáticos: usa frames o texto en lugar de animaciones que desaparecen.
En el estudio de Machine-Readable Ads se comprobó que estas técnicas convertían anuncios invisibles en elementos detectables y clicables sin empeorar la experiencia humana.
6. Optimizar diseño para la exploración automatizada
Contenido clave arriba. Muchos agentes no hacen scroll más allá de una o dos pantallas, así que pon lo esencial visible pronto.
Evita pop-ups o diálogos nativos. Los agentes no saben qué hacer con ellos. Mejor usa <div role="dialog"> en HTML con botones accesibles.
Haz tu sitio responsive sin esconder funciones. Lo que ofrezcas en desktop debe estar también en móvil y ser alcanzable con clics o teclado, no solo hover.
Los metadatos como Schema.org ayudan a que la información sea entendida sin ambigüedad. No sustituyen a la accesibilidad básica, pero complementan. Por ejemplo:
Esto haría que un agente pueda extraer directamente el precio de forma inequívoca.
7.1 Lo que sabemos por la documentación y la investigación académica
Hay trabajos como Schema2QA muestran cómo un schema bien definido puede servir directamente para generar agentes de preguntas y respuestas con buena precisión, y en Schema.org Action annotations se ve cómo anotar APIs web permite que asistentes ejecuten acciones como reservar o comprar. En el caso de Schema2QA, los autores midieron una precisión del 64–75% en agentes de preguntas y respuestas basados directamente en Schema.org, cifras comparables a asistentes comerciales como Siri. Y con las Action annotations se comprobó que asistentes podían ejecutar reservas o compras automáticamente al leer estas anotaciones, lo que nos indica que Schema.org no es solo un recurso SEO, también podría ser infraestructura útil para agentes.
7.2 Lo que estamos viendo hoy en la práctica con los grandes chatbots
Lo que reciben ChatGPT/Gemini/Claude al “leer” una URL suele ser un extracto plano tipo reader mode: sin etiquetas, sin scripts y sin atributos. Y ahí está la trampa: el Schema está dentro de una etiqueta <script>, por lo cual es invisible. Y, aunque lo pongas en microdata, te pasará lo mismo.
Pero tenemos tres escenarios que cambian el resultado:
Acceso a través de SERP (Google/Bing): cuando el asistente/agente consulta resultados de búsqueda, si en ellos existe información estructurada en forma de rich snippets, entonces el chatbot los puede leer porque el buscador ya ha indexado tu Schema con JSON-LD/microdata y éste queda expuesto en sus snippets.
Acceso directo por scraping de la página: si fuerzas al chatbot a entrar y “leer” el HTML con sus tools, no verá el Schema porque se queda con texto plano.
Acceso mediante agentes navegacionales: los que renderizan/navegan un DOM real sí pueden procesar el documento completo y, por tanto, acceder tanto a JSON-LD como a microdata para interpretar la página y sus funciones.
Los agentes navegacionales que procesan el DOM completo sí interpretan correctamente los datos estructurados.
Me di cuenta porque al hacer búsquedas en ChatGPT de la temática de un cliente, los productos de éste aparecían siempre con un atributo cuya información sólo estaba en el JSON-LD. En cambio, si le pedía a ChatGPT que entrara al producto y forzaba el scrapeo del mismo a través de sus tools, éste no veía el Schema y tampoco la versión con ese atributo (porque estaba en SSR).
7.3 Lo que pasa al generar schema con LLMs
Eso sí, cuidado con delegar la generación de este marcado a un LLM. En el estudio LLM4Schema.org se comprobó que modelos como GPT-4 generan Schema.org más completo que un humano en muchos casos, pero también cometen errores o inventan propiedades, lo que puede acabar en un marcado inválido. Así que conviene usar la IA como apoyo, pero siempre validando el resultado con herramientas oficiales. En ese mismo estudio se cuantifica el problema, hasta un 40–50% del marcado generado automáticamente resultó inválido o inventado. Por eso conviene usar la IA como asistente para ahorrar tiempo, pero nunca como sustituto, siempre validando con el validador oficial de Schema.org o con la herramienta de resultados enriquecidos de Google.
8. Conclusión: El HTML semántico y accesible hace que los agentes de IA funcionen mejor
El HTML semántico y accesible no solo ayuda a usuarios con discapacidades, también hace que los agentes de IA funcionen mejor. Usar los elementos correctos, etiquetar y estructurar bien el contenido y añadir metadatos prepara nuestras páginas para la siguiente generación de agentes. El HTML semántico es la base de la accesibilidad, y ahora también podemos decir que es la base de la IA-readiness y Agent Experience.
Foursquare anunció su asociación con OpenAI hace 4 meses para alimentar las búsquedas locales en ChatGPT a través de su Places API. Desde entonces, su base de datos, que incluye más de 100 millones de puntos de interés en más de 200 países, se ha convertido en una de las principales fuentes utilizadas por el […]
MUVERA (Multi-Vector Retrieval Algorithm) es un paper de investigación de Google publicado en arXiv el 29 de mayo de 2024. Su objetivo es mejorar la eficiencia de la recuperación semántica multivectorial (como la que usa ColBERT), transformándola en un problema de recuperación monovectorial mediante una técnica llamada Fixed Dimensional Encodings (FDEs). Es decir, se trata […]