Form accessibili senza sacrificare il design
L'accessibilità nei form non è una lista di checkbox da spuntare. È progettare l'esperienza in modo che funzioni per tutti, incluso chi usa screen reader o tastiera.
Il problema con la maggior parte dei form è che sono progettati visivamente prima di essere progettati funzionalmente. Si pensa prima all'aspetto e poi si aggiunge l'accessibilità come afterthought. Questo approccio produce sempre risultati mediocri. L'accessibilità deve essere parte del processo di design fin dall'inizio.
Le basi sono semplici: ogni input deve avere un label associato via htmlFor/id, non solo visivamente. I messaggi di errore devono essere collegati all'input via aria-describedby. Il focus deve essere visibile e non nascosto. Il form deve funzionare completamente da tastiera. Questi non sono extra — sono requisiti minimi.
Il dettaglio che fa la differenza è la gestione degli errori in tempo reale. Non mostrare tutti gli errori prima che l'utente abbia finito di compilare. Non validare al blur se il campo non è ancora stato toccato. La regola che seguo: valida on-blur per i campi già visitati, on-submit per tutto il resto. Questo riduce la frustrazione senza perdere feedback utile.