A livello sintattico la validazione nativa dei form è basata sull’adozione di due controlli, l’attributo required e l’input type, dei costrutti certamente già noti a chi ha già approfondito le specifiche di HTML5: il primo indica che un campo deve essere obbligatoriamente e correttamente digitato, il secondo determina la tipologia di parametro attesa, ad modello un’email o una password. Grazie ad essi è possibile generare un modulo per il feedback, l’invio di query ad un’API o l’autenticazione utilizzando un markup come il seguente:
<form> <label> Inserisci la tua email: <input type="email" required> </label> <label> Inserisci la tua password: <input type="password" required> </label> <button>Invia</button> </form>
Attraverso l’impiego di required e con l’indicazione specifica del type relativo a ciascun campo di input, il browser può impedire l’invio di un parametro non valido perché vuoto o formalmente scorretto; un classico prova potrebbe essere quello di un indirizzo di posta elettronica a cui manca la chiocciola o una qualsiasi altra componente (dominio, estensione..). Tale controllo proseguirà fino a quando l’fruitore non digiterà tale dato nel formato atteso.
Il risparmio in termini di tempo e lavoro da parte dello sviluppatore risulta immediatamente evidente: non sarà più necessario utilizzare JavaScript per le procedure di validazione; i browser saranno in grado non soltanto di individuare le diverse tipologie di input, ma anche di distinguere tra le varie eccezioni, per cui l’fruitore visualizzerà notifiche differenti a secondo del tipo di errore rilevato.
Come sottolineato in precedenza, la vera portata di questa novità non si trova nei costrutti HTML5, prevedibilmente già noti e in molti casi già ampiamente utilizzati dagli sviluppatori, ma nel fatto che essi potranno essere adottati per tutti i browser, con un minore necessità di gestire le incompatibilità prima esistenti.
Per approfondire: TJ VanToll