Files
navegator/dev/issues/completed/002-accessibility-tree.md
T
Developer c165f2f788 docs: issues técnicas para nuevas funcionalidades
Agrega 19 issues técnicas documentando funcionalidades implementadas y pendientes.

Issues completadas (movidas a dev/issues/completed/):
- 001-conversor-web-markdown.md
- 002-accessibility-tree.md
- 003-gestion-cookies-perfil.md
- 004-gestion-extensiones-chrome.md
- 005-eliminar-timeouts-innecesarios.md

Issues implementadas:
- 006-manejo-tabs-ventanas.md
- 016-manejo-iframes.md
- 017-actions-api.md
- 018-file-uploads.md
- 019-expected-conditions-mejoradas.md

Issues pendientes (media prioridad):
- 007-alert-prompt-confirm-handling.md
- 008-screenshot-elementos-especificos.md
- 009-pdf-generation.md
- 010-device-emulation-completo.md
- 011-downloads-handling.md

Issues pendientes (baja prioridad / avanzado):
- 012-browser-contexts-multi-sesion.md
- 013-video-recording.md
- 014-network-mocking-avanzado.md
- 015-geolocation-permissions.md

Incluye también dev/NUEVAS_FUNCIONALIDADES.md con resumen completo.

Directorio: dev/
2026-03-25 00:49:06 +01:00

89 lines
2.6 KiB
Markdown

# Issue #002: Recuperación de Accessibility Tree
**Tipo**: Enhancement
**Prioridad**: Alta
**Estado**: Pendiente
## Descripción
Implementar método para obtener el árbol de accesibilidad (Accessibility Tree) de la página usando Chrome DevTools Protocol.
## Funcionalidad deseada
- Obtener accessibility tree completo vía CDP
- Listar roles ARIA de elementos (button, link, heading, etc.)
- Obtener nombres accesibles de elementos
- Extraer propiedades de accesibilidad
- Útil para que LLMs entiendan estructura semántica de página
- Formato JSON estructurado y fácil de parsear
- Opción para filtrar por tipos de nodos
## Implementación técnica
### Archivo sugerido
`pkg/browser/accessibility.go`
### CDP Domain
`Accessibility.getFullAXTree` - https://chromedevtools.github.io/devtools-protocol/tot/Accessibility/
### API propuesta
```go
// GetAccessibilityTree obtiene el árbol de accesibilidad de la página
func (b *Browser) GetAccessibilityTree(ctx context.Context, opts *AccessibilityOptions) (*AXTree, error)
type AccessibilityOptions struct {
Depth int // Profundidad máxima del árbol (0 = ilimitado)
FilterRoles []string // Roles a incluir (ej: ["button", "link", "heading"])
}
type AXTree struct {
Nodes []AXNode `json:"nodes"`
}
type AXNode struct {
NodeID string `json:"nodeId"`
Role string `json:"role"`
Name string `json:"name"`
Description string `json:"description"`
Value string `json:"value,omitempty"`
Properties map[string]string `json:"properties,omitempty"`
Children []string `json:"children,omitempty"` // IDs de hijos
}
```
### Comandos CDP necesarios
```go
// 1. Habilitar dominio Accessibility
{"method": "Accessibility.enable"}
// 2. Obtener árbol completo
{"method": "Accessibility.getFullAXTree", "params": {}}
// O para un nodo específico:
{"method": "Accessibility.getPartialAXTree", "params": {"nodeId": ...}}
```
## Casos de uso
- LLMs pueden entender mejor la estructura de la página
- Identificar elementos interactuables automáticamente
- Testing de accesibilidad
- Generar selectores semánticos
- Scraping inteligente basado en roles ARIA
## Ventajas sobre DOM normal
- Información semántica rica
- Roles ARIA explícitos
- Nombres accesibles computados
- Estructura más simple que DOM HTML
- Ideal para navegación por agentes autónomos
## Referencias
- CDP Accessibility Domain: https://chromedevtools.github.io/devtools-protocol/tot/Accessibility/
- WAI-ARIA Roles: https://www.w3.org/TR/wai-aria-1.2/#role_definitions
- Chrome AX Tree Inspector: chrome://accessibility