Dinoer

El árbol de accesibilidad

La página como texto, construida por el propio navegador para los lectores de pantalla. Para muchas tareas es la única vista que Dinoer necesita devolver.

Junto a la página que muestra, cada navegador construye un árbol de roles y nombres para las tecnologías de asistencia. Un lector de pantalla lo usa para decir «botón, Iniciar sesión» en lugar de describir píxeles.

Dinoer no inventa este árbol: ya está ahí, en cada página. Es la forma principal en que Dinoer lee una página.

Qué aspecto tiene

/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

--a11y devuelve este árbol. Chromium carga y maqueta la página, pero no se produce ninguna imagen, y no hay ningún modo más rápido que activar: así es, sin más, como Dinoer lee una página.

Lo que contiene y el HTML en bruto entierra

Los roles. heading [level=1], link y, en un formulario, textbox, combobox, button. No «un rectángulo con esquinas redondeadas», sino lo que es el elemento.

Los destinos. link "Learn more" seguido de /url:: adónde lleva el enlace, antes de que nadie haga clic.

La estructura. Qué está dentro de qué, sin los cientos de <div> de maquetación que el ojo pasa por alto y un presupuesto de tokens no puede pasar por alto.

A menudo basta por sí solo

El árbol basta para toda una clase de tareas: encontrar un texto o un título, seguir enlaces (cada href está ahí), comprobar que un elemento existe, entender cómo está organizada una página. extraire_texte toma el relevo cuando la estructura ya no importa y solo cuenta el texto. Las dos vistas, una al lado de la otra →

Un canvas o una imagen en la que se puede hacer clic sin etiqueta accesible no dan nada que mostrar al árbol, y Dinoer no tiene nada a lo que recurrir. Lo que la percepción no alcanza →

Por qué importa más allá de Dinoer

El mismo marcado (botones de verdad, títulos de verdad, campos con etiqueta) construye un árbol que pueden usar tanto un lector de pantalla como un agente, y da la misma estructura a los buscadores. Una página cuyos botones son <div> con estilo resulta opaca para todos a la vez. Quien escribe la página decide si esa estructura existe.

En resumen

  • El navegador construye este árbol en cada página, para las tecnologías de asistencia.
  • Contiene roles, destinos y estructura, como texto.
  • --a11y lo devuelve; nunca se produce una imagen.
  • Sin representación accesible no hay alternativa: use extraire_texte para la prosa y acepte el límite donde ninguno de los dos ayuda.