私自身が日々、様々なウェブサイト、あるいはウェブアプリケーションを利用していて、ごく希にではありますが、パスワード入力欄(新規アカウント作成時などの情報登録時が多い傾向)をコピー・アンド・ペースト(いわゆる「コピペ」)禁止にしている状況に遭遇します。
パスワード欄をコピペ禁止(厳密には「ペースト(貼り付け)禁止」ですがここでは「コピペ禁止」として話を進めます)にしている理由は私には理解できませんが、何かしらその行為がセキュリティを高めると思っているなど、実施する側には理由があるのでしょう。
しかし、このような制限は、ユーザビリティ上の問題となるだけでなく、Web Content Accessibility Guidelines (WCAG) 2.2 における「達成基準 3.3.8 アクセシブルな認証(最低限)」、および「達成基準 3.3.9 アクセシブルな認証(高度)」を満たさず、アクセシビリティ上の問題も生じさせるため、今すぐやめるべきです。
ユーザビリティの問題
アクセシビリティの問題に触れる前に、このようなコピペ禁止がユーザビリティに与える影響について考えても、利用者の利便性を大きく低下させていることに気がつくべきです。
例えば現在のウェブサイト利用状況を考えると、主要ブラウザにおいてはパスワードの自動生成機能やその保存機能を備えており、かつそれが(設定に多少の知識は必要なものの)複数の環境をまたがって利用できるようにもなっています。
自覚的か否かに限らず、この機能を利用している方も多いでしょう。
また、ある程度知識のある利用者の場合は、独自にパスワード管理ソフト(パスワードマネージャ)をインストールして使用している方も多く、本来ならば新規アカウント作成時などにパスワードの設定を求められた場合、そのソフトウェアで安全なパスワードを自動生成した上でパスワード入力欄に自動入力(コピペ)したいわけですが、これを制限されると、最悪の場合、長くて複雑なパスワードを手入力しないといけなくなります。
この手間は利用者にとって大きなストレスです。
私、個人的にはパソコンを使用している状況でこのようなパスワード欄に出会った場合は、ブラウザの開発者ツールで(細かい方法は述べませんが)コピペ禁止の制約を排除してパスワード入力欄にデータを挿入するなどしますが、スマートフォンなど、開発者ツールが利用できない、あるいは利用しにくい環境の場合は、そこで操作を中断します。
その後、利用環境を変えてまで再度操作を試みるかは完全に気分次第で、余程そのウェブサイトなりウェブアプリケーションにアカウントを作成して使用したいというモチベーションがない限りは多くの場合、そのまま利用しないという結果になり、これはウェブサイト運営者からすれば機会損失になっていると思われます。
ユーザビリティ面を見るだけでも、パスワード入力欄のコピペ禁止はデメリットのみでメリットは存在しません。このような要件をウェブサイトやウェブアプリケーション構築時に求めるのは避けるべきです。
アクセシビリティの問題
前置きが長くなりましたが本題です。
パスワード入力欄のコピペ禁止は前述の通り利用者に大きな不便を強いるため避けるべきですが、アクセシビリティ上の理由からも明確にこれを避けるべき理由があります。
W3C が勧告しているウェブアクセシビリティのガイドラインとして Web Content Accessibility Guidelines 2.2 (以降「WCAG 2.2」) があります。
WCAG 2.2 では、適合レベル AA に分類される「達成基準 3.3.8 アクセシブルな認証(最低限)」と、適合レベル AAA に分類される「達成基準 3.3.9 アクセシブルな認証(高度)」の2つの達成基準が新たに追加されていますが、これら達成基準は、まさにパスワード入力欄へのコピペ禁止に関連するものです。
まずはこの2つの達成基準について簡単に解説していきましょう。
達成基準 3.3.8 アクセシブルな認証(最低限)
WCAG 2.2 における「達成基準 3.3.8」の原文は下記のようになっています。
Success Criterion 3.3.8 Accessible Authentication (Minimum)
(Level AA)
A cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process unless that step provides at least one of the following:
- Alternative
- Another authentication method that does not rely on a cognitive function test.
- Mechanism
- A mechanism is available to assist the user in completing the cognitive function test.
- Object Recognition
- The cognitive function test is to recognize objects.
- Personal Content
- The cognitive function test is to identify non-text content the user provided to the Web site.
日本語に翻訳すると下記のような内容となります。
認証プロセスのどのステップにおいても、パスワードを覚えることやパズルを解くことなどの認知機能テストを要求されない。ただし、そのステップが以下のいずれかを提供している場合を除く。
- 代替手段
- 認知機能テストに依存しない別の認証方法がある。
- メカニズム
- 利用者が認知機能テストを完了するのを支援するメカニズムが利用可能である。
- オブジェクト認識
- 認知機能テストがオブジェクトを認識するものである。
- 個人コンテンツ
- 認知機能テストが、利用者がウェブサイトに提供した非テキストコンテンツを識別するものである。
また、注釈として下記のような記述もあります。
Note 2
Examples of mechanisms that satisfy this criterion include:
- support for password entry by password managers to reduce memory need, and
- copy and paste to reduce the cognitive burden of re-typing.
この注釈も日本語に翻訳すると下記のような内容となります。
注釈 2
この達成基準を満たすメカニズムの例としては、以下が挙げられる:
- 記憶の必要性を減らすためのパスワードマネージャによるパスワード入力支援
- 再入力の認知的負担を減らすためのコピー・アンド・ペースト
上記を踏まえて、もう少しわかりやすく説明しましょう。
この達成基準の目的は、利用者が既存のアカウントにログインする際に、アクセシブルで使いやすく、かつ安全な認証方法を提供することです。
ウェブサイトにおける認証方法として、ユーザー名とパスワードを使用するのが最も一般的な形式です。しかし、ユーザー名とパスワードを記憶することは、特定の認知障害を持つ、あるいは認知機能が低下した利用者にとって非常に困難、あるいは不可能な負担となる場合があります。
さらに、認証プロセスに追加されることの多い、ワンタイムの認証コードを別の場所から写し取ったり、パズルを解くようなことを求められたりといったステップも利用者の負担を増加させます。
そのため、この達成基準では、認証プロセスにおいて、最低限、利用者がパスワードなどを記憶して入力するような「認知機能テスト」的な作業を強いられないことが求められています。
例えば、下記のような実装が行われていれば、この達成基準を満たしていると考えることができます。
- ウェブコンテンツが適切にマークアップされたユーザー名(あるいはメールアドレス)とパスワード入力欄をログイン認証として使用しており(当該入力欄が「達成基準 1.3.5 入力目的の特定」、および「達成基準 4.1.2 名前(name)・役割(role)・値(value)」を満たしている)、利用者のブラウザやサードパーティのパスワードマネージャ機能が、入力の目的を識別し、ユーザー名とパスワードを自動的に入力することができる。
- ウェブコンテンツがペースト機能を制限しておらず、利用者はサードパーティのパスワードマネージャを使用して認証情報を保存し、それをコピーしてログインフォームに直接ペーストできる。
- ユーザー名やパスワードを入力しなくてもログイン認証できる代替手段が提供されている(例えば生体認証やデバイス認証など)
- 認知機能テストが達成基準の例外で認められているものに該当する
この達成基準(「達成基準 3.3.9」も同様)は、「既存の利用者のログイン認証」に焦点を当てています。
つまり、利用者がログイン認証をする度に、以前に登録した情報を思い出したり、あるいはどこかに書き留めた情報を短期的にでも記憶して書き写したりする必要がないことが求められており、厳密には新規アカウント作成のプロセスなどは対象としていません。
しかし、新規アカウント作成のプロセスなどにおいても、パスワード入力欄などへのコピペ禁止という制約をやめるだけで、多くの場合、利用者に対する負担を低減することが可能となります。
達成基準 3.3.8 と 達成基準 3.3.9 の違い
補足として、適合レベル AA に分類される「達成基準 3.3.8 アクセシブルな認証(最低限)」と、適合レベル AAA に分類される「達成基準 3.3.9 アクセシブルな認証(高度)」の2つの達成基準の違いを簡単に説明しておきましょう。
端的に言うと、この2つの達成基準の違いは、認められる「例外」の差です。
「達成基準 3.3.8 アクセシブルな認証(最低限)」においては、下記の例外が認められていますが、「達成基準 3.3.9 アクセシブルな認証(高度)」においてはこの2つの例外は認められないという点が異なります。
- オブジェクト認識
- 認知機能テストがオブジェクトを認識するものである。
- 個人コンテンツ
- 認知機能テストが、利用者がウェブサイトに提供した非テキストコンテンツを識別するものである。
認知機能テストと考えられる行為の中で、「オブジェクト認識」、例えば「この中から車が写っている写真を選択してください」といった、ある物体を認知してもらうテストや、「個人コンテンツ」、例えばアカウント作成時にあらかじめアップロードしておいた利用者の個人的な写真や画像を、複数の画像の中から選択してもらうといったテスト(なお、「秘密の質問」など、テキストベースの個人コンテンツは、「テキスト入力」という記憶や転写に依存した方法となるため例外とは認められません)は、「達成基準 3.3.8」においては例外として認められます。
一方で、「達成基準 3.3.9」においては、これら「オブジェクト認識」や「個人コンテンツ」を求める認証プロセスは例外として認められません。言い換えれば、「利用者が認知機能テストを完了するのを支援するメカニズムが利用可能である」場合を除き、認証プロセスの中で「認知機能テスト」を求めてはいけないということになります。
まとめ
コピペ禁止という制限が行われがちな入力フォームとしては、パスワード入力欄に加え、メールアドレスの再入力欄なども代表的なものでしょう。しかし、コピペを禁止することで利用者の入力間違いが減るわけではなく、むしろ手入力によってミスの可能性を増やすといったデメリットしかありません。
当然ながら、パスワード入力欄をコピペ禁止にしたところで、セキュリティが向上するといったメリットなどもなく、ユーザビリティ、アクセシビリティの両面からデメリットしかないことを理解すべきです。
間違ってもこのような要件をウェブサイトに加えないようにしましょう。