web-dev-qa-db-ja.com

必要になるまで「パスワードを忘れた」の非表示に問題はありますか?

正直なところ、ユーザーが以前に間違ったパスワードを入力しない限り、「パスワードを忘れた」ボタン/リンクの使用法は実際にはわかりません。私の現在のプロジェクトでは、できるだけ多くのスペースが必要であり、必要なときにだけ表示することを考えていました。同僚が「アクセシビリティ」について話しました。なぜそれが不可能なのかという理由だけでなく、本当の議論をすることもできませんでした。

あなたはそれをどう思いますか?

48
hans wrust

Tbhユーザーが以前に間違ったパスワードを入力しない限り、「パスワードを忘れた」ボタン/リンクの使用法は実際にはわかりません。

上記のコメントが大きな見落としである理由を説明するために、絵を描いてみましょう。

ユーザーがしばらくしてアプリケーションにアクセスし、パスワードを覚えていないシナリオを想像してみてください。つまり、彼らはすでにアカウントが存在することを知っていますが、長期間使用していないため、パスワードを忘れてしまいました。

このシナリオでは、最初に行うのは...?

彼らは、「パスワードを忘れた」オプションの行にあるパスワード回復オプションを探します。

そのような状況では、ユーザーはまだ間違ったパスワードを入力していませんが、そのオプションが必要です

あなたの同僚はアクセシビリティについて絶対的に正しいです。重要なアクションと情報を選択的に隠すことは非常に悪い習慣です。

286

リンクを表示しないことは非常に悪い考えです。最初にいくつかのパスワードを試す可能性がある場合でも、常にユーザーにオプションを提供する必要があります。

例はどうですか?パスワードマネージャーがあり、このサイトの資格情報がパスワードマネージャーから失われたり失われたりした場合はどうなりますか?

パスワードは文字、数字、文字などのランダムな組み合わせである可能性が高いため、すぐにリセットする必要があるため、パスワードが何であるかがわかりません。

46
user2397282

グローバルに一貫性のあるコンベンションとデザインの「ウォント」

さまざまな理由により、ユーザーエクスペリエンス/インターフェイスの設計では常に慣例に重点が置かれていますが、安全性/セキュリティ要素がある重要なシステムは、通常の優先順位よりもさらに高い優先順位が与えられるべきものです。

私の現在のプロジェクトでは、できるだけ多くのスペースが必要です

グローバルに(外部で)一貫したパターンでブレークを試みたい理由は、基本的に「スペースが不足している」ためです。

他の人は、これがなぜあなたが求めている要素に関連して、あなたが特に破るべきではないパターンであるかの特定の側面を説明しました。それらは素晴らしい答えであり、これはそれらに加えて補足的な部分であることを単に意味します。そもそもなぜ慣習から脱却する必要があると感じているのか、また、何を切り取ろうとする真の理由としてこの包括的な設計の問題に戻り、その代わりに何を対処する必要があるのか​​を説明したいと思います。

ニーズとウォンツ

私の最も簡単なアドバイスは次のとおりです。セキュリティまたは安全に関連するものを扱う場合、従来の設計コンポーネントとレイアウトは「必要」であり、反対する設計レベルの問題は単に「欲しい」と考えることをお勧めします。インターフェースの主要な目的に関連するハードニーズ(たとえば、UI要素を誤ってクリックし、それが認証の問題を引き起こしている)の場合、従来の設計ニーズの背後にあるさまざまな理由(たとえば、ミスクリックを回避するためにこれらの要素を移動すると、現在の設計ですでに予見されていたより悪い問題が発生し、これが必要な悪になります)が、その時点に到達するまでは、単なる欲求であり、一般的に考えることができます優先順位が低い。

一般的に言えば、ログインページ/画面/モーダルには、使いやすさのためだけでなく、セキュリティのために(たとえば、ここで可能な限り外部リソースのロードを避けるなど)、両方に無関係な情報をできるだけ含めないでください。ログインインターフェースにスペースの問題がある場合、(これがなんらかの組み込みインターフェースであるとしても)何かが包含的な設計でほぼ間違いなく「間違っています」。関連する情報なしに問題自体を推測することは不可能ですが、ここで慣習を破る方法を探すのをやめ、代わりにこのインターフェイスの設計をよりよくリファクタリングする方法を検討することを強くお勧めしますこの画面が他の画面のデザインテンプレートと完全に一致していない場合でも、従来のログインインターフェイスパラダイムに適合します(少なくとも関連する要素を一貫させることをお勧めします) :ブランドロゴ、色など。ただし、要素を間引く方法や、ログイン画面に必要のない空白領域などを減らす方法を単に見つける)。

特にログインインターフェースには、セキュリティの問題と重複する多数のユーザビリティの問題があり、従来の設計では、関連するユーザーの知識/期待に基づいて一般的な慣習に固執しようとする一般的なユーザビリティの理由を超えて、ここに重大なセキュリティ上の影響がある可能性があります。常にすぐに予測できるわけではありません。「見栄えがよくない」または「合わない」デザインコーナーに自分を取り込んでいるように見えるだけで満足するために、慣習から逸脱しないでください。周囲のデザイン自体を再検討して、従来のインターフェース/コンポーネントのレイアウトを含みます。機能の変更に関連して設計を変更する特定の必要性または理由がある場合は、調査する価値があります(ただし、他の回答に従って、同じ結果になる可能性が最も高くなります)。

より簡単に言えば:

他の「全員」がログインダイアログにパスワードリセットリンクのあるログインダイアログを表示できる場合、どのようにしてそれを困難にしていますか?最初に何かを変更するためにそれを見てください。

「壊れていない場合は修正しないでください」とは、他の何かが壊れているためです。問題が何であるかについてあなたの考えを再調整します。

すべての費用で条約?

ほとんどありません。私は慣習が間違っていることはあり得ないと主張していません。代わりに、簡単な最初のステップの分析は、従来の選択と設計に直接関連する問題を発見するのではなく、各コーナーで単純に質問されない程度に慣習に重みを付けることです自分自身

うまくいけば、ここのニュアンスは失われません。

この理由を完全に解明することは完全に可能ですが、私はそれが時間を大幅に節約する一般的に合理的な基本ルールであり、ほとんどの場合不必要に浪費されたか、せいぜい無駄に費やされただけであることがわかります。他の選択が競合しているため、規約に適合するものに変更します単純に代わりに、デフォルトでは、他の選択肢よりも規約の重みが大きいという仮定で競合を再検討します。矛盾する問題の側面。

多くの場合、コンベンションと衝突したものは、まだ明らかにされていない他の不足が判明することもあります。非常に標準的なコンベンションに対応することは、特定のデザインまたは他のデザイン要素と組み合わせて問題になることがよくあります。その相反するデザインに関して。

一方、直接的な問題を引き起こしている慣習に直面している場合(たとえば、高等教育では、これが実際に将来の学生またはすべての学生を助けるという証拠がまったくないにもかかわらず、「メガメニュー」を提示することは一般的です大学のウェブサイトをナビゲートし、最も一般的な不満の1つisは、多くの場合、ウェブサイトをナビゲートし、適切なコンテンツを有意義な方法で発見することが困難です)、それを費やす価値があります最終的に到達した答えがまだ「いいえ」であっても、それを変更することの利点(およびコスト)が何であるかを適切に分析する時間。

ただし、重要な点は、従来の設計では一般に、グローバルな整合性により事前共有された主要な知識とユーザーの期待だけでなく、しばしばが学習した教訓を表すことです複数のエンティティの経過と多くの場合何年にもわたる露出。これらの一部はすぐには明白ではなく、単純に見える表面的な選択よりも深くなる場合があります。常にではない。しかし、しばしば。

これらの理由のそれぞれを追跡することは可能ですか? 確かに。しかし、私の質問は、それが実際に時間の価値があるかどうか、特にそうすることが他の問題を解決するためにあなたが一般的に頼る実践に変わる場合はです。個人的に、私が長年の開発と設計で学んだ教訓は、それは一般に時間の浪費であり、最終的に非常に非生産的であり、表面的な分析が想定するよりもコストがかかるということです(結果が単純な満足度の側面を超える可能性がある場合、壊滅的な方法でさえも)。またはリバーシブルなユーザーアクション)、従来の選択/要素/レイアウトの変更まで、それが単に他の選択や他の設計要素などとどのように適合するかによるものまで開きます。

プッシュプルドアを考えてみましょう(典型的な例、ノーマンに寄りかかる)。周囲の開口部クリアランスとドアストップ領域を別々に設計したい場合は、ハンドルのデザインを変更して、ドアがドアストッパー領域にあり、標準の垂直ハンドルで標準のプルハンドルにぶつかる設計要素をさらに1インチ開けるようにします。 、今ではプルの代わりに水平プッシュハンドルのように見えますか?ドアインターフェースの従来のデザインに対応するためにドアストップエリアの創造的な新しいデザインが必要だと単に言うのではなく、それを検討することに時間を費やすことは本当に価値があるでしょうか?新しいデザインの適切な宿泊施設を単に調査し、それに関連するある程度の妥協を受け入れるだけでなく、それを調査するだけの価値があるほど重要な、または完全に高いレベルに制限された、新しい創造性はどれもドアストップ領域に入りましたか?新しいデザイン?


特に間違いがフローに満足していないだけの場合よりも悪い結果につながる可能性がある場合や、美的要素(フローから変更する直接の機能的理由がない場合)よりも、慣例に固執することが良い理由の簡単な例として、関連する結果の注意深い調査):ユーザー名とパスワードのフィールドの順序を逆にするとどうなりますか? Webページ用だとしましょう。理想的にはすべてが正しくコード化されているので、これのすべての側面がHTTPSを介してPOSTフィールドとして渡されます。巧妙な方法で誰かが「リセットパスワード」をロードした場合はどうなるでしょうか。 getパラメータ(クエリ文字列)としてユーザー名とリンクしますか?誰かがログインしようとすると、入力フィールドの逆に資格情報が入力され、十分な注意を払わずに「パスワードのリセット」リンクをクリックするとどうなりますか...たまたまhttps以外のページ/エンドポイントですか?

Httpsであっても、クエリ文字列を含むURLがサーバーログに含まれている可能性が高くなります。理想的には安全です。そして理想的には、現在、特定のアカウントとの関連付けはありません。しかし、それがリークする可能性のあるもう1つの場所です。

プレゼンテーション中に誰かがパラメータを逆に入力しようとするとどうなりますか?これは、単純なユーザーエラー(偶発的なタブなど)による標準構成でも発生しますが、フィールドが逆になっている場合、どのくらいの頻度で発生しますか?オーディエンスに悪意のある俳優がいる場合、偶発的なパスワードの漏えいからユーザーがパスワードをリセットするまでの間にログインできた場合、彼らは追い出されますか、それともアプリケーション内を移動し続けることができますか?等.


余談:アクセシビリティについて

(私はこれをウェブページにあるという仮定に関連して書いていますが、同様のアクセシビリティの概念/構成が他のインターフェースに存在します)

参考までに、これが送信アクションで送信したWebページであり、パスワードへのリンクと一緒に認証されなかったログイン試行の関連マークアップとともにサーバーから同じページを再度ロードするという送信ページである場合、これはアクセシビリティの問題ではない可能性があります。リセット。

これが可能性のあるアクセシビリティの問題になるのは、これが動的にAJAX処理されている場合(単一ページアプリケーションなど)、クライアント側のスクリプトを介してサーバーに結果を送信し、リロードせずにページを更新する場合、ARIAタグ付け(最も可能性が高いのは ライブ領域 であり、スクリーンリーダーが送信エラーとリンクの可用性について適切に更新できるようにするには、ライブ領域としてマークする量とマークする量を慎重に検討する必要があります) 。

特にスクリーンリーダーの場合、特に、ページにアクセスしている人が既にそれらの領域を探索し、関連してメンタルモデルを形成している場合、操作されていないページの部分への更新は非常に明白ではない可能性があることに留意することが重要ですそれらがそこに存在する関連情報をもはや予期しない場所に。次に、動的な更新によって追加されたaria-を介して圧倒的なレベルの即時フィードバックが作成される状況を作成しないようにするには、慎重な検討(および実際のtesting!)が必要です。ライブデコレーション(人々が直感的に関連する更新された情報に到達できるフローを維持しながら)。また、カーソル位置の変更(ある場合)に関して、さまざまなスクリーンリーダーで動的更新が行うことに注意する必要もあります。

12
taswyn

誰かが自分のパスワードを忘れた場合、彼らは最初に忘れたパスワードを探すので、これはユーザーの時間を浪費するだけであり、ユーザーを退去させて迷惑をかけるだけです。また、一部の人々は、パスワードの変更を使用して、忘れたユーザー名を見つけるため、強制的にそれを試して覚えてしまい、迷惑になります。最後に、一部のユーザーはパスワードのリセットを使用してパスワードを変更しますが、他のほとんどのサイトではこれを行うため、ユーザーを困らせます。

アプリケーション/ウェブサイトを設計するときは、すべてのアクションを簡単かつ高速にすることがすべてです。忘れたパスワードボタンを非表示にすると、操作が難しくなったり遅くなったりします。これは決して行われるべきではありません。

3
Harry S

ユーザーとして、私はあなたの提案に少し動揺します。いくつかのサイトでは、パスワードを覚えるのに迷惑をかけず、「パスワードを忘れた」機能をワンタイムパスワードシステムとして使用しています。

本当にスペースを節約する必要がある場合は、「パスワードをお忘れですか?」を使用してstartを実行できます。パスワードフィールドに何かが入力されるまでボタンをクリックします。

あなたがまだsolutionsを探している場合、これはどうですか?.

最低でも-Googleのやり方-ユーザー名の入力ボックスと「次へ」ボタンが必要です。
この場合、ボタンに「パスワードをお忘れですか?」と表示させることができます。最初は、ユーザーがボックスに何も入力していない限り。その後、何か入力したらすぐにボタンを「次へ」に変更して、パスワード入力画面に移動します。

2
Mr Lister

他のメンバーが指摘したように、これは、ユーザーがすでに試行するパスワードを想定していることを前提としているため、主に悪い考えです。

長期間アクセスしていないWebサイトにアクセスし、パスワードマネージャーにパスワードがない場合、パスワードを推測するのではなく、単にパスワードをリセットするだけです。このような場合、ログインに失敗したときに最初に使用するパスワードは考えていません。

次に、ユーザーはサインインせずにパスワードをリセットしたい場合があります。たとえば、ウェブサイトが侵害された場合などです。リンクが非表示になっていると、ユーザーが不満を感じる可能性が高く、リンクを表示する方法がすぐにわからない場合があります。

2
Alexandra

これは、質問のコンテキストと一緒に回答する必要があります。

できるだけ多くのスペースが必要です

ログインページがどのように表示されているのか、どうして必要なスペースが必要なのかはわかりませんが、必要な場合ははい、簡単にカットできますパスワードを忘れた場合最初のログインページのリンク。これは理想的ではなく、しばらくしてから戻ってきてパスワードを推測したくないユーザーを失う可能性があります。それと他のUXオプションのバランスを、不動産の必要性と合わせる必要があります。

この問題に対するより包括的なアプローチは、現在のログイン画面とその詳細なスペース要件を共有することです。巨大なテキストスパンなしでユーザーにアクションを示す方法はいくつかあります。同様に、機能を隠さずに問題を解決するためのより良い方法がおそらくあります。

0
user1717828