サイトアイコン IT & ライフハックブログ|学びと実践のためのアイデア集

WCAG 2.2「2.2.5 再認証」Level AAAの要件、実装、テスト方法

close up shot of keyboard buttons

Photo by Miguel Á. Padriñán on Pexels.com

WCAG 2.2の達成基準「2.2.5 再認証」は、認証セッションが期限切れになっても、利用者が再認証した後にデータを失わず作業を続けられることを求めるLevel AAAの基準です。
達成の中心は、ログイン画面を表示することではなく、再認証の前後で利用者の入力と作業の流れをつなぐことにあります。

「再認証」が求める状態

認証セッションとは、サービスがログイン済みの利用者を一定の期間識別するための状態です。
再認証とは、その状態が期限切れになった後、利用者が改めて本人確認を行うことです。

例えば、利用者が複数ページにわたる申込フォームへ入力している途中でセッションが切れたとします。
再認証後に同じ入力値と同じ手順へ戻り、続きから操作できれば、この基準が求める状態に沿っています。
同じフォームへ戻っても入力値が空になっていれば、作業を継続できる状態とはいえません。

この基準は、時間制限を設けること自体を一律に禁じるものではありません。
時間制限の通知、延長、解除については、関連するWCAG 2.2「2.2.1 時間制限の調整」の解説も併せて確認すると、設計上の役割を分けやすくなります。

保持する対象を先に決める

保存対象を「フォームの文字列」だけに限定すると、再認証後に作業を再開できない場合があります。
入力値に加えて、利用者がどの段階にいたか、何を選択していたか、どこへ戻るべきかを整理します。

確認対象 保持する内容の例 再認証後の確認
入力データ テキスト、選択肢、チェック状態 入力済みの値が欠けずに戻る
作業の段階 複数画面の現在位置、入力途中の項目 最初からではなく続きから再開できる
戻り先 再認証を求められた画面や処理 無関係なトップページへ移動しない
案内 セッション切れと再開方法を示すメッセージ 何が起きたか、次に何をするかが分かる

フォーム全体の入力支援とエラー表示を見直す場合は、WCAG 2.2に基づくフォームの入力支援とエラー設計も参考になります。

実装方式の選び方

WCAG 2.2は、データの保存場所やプログラミング言語を指定していません。
入力内容の性質、システム構成、セキュリティとプライバシーの要件に合わせて、再認証の前後で状態を受け渡せる方式を選びます。

W3Cが示す実装例には、再認証中だけデータを一時保存して復元するG105と、再認証ページへデータを隠し情報または暗号化した情報として渡すG181があります。
これらは達成方法の例であり、どちらか一つをそのまま採用することが要件ではありません。

再開までの流れ

  1. 入力中のデータと作業状態を、期限切れが起きても復元できる形で一時的に保持します。
  2. セッション切れを検出したら、入力内容を消去せず再認証へ案内します。
  3. 再認証に成功した利用者を、処理を中断した画面または手順へ戻します。
  4. 保存した入力値と作業状態を復元し、続きから操作できることを伝えます。
  5. 処理の完了後や保存期限の終了後は、設計したライフサイクルに従って一時データを扱います。

保存方式を目的と取り違えない

ブラウザーのストレージ、隠しフィールド、サーバー側の一時保存は、それぞれデータを保持する手段です。
いずれかを使っただけで、再認証後の復元と作業再開まで自動的に満たせるわけではありません。

特に、入力値を隠しフィールドへ入れるだけの例や、ブラウザー側のsessionStorageをサーバー側の保存と呼ぶ説明は、実装の責任範囲を誤解させます。
保存、再認証、復元、戻り先の制御を一つの流れとして設計し、扱うデータに適した保護方法を別途確認します。

よくある失敗と修正方針

失敗 利用者に起きること 修正方針
ログイン画面へ移動する前に入力を破棄する 再認証しても空のフォームへ戻る 認証状態にかかわらず復元できる一時保存の流れを用意する
入力値だけを戻す 複数画面の最初へ戻され、作業位置が分からない 入力値と作業の段階を対応付けて復元する
再認証後の戻り先を固定する トップページなど、作業と無関係な画面へ移動する 中断した処理へ安全に戻せる情報を保持する
保存手段だけを実装して復元を試験しない 一部の項目や選択状態だけが欠ける 実際の期限切れから再開までを通して検証する

テスト手順

静的なHTMLの確認だけでは、セッション切れをまたぐ動作は検証できません。
テスト環境で認証期限を再現し、入力開始から再認証後の再開までを一続きの操作として確認します。

手動テスト

  1. 対象のフォームへ複数種類の値を入力し、複数画面の場合は途中の段階まで進みます。
  2. 送信前または処理の途中で、認証セッションの期限切れを発生させます。
  3. 表示された案内から再認証を完了します。
  4. 中断した画面へ戻り、入力値、選択状態、作業の段階が保たれているか確認します。
  5. 再認証に一度失敗した場合や途中で取り消した場合も、再試行後にデータを復元できるか確認します。
  6. キーボードだけの操作でも、再認証の案内から作業再開まで進めるか確認します。

自動テスト

自動テストでは、入力済みの状態を準備し、セッション期限切れ、再認証、復元を順に発生させます。
復元後の値だけでなく、表示中の段階と次の操作が期待どおりかを検証すると、部分的な復元を見逃しにくくなります。

実装時の確認事項

達成基準の意図と参考例は、W3Cの「Understanding Success Criterion 2.2.5: Re-authenticating」で確認できます。
再認証を単独のログイン処理として扱わず、入力の開始から作業再開までを一つの利用者体験として設計することが、データ損失を防ぐ基礎になります。

当社では、ウェブアクセシビリティを簡単に導入できるUUU ウェブアクセシビリティを提供しています。
アクセシビリティ向上に取り組む際は、サービスの詳細をご覧ください。

モバイルバージョンを終了