Skip to content

chore(frontend): fixes del code review (a11y, seguridad, i18n, tests, deps)#31

Merged
aitorevi merged 1 commit into
mainfrom
chore/frontend-review-fixes
Jun 2, 2026
Merged

chore(frontend): fixes del code review (a11y, seguridad, i18n, tests, deps)#31
aitorevi merged 1 commit into
mainfrom
chore/frontend-review-fixes

Conversation

@aitorevi

@aitorevi aitorevi commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Resultado del code review integral del frontend. Una sola PR.

Accesibilidad

  • lang="es" (la UI es española) + localización de lo que quedaba en inglés: KPIs, títulos de charts, nombres de serie y subtítulo.
  • MultiSelect: quita el role="listbox" erróneo (dentro había search + checkboxes), añade aria-haspopup/aria-controls y devuelve el foco al botón al cerrar (Escape).
  • Charts envueltos en role="img" + aria-label descriptivo.
  • :focus-visible consistente en globals.css.

Seguridad

  • next.config.ts: cabeceras — CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy. Verificado (captura del build de producción) que el CSP no rompe el render.
  • Sin dangerouslySetInnerHTML/eval; BACKEND_URL es server-side (no se expone al navegador).

Tests (30 → 39)

  • Nuevos: FilterBar, ChartTooltip (single + multi-serie), fetchDashboard (éxito + error), y Dashboard con filtros sin resultados.

Dependencias

  • Parches seguros: next 16.2.7, react/react-dom 19.2.7, eslint-config-next 16.2.7.
  • ⚠️ vitest 4 (cierra la única vuln crítica, que es dev-only) no entra: choca por peer-deps con plugin-react/jsdom → follow-up. Las 7 vulns de npm audit son todas de toolchain dev/build, ninguna en el bundle de producción.

Nota

Localicé strings visibles a español siguiendo frontend/CLAUDE.md (UI en español). Si prefieres mantener algo en inglés, lo ajusto.

Verificación

  • lint ✅ · test:run ✅ (39) · build ✅ · cabeceras presentes ✅ · captura del dashboard OK (charts + español).

🤖 Generated with Claude Code

… deps)

Accesibilidad:
- lang="es" (la UI es española) y localización de títulos/labels que quedaban
  en inglés (KPIs, títulos de charts, nombres de serie, subtítulo).
- MultiSelect: quita role=listbox erróneo, añade aria-haspopup/aria-controls y
  devuelve el foco al botón al cerrar (Escape).
- Charts envueltos en role=img + aria-label descriptivo.
- :focus-visible consistente en globals.css.

Seguridad:
- next.config.ts: cabeceras (CSP, X-Content-Type-Options, X-Frame-Options,
  Referrer-Policy, Permissions-Policy). Verificado que el CSP no rompe el render.

Tests (30 -> 39):
- Nuevos: FilterBar, ChartTooltip, fetchDashboard (éxito + error), y caso de
  Dashboard con filtros sin resultados.

Dependencias:
- Parches seguros: next 16.2.7, react/react-dom 19.2.7, eslint-config-next 16.2.7.
- vitest 4 (cierra la única crítica, dev-only) NO entra: choca por peer-deps;
  queda como follow-up. Las 7 vulns de npm audit son todas de toolchain dev/build,
  ninguna en el bundle de producción.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
connect-analyzer Ready Ready Preview, Comment Jun 2, 2026 7:36pm

@aitorevi aitorevi merged commit d1e2e1e into main Jun 2, 2026
4 checks passed
@aitorevi aitorevi deleted the chore/frontend-review-fixes branch June 2, 2026 19:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant