You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/docs/audit/components/form.md

8.5 KiB

form — ficha de auditoría (RE-AUDITADA 2026-07-07, profundidad piloto)

  • Familia: fields (orquestación) · Método: solo análisis; evidencia por dimensión · demos fuera
  • Capas leídas: morfo completo (1-90+) · soma types superficie de props · pack ✓
  • Máquina: PASS limpio · tests ✓ · README ×2 ✓

Dimensiones (evidencia leída)

# Dimensión Estado Evidencia
1 Composición ✓ Provider(<form> real)/Submit/Reset/ErrorSummary compositivos
2 Naming dato de censo isPending/data-pending para async-en-vuelo (morfo :75, types) mientras button/field usan loading — DOS nombres para el concepto → _naming; disableWhenPristine en Reset ✓ expresivo; submitCount en snippet
3 Coherencia semántica ✓ referencia commit-submit con intent fulfill (:16-24 — el cierre terminal donde la doctrina de button dice que vive el intent fuerte ✓); signal-warn-invalid untilFix + requiresFocusMove + persistent-trace con §6.2 y §9.2 citados y el ciclo clearSignal/clearTarget documentado (:26-53) — CUARTO contrato de referencia de la familia; commit-reset neutral ✓
4 API ✓ Standard-Schema (el adaptador always-async con untrack — antecedente de memoria); estados dirty/touched/submitted proyectados
5 Tokens ✓ Gaps por size vía recipe
6 Sema ✓ Pack ✓ — el submit ES el sitio del carácter
7 Animaciones ✓ Sin keyframes
8 Contrato morfo ✓ APG landmark form CORRECTO (:9); data-{pending,dirty,touched,invalid,submitted} + aria-busy condicional (:74-88)
9 A11y ✓ ejemplar El focus-move del warn aterriza en el form y focusFirstInvalid() perfora al primer campo inválido (documentado :43-48); ErrorSummary con títulos singular/plural interpolados (:12-13)
10 Theming ✓ Focus o1 contenedor
11 Composición interna ✓ ES el otro extremo del OR-merge: Field se registra y deriva dirty/touched/errors de aquí
12 Estados ✓ Ciclo completo submit/reset/pending
13 Runtime ✓ Validación async sin timers crudos (Standard-Schema)
14 Docs+tests ✓ README ×2, suite ✓
15 i18n ✓ error-summary-title con {{count}} + variante singular

Hallazgos y propuestas

ID Hallazgo Propuesta
F-1 isPending vs loading (dos nombres para async-en-vuelo en el catálogo) Veredicto _naming: elegir uno (nota: pending es el término del form nativo/React 19; loading el de controles — puede ser DOS conceptos legítimos [form en vuelo vs control ocupado] — decidir si se unifica o se documenta la distinción)

Escalan al sistema

_naming (pending vs loading).

Veredictos

(pendiente — checkpoint post-barrido)

Powered by TurnKey Linux.