← Back to list

H1 — Home tab no resetea scroll

🟡 Media #6 | Score: 7/10 observation
Prioridad: 🟡 Media #6
Área: Navegación / Scroll
Severidad: Media
Puntaje actual: 7/10 | Potencial: 10/10

---

Síntoma



Clickear el tab Home no resetea la posición de scroll si ya estás en Home. CanvasKit mantiene el offset de scroll entre navegaciones. Las pruebas secuenciales de secciones fallan por acumulación de scroll drift de ~300px por sección.

Evidencia



eval-sections.mjs — Scroll drift measurements:
Classicism: expected=1800px actual=2100px (300px drift)
Romanticism: expected=2700px actual=3000px (300px drift)
Minimalism: expected=3300px actual=NOT FOUND
Party Music: expected=4200px actual=NOT FOUND

Sections found: 10/12
Missing: Minimalism, Party Music (últimas secciones, inalcanzables por drift acumulado)


eval-coverage.mjs — Scrolling with goHome+scroll vs accumulated:
Scroll acumulado unidireccional: 12/12 secciones encontradas
goHome + scrollStep entre secciones: View All no encontrado para Classicism, Romanticism


Impacto



Factor | Detalle
--------|---------
Testing | Workaround necesario: navegar a otro tab antes de volver a Home. Añade ~2s por prueba
Usuario | Si ve una sección, navega a Favorites y vuelve a Home, espera ver el inicio pero ve la posición anterior
Últimas secciones | Minimalism y Party Music son inalcanzables en testing secuencial
Consistencia | Comportamiento no determinista: a veces resetea, a veces no

Causa raíz



El handler del tap en Home tab probablemente hace:
// Solo navega si NO está en Home
if (currentTab != Tab.home) {
setState(() => currentTab = Tab.home);
scrollController.jumpTo(0);
}
// Si ya está en Home, no hace nada

Debería resetear el scroll siempre, incluso si ya está activo.

Reproducción



export DISPLAY=:99
cd /home/admin/fluttwebfaris
node eval-sections.mjs
# Observar drift de 300px por sección


Fix sugerido (Flutter)



onTap: () {
if (currentTab == Tab.home) {
scrollController.animateTo(0, duration: Duration(milliseconds: 200));
} else {
setState(() => currentTab = Tab.home);
}
}


Tiempo estimado de fix



0.5-1h

Referencias



eval-sections.mjs — Section scroll detection
eval-coverage.mjs — Scroll behavior comparison
NOTAS-ERRORES.md línea 7-21

Review

Comments (1)

2026-07-29 16:09:38
El error es que no funciona como en la app faristol móvil. Home, Home Favorites, y Home Profile deben funcionar como en la app de producción (móvil).