El árbol de accesibilidad
La misma página como texto, construida por el propio navegador. Cuesta prácticamente nada, y para muchísimas tareas, es la única vista que Dinoer necesita mostrar.
Cada navegador construye una segunda representación de la página que muestra: un árbol de roles y nombres, destinado a tecnologías de asistencia. Un lector de pantalla lo utiliza para decir «botón, Iniciar sesión» en lugar de describir píxeles.
No es algo que Dinoer inventa. Ya está ahí, en cada página que se ha abierto alguna vez, y resulta ser exactamente lo que un modelo de lenguaje necesita; por eso, para Dinoer, no es una opción entre varias, sino la forma principal en que se lee una página.
Cómo se ve
/opt/dinoer/venv/bin/python3 /opt/dinoer/shot.py \
--url https://example.com --a11y --guide-version 1.6
- heading "Example Domain" [level=1]
- paragraph: This domain is for use in documentation examples without needing permission. Avoid use in operations.
- paragraph:
- link "Learn more":
- /url: https://iana.org/domains/example
Real output, en aproximadamente mil milisegundos, sin ningún paso de renderizado —
--a11y devuelve el árbol y nada más. No hay un «modo rápido» separado al que optar: sin código para capturas de pantalla incluido en la herramienta, esta es simplemente
la forma en que Dinoer lee una página.
¿Qué ventajas ofrece que el HTML sin formato oculta?
Roles. heading [level=1], link, y — en una página de formulario — textbox,
combobox, button. No «un rectángulo con esquinas redondeadas,» sino lo que el
elemento es.
Destinos. link "Learn more" seguido de /url:. A dónde va,
antes de hacer clic.
Estructura. Qué se anida bajo qué, sin los cientos de
<div>s de diseño que el ojo humano filtra automáticamente y que un presupuesto de tokens no puede.
A menudo es suficiente por sí solo
Cuatro páginas, tres solicitudes, una palabra clave encontrada con su contexto circundante, y ningún paso de renderizado del navegador ejecutado en ningún momento.
El árbol es autosuficiente para toda una clase de tareas: buscar texto o
una etiqueta, navegar mediante enlaces ya que cada href está presente, verificar que
un elemento esté presente, descubrir cómo está organizada una página. extraire_texte
comienza donde la estructura del árbol deja de importar y solo importa el contenido textual de la página. Las dos vistas, una al lado de la otra →
Un lienzo, una imagen con la que se puede interactuar pero sin una etiqueta accesible: estos elementos no tienen nada que mostrar al árbol, y Dinoer no tiene ninguna alternativa para ellos. Ese es un límite real y explícito, no uno oculto. ¿Qué percepción no alcanza →
Por qué esto es importante más allá de Dinoer
Una página con un árbol de accesibilidad bien construido es legible para un lector de pantalla, un motor de búsqueda y un agente; el mismo árbol sirve para los tres. Una página que “pinta” sus botones con elementos <div> estilizados es opaca para los tres a la vez. El árbol no es una característica de accesibilidad que casualmente ayuda a las máquinas. Es la estructura de la página, hecha explícita, y quien escribe la página decide si esa estructura existe.
En resumen
- El navegador construye este árbol para cada página, para tecnologías de asistencia.
- Contiene roles, destinos y estructura; una imagen no contiene ninguno de estos elementos como texto.
--a11ylo devuelve sin ningún paso de renderizado, en aproximadamente un segundo.- La falta de una representación semántica accesible significa que no hay ninguna alternativa: recurra a
extraire_textepara textos narrativos, y acepte el límite real donde ninguna de las dos opciones es útil.