jsaction entries with only custom event names are reported as lost interactive controls
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #4446 de @chubes4 — fusionado
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 75/100
Línea de trabajo
Empieza leyendo SourceAttribute::DECLARED_EVENTS, SourceDom::eventMetadata() y InteractionFallbackReporter::appendInteractiveControlBehaviorLossFallbacks(), que el issue identifica como la ruta de diagnóstico. Comprueba cómo se analizan los tipos de evento de jsaction, incluidos los tipos omitidos cuyo valor predeterminado es click. El trabajo estará terminado cuando las entradas que solo contienen eventos personalizados no produzcan ningún fallback de control interactivo, mientras que los eventos de interacción del DOM, como click, sí lo sigan produciendo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
jsaction entries that declare only custom (non-DOM) event names are reported as interactive_control_behavior_lost, which fails the import quality gate on ordinary content.
SourceAttribute::DECLARED_EVENTS treats any non-empty jsaction as a declared event, so SourceDom::eventMetadata() returns an event for it, and InteractionFallbackReporter::appendInteractiveControlBehaviorLossFallbacks() emits an unsupported fallback for every such element. JSAction's grammar is [eventType:]handler separated by ; (an omitted event type means click). Entries such as zXBUYb:zTPCnb name library-internal custom events dispatched by descendants. They do not make the element a user control.
Reduced reproduction
<!doctype html><html><head><meta charset="utf-8"><title>Declared custom events</title>
<style>.card{padding:16px;border:1px solid #ccc;margin:8px}</style></head>
<body>
<div class="card" jsaction="zXBUYb:zTPCnb;zQF9Uc:Qxe3nd;"><p>First card</p></div>
<div class="card" jsaction="rcuQ6b:WYd;GvneHb:og1FDd;"><p>Second card</p></div>
<div class="card" jsaction="zXBUYb:zTPCnb;"><p>Third card</p></div>
</body></html>
studio create --from page.html → static_site_importer_quality_failed: 3 unsupported_html_fallback failures, all interactive_control_behavior_lost.
Expected
Only jsaction entries whose event type is a DOM user-interaction event (click, keydown, input, change, submit, focus, touchstart, … or an omitted type, which defaults to click) count as declared events. Custom event names are not interaction evidence. The reduced page imports with zero fallbacks. Elements declaring click:handler keep being reported as before.
Real-world impact
On a 70-route Google Sites import, 7000 of 7069 unsupported fallbacks came from this diagnostic, capped at 100 per page. About 1750 elements carried only custom-event jsaction values.
Environment
Static Site Importer 1.33.331, Blocks Engine php-transformer (bundled), Data Liberation Agent 0.33.120, WordPress 7.1.4.
AI assistance
Claude via Pi (Roadie) ran the import, traced the diagnostic to SourceAttribute::DECLARED_EVENTS and reduced the page. Chris Huber directed the work.
- Lenguaje dominante
- PHP
- Estrellas
- 25
- Forks
- 3
- Merge medio
- 3 h 25 min
- PR fusionados (30 d)
- 935
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Automattic/blocks-engine
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Automattic/blocks-engine#4621 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Automattic/blocks-engine#775 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
Automattic/blocks-engine#4638 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Automattic/blocks-engine#4637 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Automattic/blocks-engine#4630 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Automattic/blocks-engine
Issues similares
-
Administration: required plugin configuration field stays invalid after restoring its saved valueAbiertoneeds-triage Platform(Default)
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
good first issue priority:low type:docs
Dificultad 1/5 1-3 horas Aptitud para principiantes 95/100
crazy-goat/rabbit-stream#969 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
opensourcepos/opensourcepos#4801 ·
Los mantenedores suelen responder en 1 día
-
backend docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Open-Locker/Open-Locker#368 ·
Los mantenedores suelen responder en 1 día
-
enhancement priority Sales
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
novalo-dev/Prestashop-MCP-Server#190 ·
Los mantenedores suelen responder en 1 día