前回(「第28回 フォーム送信とブラウザ・ボタンと使い勝手(前編)~PRGパターンをご存じですか」)に続いて,フォーム送信とブラウザ・ボタンの関係について見ていきましょう。そもそもリダイレクトや2重登録の問題を考えなければならない大きな理由は,ブラウザに「戻る」や「更新」などのボタンがあるからです(2重登録に関しては,アクセスに時間がかかったときにボタンを2度押されてしまうなどの問題もありますが)。

 一昔前だと「戻るボタンを使わないでください」とか「ボタンを2度押ししないでください」といった,注意書きが表示されているページもよく見かけていました。逆に「注文中はいつでも『戻る』ボタンで戻れます」のように,きちんとセッション管理をしているサイトが,誇らしげにそれを表示していたりもしました。

 でも最近は,個人的な感覚としては,そうしたセッション管理もかなり普通に行われるようになって,そういう「戻れません」みたいなサイトは少なくなっているように思っています。しかし,「戻る "ボタンはご利用いただけません"」や「戻る "ボタンは利用できません"」といったキーワードで検索をすると,オンラインバンキングや決済系のサイトではまだまだよく書かれていることがわかります。

 また,「戻る ボタン」でGoogleで検索をすると,関連検索に「戻るボタン 無効」とか「戻るボタン 制御」といったものがたくさん出てきて,まだそういう行為の欲求というか需要があることがわかります(図7)。

図7:Googleの関連検索

 オンラインバンキングなど,一つ一つの作業に大きな金額が関係しそうなサイトの場合は,何らかのトラブルが発生する危険性を防ぐために,逆にセッション管理をしたうえで,戻るや更新などのボタンが押された場合には,問答無用でエラーにしてしまったり,ログイン状態を解除してしまったり,といったケースもあります。気持ちはすごくわかる気がするのですが,「戻る」や「更新」ボタンが使えないことには変わりはないよなあ,と思います。

 また,たとえヘルプや使い方に「戻るボタンは使えないよ」と書いてあっても,それは弁明に過ぎなくて,やっぱり使いにくいことに変わりはありません。そもそも,その説明を読まずにそれらのボタンを押してしまって,混乱してしまう利用者は必ず出てきてしまうでしょう。そういう説明って,あまり読まれないものですし,読んでも結構頭から抜けていってしまうものですしね。

 また,検索をするとJavaScriptをつかって,「戻る」ボタンが作動しないようにする方法なども見つかります。しかし,JavaScriptを動作しない状態に設定している人には意味がありませんし,そういう制御にJavaScriptを使うのは,「右クリック禁止」と並んで,なんだか非常にかっこわるい気がします。

 とは言っても,現在の世の中のサイトのほとんどにおいて,ページ内に全くリンクがない「行き止まり」のページは見かけなくなっていて,「戻る」ボタンに関しては,それほど使われていないんじゃないか,という気がしなくもないのです。けれど,そもそも「戻る」や「更新」のボタンは,ブラウザの基本機能であり,どのウェブサイトでも利用できる「はず」の機能です。それが使えない,というのはやっぱりなしなんじゃないかなあ,と思います。

 利用者が「使いにくい」と感じる瞬間の一つは,何かアクションを起こしたとき,予期したのとは違う動作をしてしまったときです。「戻る」や「更新」を押したとき,エラー画面が表示されてしまったり,ログイン画面に戻ってしまったりというのは,利用者の想定とはかなり違っているはずですから,そこでおそらく利用者は「使いづらいなあ」と思ってしまうでしょう。

 HTTPというステートレス(状態を保持しない)なプロトコルとともに,初期からブラウザに実装されているそれらのボタンが,今日のような「状態保持」の必要なウェブ上のサービスと相容れない部分があるのは間違いがないのですが,そこをうまくやるのが,プロのエンジニアとしての腕の見せ所なんじゃないかな,と思っています。

ページ遷移が無くても「戻る」ボタンが使える

 最近はJavaScriptやAjaxの技術なんかを利用して,ページ遷移を発生させずに内容を書き換えるスタイルも定着してきましたが,この場合,ページ遷移が発生しませんから「戻る」ボタンは基本的には動作しません。しかし,本連載の12回でも解説したように,Gmailは画面遷移が全くないにもかかわらず,「戻る」ボタンで一つ前の「画面」に戻ることができるようになっています。これは,わざわざJavaScriptを使って戻るボタンを押したときに,一つ前の動作に戻れるよう細工をしているわけです。筆者は,「戻る」ボタンを結構使うので,よくGmailでも「戻る」を押してしまうため,この機能には良く助けられています。

 Gmailがわざわざこうした仕組みを導入している理由には,やはり「戻る」ボタンが使えなくなることが,使い勝手を損ねると判断しているからでしょう。こうしたアプリケーションにおける「戻る」ボタンの問題は,Gmailだけでなく,いろいろな人が問題だと考えているようで,同様に,画面遷移が無くても,きちんと「戻る」ボタンを使えるようにするためのJavaScriptのライブラリも公開されています。

 例えばYahoo! UI Libraryの中の一つであるBrowser History Managerもその一つです。これは,URLに現在のアプリケーションのステータスを埋め込んだものを生成し,それをブラウザのURL履歴に差し込むことで,戻るボタンを機能するようにしています。

 2年以上前の記事ですが,以下の記事も参考になります。

[Ajax] location.hashを使ったセッション復元

 ここまで,「戻る」ボタンに関する話が中心で,あまり「更新」ボタンに関する話題が出ていませんが,こうした状態を保存しておく手法を応用すれば,「戻る」ボタン(や「進む」ボタン)だけでなく,「更新」に関しても,対応できそうです。

 さて,こうした「戻る」や「更新」ボタンに関する話題は,ユーザビリティでは重要な話題ですし,方々で語られていることです。けれど,実際に「戻る」や「更新」ボタンってどれくらい使われているんだろうか,と疑問に思ったことはないでしょうか。

 筆者に関して言えば,結構よく使うほうだと思っているのですが,ブラウザ(というかPC操作全般)の操作のやり方って,人によってかなり大きく違うものなので,自分自身の感覚だけだと心許なかったので調べてみました。もちろん,「戻る」や「更新」ボタンがほとんど使われていないからといって,筆者のように使う人がいる以上,無視していいわけはないのですが,だとはいっても多いか少ないかは,やっぱり気になりますよね。

 そこで,そういう調査の結果はないかと思って調べてみたところ,あまり最近のものは残念ながら見つかりませんでしたが,「The Impact of Task on the Usage of Web Browser Navigation Tools」という2005年の論文を見つけました。

The Impact of Task on the Usage of Web Browser Navigation Tools

 これはカナダのDalhousie大学の研究者の論文のようですが,21人の大学生の実際のブラウジングを1週間記録し,そこからブラウザのナビゲーションツールの利用の特性などを調べたものです。その中に,「戻る」や「更新」ボタン,そのほかブックマークやオートコンプリートなど,様々なブラウザの機能を,どれだけの被験者が使ったのか,という結果が載っていました。

 それによれば,「戻る」ボタンは100%の被験者が利用しており,「更新」ボタンの利用頻度も28.6%とやはり結構使っているな,という印象です。また,ページ移動の際に利用した頻度を見ると,「更新」ボタンは0.1%程度ですが,「戻る」ボタンは18.9%と,結構な確率で利用されていることがわかります。

 もちろん,これは2年前のカナダでの調査結果ですし,大学生のみを対象としていますから,現在の日本の一般的な利用者の行動とは多少違っている可能性は十分にありますが,それにしても,これらのボタンがそれなりに利用されていることは示されているように思いますし,やっぱりこうしたボタンの動作をおろそかにしちゃいけないなあ,と思わされますよね。