「戻る」に対するフェイルセーフ

Web サイトのページ遷移の中には、自由な「行きつ戻りつ」が許されない、「リニア (直線的)」な動線のものがあります。EC サイトのチェックアウト (決済手続き) やネットバンキングの取引などで見られるパターンです。

リニア (直線的) なページ遷移
リニア (直線的) なページ遷移

このパターンが厳格に適用されているサイトもあります。ページ遷移中に「さっき入力したデータを修正しよう」とブラウザの「戻る」ボタンを押したら、途端にセッションが切れた...という経験をされた方もいることでしょう (ネットバンキングの取引ではこういうケースが多いですね)。

とあるネットバンキングを利用中、ブラウザの「戻る」ボタンを押したら、セッションタイムアウトの画面になってしまった...という画面表示。
セッションタイムアウトの画面

ユーザーが気をつければ済む話?

リニア (直線的) なページ遷移を辿らなければならない手続きでも、「さっき入力したデータを、前のページに戻って修正したい」というケースはよくあることでしょう。修正したうえでまた、次の画面に進むボタンを押せば、データが上書きされる形で手続きが継続する...というフローが、ユーザーの自然な期待だと思います。

その一方、セキュリティなどの理由でセッション管理を厳密にしなければならない、という事情もあるかと思います。ネットバンキングのように金銭の授受が絡むサービスでは、リスクの未然予防が最優先課題なので、ありとあらゆるイレギュラーな行為 (一定時間操作をしなかったり、ページ内に用意されている所定のナビゲーション以外でページ遷移しようとしたり、など) はすべからく NG とする必要があるのでしょう。

技術的な制約でセキュリティとユーザビリティがトレードオフ関係にあるのであれば、セキュリティを優先すべき、という判断は (残念ですが) 合理的だと言えます。わざわざマウスポインターを「戻る」ボタンまで持っていかなければ (キーボード操作をするユーザーであれば、わざわざ装飾キーを伴った所定のキー操作をしなければ) このような問題は起きないのですから、ユーザーが気をつければ済むだけの話かもしれません。

インタラクションの多様化 (ナビゲーション操作の手軽さの向上) を見据えたフェイルセーフがあってもよいのでは

ところが、今後は「ユーザーが気をつければ済む話」ではなくなるかもしれません。というのも、マウス/キーボードに加えタッチジェスチャの利用が可能になり、ページ遷移のための操作がより手軽になりつつあるからです。

たとえば Mac OS X の各種ブラウザでは (Safari だけでなく、Chrome や Firefox でも)、マルチタッチトラックパッド上を二本指で左右フリックすると、ページの「戻る」「進む」ができるようになっています。わざわざマウスマウスポインターをブラウザの「戻る」「進む」ボタンまで移動しなくても済むので、とても快適な操作感です。

また、iOS の各種ブラウザでも、画面左端で右フリックするとページの「戻る」が、また画面右端で左フリックするとページの「進む」が、できるようになっています。

さらには、空間的なジェスチャ (「Leap Motion」「Kinect」など)、目線の動きによる入力 (「Gaze Interaction (Tobii)」など)、音声入力 (「Siri」など) ...といった多種多様なインタラクション技術が新たに登場している現在、「戻る」「進む」をはじめとするブラウザのナビゲーション操作は、ますます手軽になる可能性があると思います。

「戻る」「進む」などのナビゲーション操作が手軽になると、そのぶん、上述の「セッションが切れる」というヒューマンエラー (これを「ヒューマンエラー」と言ってしまうのはユーザーにとって酷な気もしますが...) が増えることが懸念されます。「さっき入力したデータを、前のページに戻って修正したい」とユーザーが思ったとき即座にアクションをとることができてしまうからです。

そう考えると、何らかのフェイルセーフがあってもよいのでは?という気がします。リニア (直線的) なページ遷移が必要な一連のページ群では、ブラウザの「戻る」機能を無効にする (ボタンを押せないようにグレーアウトする) とか、あるいは「戻る」ボタンが押された際にはモーダルダイアログボックスで警告を出して「戻る」アクションを未然に防ぐ、といった仕組みです。当然のことながら、Web ページ内に用意されている所定のナビゲーションが唯一のページ遷移手段になるので、「次にどうすればよいか」という行動喚起 (Call To Action : CTA) をわかりやすくデザインする必要がありますが (現状のネットバンキングのページは、ページ遷移に必要な CTA のファインダビリティが決して高いとは言えないので、改善できる余地はたくさんあると思っています)、そのうえで、無駄なヒューマンエラーを効果的に予防するフェイルセーフの仕組みは、Web 標準仕様として用意されていてもよいかもしれない...などと思っているところです。