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/password-field.md

12 KiB

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

  • Familia: fields · Método: solo análisis; evidencia por dimensión · demos fuera
  • Capas leídas: morfo completo (1-130+; eventos íntegros) · soma types completo (1-110+) · pack sema ✓ existe · css (censo familia: focus outline, alturas, strength 6px)
  • Máquina: NEEDS-WORK — E-2.3 (sin README eidos) · R-1.3 (readonly sin estilo) · tests 0

Dimensiones (evidencia leída)

# Dimensión Estado Evidencia
1 Composición ✓ Surface consensuada contra 5 refs (Ark/Chakra/Mantine/Prime/Ant — documentado morfo :13-20); partes Input/VisibilityTrigger/CapsLockIndicator/StrengthMeter compositivas
2 Naming ✓ conforme value/onValueChange ✓; visible/onVisibilityChange (par bindable ✓, types :56-59); onSubmit crudo (mismo F-4 de search → _naming); purpose: 'current'|'new' → autocomplete (types :61-66 — API password-manager-aware); strength pluggable con default $libs/secs (:95-110)
3 Coherencia semántica ✓ DOCTRINA DE REFERENCIA El morfo documenta con INCIDENTE por qué teclear NO es commit (commit-input por tecla disparaba pulse 260ms + beep por letra; alineado con editable/number/search/combobox — :40-47); commit-toggle-visibility = commit.toggle + affirm con cita cap. 23 (:59-72); signal-notify-caps-state con persistence: 'stateBound' + ciclo clearSignal razonado (el indicador seguiría 240ms y moriría con CapsLock aún activo — :73-93)
4 API ✓ min/maxLength; strength con resultado estructurado (score/label/warnings) y override zxcvbn/OWASP documentado; snippetProps completos (:17-30)
5 Tokens ✓ con dup height-{k} duplicada (SYS-6); strength-segment 6px = geometría del meter
6 Sema ✓ Pack ✓ + el contrato de eventos más fino del catálogo
7 Animaciones ✓ Sin keyframes; el settle del commit lo evitó la doctrina de :40-47
8 Contrato morfo ✓ ejemplar APG textbox + ARIA toggle-button del trigger — citas CORRECTAS (:38, :10-11); innovación CapsLock documentada como gap 10/10 refs (:22-26); flags visible/caps-active/focused/empty (:118-121)
9 A11y ✓ resuelto a nivel contrato a11ySemantic: { requiresLiveRegion: true, reducedMotionFallback: 'text' } en el evento de caps (:99-102) — el anuncio para AT es parte del CONTRATO, no un extra; aria-label↔Field.Label documentado
10 Theming hallazgo R-1.3 readonly sin estilo (patrón familia)
11 Composición interna ✓ OR-merge con Field documentado (types :38-40, :73)
12 Estados ✓ visible/caps/focused/empty proyectados; purpose para autofill
13 Runtime ✓ Caps vía getModifierState en keydown del propio input (documentado :24-26) — sin listeners globales
14 Docs+tests gap doble Sin README eidos (E-2.3) y cero tests — el contrato más rico de la familia sin suite que lo proteja
15 i18n ✓ texts show/hide/caps-warning localizados (:32-37); warnings del meter traducibles vía langs (documentado types :103-105)

Hallazgos y propuestas

ID Hallazgo Propuesta
F-1 Cero tests para el contrato más fino de la familia (toggle+aria, caps stateBound+clearSignal, strength plugable, debounce n/a) Suite prioritaria en fase de fixes (SYS-2): el stateBound del caps es EXACTAMENTE lo que una regresión rompería en silencio
F-2 Sin README eidos SYS-4
F-3 readonly sin estilo (R-1.3) Tratamiento único de familia
F-4 onSubmit crudo (tipado heterogéneo) Veredicto _naming
F-5 height-{k} duplicada SYS-6
Nota ✓✓ La doctrina teclear≠commit (:40-47) y el a11ySemantic del caps son CANON exportable Citarlos como referencia en el veredicto de field F-2 (Field.Input debe adoptar commit-submit al Enter, el patrón que este morfo documenta) y en la doctrina sema

Escalan al sistema

SYS-2 · SYS-4 · SYS-6 · _naming (onSubmit crudo) · la doctrina de :40-47 resuelve el field F-2 a nivel de familia (commit-submit-en-Enter como patrón de inputs de texto).

Veredictos

(pendiente — checkpoint post-barrido)

Powered by TurnKey Linux.