Given that it seems like such a poor user experience, why does it continue to be so common?
Che dire:
Pigrizia ...
... e lavoro amatoriale in generale. E il fatto che molti programmatori non si preoccupano dell'esperienza utente.
Prendi i numeri di telefono. Nel mio paese, i numeri di telefono nazionali sono composti da dieci cifre, la prima cifra è necessariamente zero. Mentre un numero può essere inserito come:
- 0123456789
- 01 23 45 67 89
- +33 1 23 45 67 89
- +33 (0) 1 23 45 67 89
la maggior parte dei siti Web accetta solo il primo modulo, indipendentemente dal fatto che:
-
È difficile entrare e soggetto a errori (metà del tempo in cui digito il mio numero di telefono usando il primo modulo, commetto un errore ... l'altra metà semplicemente inserisco intenzionalmente un numero che non esiste ).
-
Rende impossibile per uno straniero utilizzare il modulo (registrarsi su un sito, ad esempio).
Invece, ciò che uno sviluppatore professionista farebbe è di consentire a qualsiasi numero di telefono ¹ di essere inserito, e quindi provare ad analizzarlo. In realtà, non è nemmeno così difficile: Twilio fa un ottimo lavoro di analisi dei numeri per te.
Lo stesso vale per gli indirizzi postali: Google API fa un ottimo lavoro di analisi di un indirizzo rappresentato come una stringa.
Tuttavia, ha senso essere rigoroso durante l'analisi di alcuni tipi di campi . Ad esempio, l'utilizzo di un formato rigoroso per una data può essere utile se gestisci più culture: "04/07/2016" indica il 4 luglio 2016 in Francia, ma il 7 aprile 2016 negli Stati Uniti, quindi l'utente può inserire la data in qualsiasi formato e cercando di capire quale sia la data potrebbe portare a risultati indesiderati.
Parlando di spazi ...
Nei campi che sono solo un gruppo di numeri o caratteri, come i numeri di telefono, contano spazi . Prova un piccolo esperimento: trova su Windows qualsiasi disco Windows o Microsoft Office con un numero di serie. Copia questo numero in un editor di testo e rimuovi gli spazi (finirai con 25 caratteri casuali). Prova a copiarlo a mano dallo schermo su un pezzo di carta (senza spostare il cursore sullo schermo). Ora riprova mentre aggiungi spazi o newline ogni quattro caratteri. Quale era più facile?
Sfortunatamente, il valore degli spazi è sottostimato da molti programmatori. Non solo molti campi non accettano spazi (numeri di telefono, numeri di carte di credito), ma molti numeri visualizzati mancano spazi, il che è molto importante quando questi numeri devono essere scritti durante una telefonata o copiati a mano (e se non lo sono, perché visualizzarli del tutto?)
Ad esempio, il mio ultimo ordine da Amazon mostra un numero di spedizione come 6Z00148794199. Ottimo che posso semplicemente copiarlo e incollarlo sul sito web del corriere per il monitoraggio; meno grande è il fatto che quando ho ricevuto la spedizione, l'agente ha dovuto copiare il codice a mano dal mio cellulare sul suo computer per poter accedere alle informazioni. Quanto sarebbe difficile per la società visualizzare il numero come 6Z 001 487 941 99?
Lo stesso ordine è identificato da Amazon come 402-9261109-4961946. Almeno hanno fatto lo sforzo di aggiungere trattini. Sfortunatamente, questi trattini non sono di grande aiuto se qualcuno deve chiamare il supporto di Amazon e scrivere l'ID. Sarebbe così difficile scriverlo come 402 926 110 949 619 46 invece?
Recentemente, ho fatto un viaggio in Scozia usando ScotRail. Ho ordinato i biglietti attraverso il loro sito web e ho ricevuto una e-mail contenente il numero CFJRC9T9 da utilizzare per recuperare i biglietti presso la stazione ferroviaria. Ora, com'è facile digitare otto personaggi privi di significato su una biglietteria self-service, con persone che camminano dappertutto? Non sarebbe molto più semplice se fosse CF JR C9 T9 invece?
Si può essere abbastanza liberali nell'accettare veramente qualcosa di sano. I limiti possono essere puramente tecnici; ad esempio, la lunghezza del campo può essere limitata a 50 caratteri: la probabilità che un valore più lungo sia un numero errato è vicina al 100% (se non esattamente al 100%).