risposta-alla-domanda-sullo-sviluppo-web-bd.com

C'è un problema nel nascondere "password dimenticata" fino a quando non è necessaria?

Ad essere sincero, non vedo davvero alcun uso per il pulsante/collegamento "password dimenticata" a meno che l'utente non abbia inserito una password errata prima. Nel mio progetto attuale, abbiamo bisogno di più spazio possibile e stavo pensando di mostrarlo solo quando necessario. Il mio collega ha parlato di "Accessibilità", perché non è possibile, ma non potrebbe darmi un vero argomento.

Cosa ne pensi?

48
hans wrust

Tbh non vedo davvero alcun uso per il pulsante/collegamento "password dimenticata", a meno che l'utente non abbia inserito una password errata prima.

Vorrei provare a dipingere un'immagine per spiegare perché il commento sopra è una grande svista.

Immagina uno scenario in cui gli utenti arrivano alla tua applicazione dopo un po 'e non ricordano la password. Significa che sanno già che esiste un account ma non lo usano da molto tempo, quindi hanno sicuramente dimenticato la password.

In questo scenario, la prima cosa che farebbero è ...?

Sarebbero alla ricerca di un'opzione di recupero della password che è qualcosa sulla linea di un'opzione "Password dimenticata".

In tale condizione, l'utente non ha ancora inserito una password sbagliata, ma ha bisogno di quell'opzione

Il tuo collega ha assolutamente ragione sull'accessibilità. Nascondere azioni e informazioni critiche in modo selettivo è una pessima pratica.

286
Shreyas Tripathy

È una pessima idea non mostrare il link. Dovresti sempre dare all'utente l'opzione, anche se è probabile che provino prima alcune password.

Che ne dite di un esempio: cosa succede se si dispone di un gestore di password e le credenziali per questo sito vengono in qualche modo perse/mancanti dal gestore di password?

Non hai idea di quale sia la password, poiché probabilmente sarà una combinazione casuale di lettere, numeri, caratteri, ecc., E quindi vorrai reimpostarla immediatamente.

46
user2397282

Convenzione globalmente coerente contro il design "vuole"

Esiste sempre un peso nei confronti della convenzione nella progettazione dell'esperienza utente/dell'interfaccia per numerosi motivi, ma i sistemi cruciali in cui è presente un elemento di sicurezza/protezione sono quelli in cui dovrebbe essere data una priorità persino superiore alla normale.

Nel mio progetto attuale abbiamo bisogno di più spazio possibile

Il motivo per cui vuoi provare a rompere con un modello coerente a livello globale (esternamente) è essenzialmente "ci manca lo spazio".

Altri hanno spiegato alcuni aspetti del perché questo è uno schema da cui non dovresti rompere specificamente in relazione all'elemento di cui stai chiedendo. Quelle sono grandi risposte e questo è semplicemente pensato per essere un pezzo supplementare in aggiunta a loro. Voglio affrontare il motivo per cui senti la necessità di uscire dalla convenzione in primo luogo e consigliarti di tornare indietro a questo comprensivo problema di design come la vera ragione per cui hai provato a trovare qualcosa da tagliare e ciò che invece deve essere affrontato.

Bisogni vs desideri

Il mio consiglio più semplice sarebbe questo: quando si tratta di qualcosa relativo alla sicurezza, ti consiglio di considerare i "componenti" e i layout di progettazione come "bisogni" e i tuoi problemi di livello progettuale semplicemente "desideri": se riesci a trovare un'esigenza grave correlata allo scopo principale dell'interfaccia (ad esempio: le persone eseguono in modo errato un elemento dell'interfaccia utente e stanno causando problemi di autenticazione), quindi possono essere adeguatamente valutati rispetto ai vari motivi già alla base delle esigenze di progettazione convenzionali (come, se spostiamo questi elementi per evitare errori, fa emergere un problema peggiore che era già previsto nel progetto attuale, rendendolo un male necessario), ma fino a quando non arriva a quel punto è solo un bisogno e può essere generalmente considerato precedenza inferiore.

In generale, una pagina di accesso/schermo/modale dovrebbe avere il minor numero possibile di informazioni estranee in corso, sia per motivi di usabilità ma anche potenzialmente per motivi di sicurezza (ad esempio, evitare di caricare risorse esterne ove possibile qui). Se hai un problema di spazio sulla tua interfaccia di accesso, qualcosa è quasi sicuramente "sbagliato" nel design globale (anche se si tratta di un'interfaccia integrata di qualche tipo). È impossibile speculare su quale sia il problema di per sé senza alcuna informazione correlata, ma ti esorto caldamente a smettere di provare a cercare modi per rompere le convenzioni qui e guardare invece come puoi riformattare meglio il design di questa interfaccia si adatta ai paradigmi convenzionali dell'interfaccia di accesso, anche se ciò significa che questa schermata non corrisponde perfettamente al modello di progettazione di altre schermate (consiglierei assolutamente di mantenere almeno correlati elementi coerenti: logo del marchio , colori, ecc., ma trova semplicemente i modi per eliminare gli elementi e/o ridurre le aree degli spazi bianchi/ecc. che non sono necessari per una schermata di accesso).

Le interfacce di accesso, in particolare, presentano numerosi problemi di usabilità che si sovrappongono a problemi di sicurezza e la rottura con il design convenzionale - al di là dei motivi di usabilità generalizzati per cercare di attenersi a convenzioni comuni a causa delle conoscenze/aspettative degli utenti correlati - può avere gravi implicazioni di sicurezza non sempre immediatamente prevedibile: non rompere le convenzioni semplicemente per accontentarti di aver apparentemente appoggiato te stesso in un angolo del design in cui qualcosa "non sembra bello" o "non si adatta": riesamina il progetto circostante stesso in modo che possa comprende il layout dell'interfaccia/componente convenzionale. Se hai un bisogno specifico o un motivo per cambiare il design relativo a un cambiamento di funzionalità, varrebbe la pena esplorare (ma molto probabilmente si tradurrà nello stesso risultato, per le altre risposte).

Più semplicemente:

Se "chiunque" può adattare una finestra di dialogo di accesso con un collegamento per reimpostare la password nella schermata di accesso, cosa hai fatto che ti rende così difficile? Cerca prima qualcosa che cambi.

"Se non è rotto, non aggiustarlo" semplicemente perché in esso c'è qualcos'altro. Riallinea il tuo pensiero su quale sia il problema.

Convenzione a tutti i costi?

Quasi. Non sto sostenendo che la convenzione non possa essere sbagliata. Sto invece dicendo che una semplice analisi del primo passo è quella di ponderare la convenzione in una misura in cui non è semplicemente messa in discussione in ogni angolo, a meno di scoprire un problema in realtà direttamente correlato alle scelte convenzionali e al design stessi.

Spero che la sfumatura qui non sia persa.

È del tutto possibile decomprimere completamente il motivo di ciò, ma trovo che sia una regola di base generalmente ragionevole che consente di risparmiare molto tempo che quasi sempre risulta essere stato inutilmente sprecato o nella migliore delle ipotesi scarsamente speso: non correre per fare cambia in qualcosa che si adatta alla convenzione semplicemente perché qualche altra scelta è in conflitto, invece rivisitare il conflitto assumendo che la convenzione abbia semplicemente più peso di default di qualunque cosa si trovi dall'altra parte del problema in conflitto.

Spesso qualsiasi cosa sia entrata in conflitto con una convenzione si rivelerà anche avere altre carenze che semplicemente non erano ancora state esposte: il fatto che accogliere una convenzione molto standard sia problematico in un determinato progetto o in combinazione con altri elementi del design è spesso un segnale di avvertimento per quanto riguarda quel disegno contrastante.

D'altra parte, di fronte a una convenzione che sta causando problemi diretti (ad esempio, nell'istruzione superiore, è comune presentare un "mega menu" nonostante una completa mancanza di prove che ciò aiuti effettivamente i potenziali studenti navigare nei siti Web dell'Università e uno dei reclami più comuni è spesso difficoltà a navigare nel sito Web e scoprire contenuti appropriati in modo significativo), quindi vale la pena spendere il è tempo di fare una corretta analisi di quali siano i benefici (e i costi) per cambiarlo, anche se alla fine la risposta è ancora "no".

La chiave però è che il design convenzionale generalmente scompone non solo le conoscenze chiave pre-condivise e le aspettative degli utenti a causa della coerenza globale, ma spesso spesso rappresenta le lezioni apprese il corso di più entità e spesso anni di esposizione, alcuni dei quali possono essere meno immediatamente evidenti e possono andare più in profondità di scelte relativamente superficiali apparentemente semplici. Non sempre. Ma spesso.

È possibile inseguire ognuna di queste ragioni? Certamente . Ma la mia domanda è se vale davvero la pena, specialmente se farlo si trasforma in una pratica a cui ti rivolgi comunemente per risolvere altri problemi. Personalmente, la lezione che ho appreso in anni di sviluppo e progettazione è che è generalmente una perdita di tempo e, in definitiva, altamente improduttiva e più costosa di un'analisi superficiale (potenzialmente anche in modi devastanti quando le conseguenze possono andare oltre gli aspetti di soddisfazione più semplici o azioni dell'utente reversibili), per aprire le cose a cambiamenti di scelte/elementi/layout convenzionali semplicemente a causa di come si adatta a qualche altra scelta fatta, qualche altro elemento di design, ecc.

Considera una porta Push-pull (l'esempio classico, appoggiarsi a Norman). Che cosa succede se si desidera progettare diversamente la distanza di apertura circostante e l'area del fermaporta, in modo da modificare il design della maniglia per consentire alla porta di aprirsi di un pollice ulteriormente dato un elemento di design nell'area del fermaporta che colpirebbe la maniglia di trazione standard in un orientamento verticale standard , solo ora sembra una maniglia Push orizzontale anziché una pull? Trascorrere del tempo considerando che ne è valsa davvero la pena, invece di dire semplicemente che il nuovo design creativo dell'area del fermaporta era necessario per accogliere il design convenzionale dell'interfaccia della porta? Qualunque sia stata la nuova creatività nell'area della porta sia così importante o così totalmente limitata a un livello così alto da valere davvero la pena anche esplorarlo, rispetto al semplice esplorare una sistemazione adeguata nel nuovo design e accettare un certo grado di compromesso correlato forse in quel nuovo design?


Come un rapido esempio del perché è una buona idea attenersi alle convenzioni, in particolare in circostanze in cui gli errori possono comportare implicazioni peggiori rispetto al semplice fatto che qualcuno non sia soddisfatto del flusso o dell'estetica (a meno di una ragione funzionale diretta per cambiare da esso, con attenta esplorazione delle conseguenze correlate): cosa succede se si inverte l'ordine dei campi nome utente e password? Diciamo che è per una pagina web: idealmente tutto è codificato correttamente, quindi ogni aspetto di questo attraversa HTTPS come POST. E se, nel tentativo di diventare intelligente, qualcuno caricasse una "reset password" collegamento con il nome utente come parametro get (querystring)? Quindi cosa succede quando qualcuno prova ad accedere, inserisce le proprie credenziali al contrario dei campi di input e, senza prestare sufficiente attenzione, fa clic sul link "reimposta password" ... e che capita di essere una pagina/endpoint non https?

Anche se è https, l'URL con querystring è ora nei log del server molto probabilmente. Che idealmente sono sicuri. E idealmente non c'è alcuna associazione ora con un account specifico. Ma è un altro posto potenziale in cui perderlo.

Cosa succede se qualcuno prova a inserire i propri parametri al contrario durante una presentazione? Ciò accade anche con configurazioni standard per semplice errore dell'utente (scheda accidentale/ecc.), Ma quanto spesso accadrebbe se i campi fossero invertiti? Se c'è un attore dannoso tra il pubblico, vengono espulsi se riescono ad accedere durante il periodo tra la rivelazione accidentale della password e l'utente che reimposta la password o possono continuare a navigare all'interno dell'applicazione? eccetera.


A parte: sull'accessibilità

(Sto scrivendo questo in relazione al presupposto che questo sia in una pagina Web, ma concetti/costrutti di accessibilità simili esistono in altre interfacce)

Cordiali saluti, questo potrebbe non essere un problema di accessibilità se si tratta di una pagina Web che si invia con l'azione di invio in quanto carica di nuovo la stessa pagina dal server con il relativo markup di un tentativo di accesso che non è stato autenticato insieme a un collegamento alla password Ripristina.

Laddove questo diventi un possibile problema di accessibilità è che se questo è dinamicamente AJAXed (applicazione a pagina singola/ecc.), In modo tale da inviare i risultati al server tramite scripting lato client e quindi aggiornare la pagina senza ricaricarla, potrebbe essere necessario il tag ARIA ( molto probabilmente come regioni live , e dovrai considerare attentamente quanto/cosa contrassegni come regioni live rispetto a non) per consentire agli screen reader di aggiornarsi correttamente per quanto riguarda l'errore di invio e la disponibilità del link .

In particolare con gli screen reader, è importante tenere presente che gli aggiornamenti a parti della pagina con cui non si interagisce possono essere molto ovvi, soprattutto se la persona che accede alla pagina ha già esplorato quelle aree e formato un modello mentale in relazione a loro dove non prevedono più la presenza di informazioni correlate lì. A sua volta, richiede un'attenta considerazione (e test effettivi !) Per non creare una circostanza in cui gli aggiornamenti dinamici creano un livello schiacciante di feedback immediato tramite l'aria aggiunta- decorazione dal vivo (pur mantenendo un flusso che consente alle persone di raggiungere in modo intuitivo le informazioni aggiornate correlate) e inoltre è necessario prestare attenzione a ciò che fanno gli aggiornamenti dinamici in vari screen reader in termini di eventuali modifiche alla posizione del cursore.

12
taswyn

Se qualcuno dimentica la propria password, cercherà prima una password dimenticata, in modo da perdere tempo, infastidendoli e costringerli a lasciarli. Inoltre alcune persone useranno la password di modifica per scoprire un nome utente che hanno dimenticato e questo costringerebbe quindi a provare a ricordarlo, infastidendoli. Infine, alcuni utenti useranno la reimpostazione della password per modificare la password, questo li infastidirà poiché la maggior parte degli altri siti lo farà.

Quando si progetta un'applicazione/sito Web, si tratta di rendere qualsiasi azione facile e veloce. Nascondere il pulsante della password dimenticata rende più difficile e più lento. Questo non dovrebbe mai essere fatto.

3
Harry S

Come utente, sarei un po 'arrabbiato con la tua proposta. Ci sono alcuni siti in cui non mi preoccupo di ricordare la password e di utilizzare la funzione "password dimenticata" come sistema di password monouso.

Se hai davvero bisogno di risparmiare spazio, potresti inizio con una "Password dimenticata?" fino a quando non viene inserito qualcosa nel campo della password.

Se stai ancora cercando soluzioni, come va.

Come minimo, come fa Google, hai bisogno di una casella di input per il nome utente e di un pulsante "Avanti".
In questo caso, puoi far leggere il pulsante "Hai dimenticato la password?" all'inizio, purché l'utente non abbia compilato nulla nella casella. Quindi non appena hanno inserito qualcosa, cambia il pulsante in "Avanti" per passare alla schermata di inserimento della password.

2
Mr Lister

Come altri membri hanno sottolineato, questa è principalmente una cattiva idea perché si presume che l'utente abbia già in mente una password da provare.

Se visito un sito Web che non visito da molto tempo e la password non è presente nel mio gestore delle password, spesso reimposterò semplicemente la password anziché tentare di indovinare quale potrebbe essere. In tal caso, non avrei in mente una password da utilizzare prima per un accesso non riuscito.

In secondo luogo, a volte gli utenti vorranno reimpostare la propria password senza accedere; ad esempio, in caso di violazione del sito Web. Se il collegamento è nascosto, è probabile che ciò frustri gli utenti e potrebbe non essere immediatamente ovvio come ottenere il collegamento.

2
Alexandra

È necessario rispondere a questa domanda insieme al contesto della domanda:

abbiamo bisogno di più spazio possibile

Non so come sia la tua pagina di accesso o perché hai così disperatamente bisogno di spazio, ma supponendo che lo faccia, quindi sì, una cosa facile da tagliare è un Password dimenticata collegamento nella prima pagina di accesso. Non è l'ideale e probabilmente perderai gli utenti che tornano dopo un po 'e non vogliono indovinare una password. Devi bilanciare quella e altre opzioni di UX con le tue necessità immobiliari.

Un approccio più olistico al problema è la condivisione della schermata di accesso corrente e dei suoi requisiti di spazio dettagliati. Esistono modi per indicare le azioni agli utenti senza un intervallo di testo gigante e allo stesso modo esiste probabilmente un modo migliore per risolvere il problema senza nascondere la funzionalità.

0
user1717828