操作性の悪いWebアプリケーションが多すぎる――。そんな風に感じる読者はいないだろうか。例えば,UNIXやWindowsのアプリケーションでは当然のように使えるキーボードによるショート・カット操作ができないとか,入力を支援してくれるような直感的なGUI(Graphical User Interface)部品が少ないといった不満だ。

 筆者は常々,Webアプリケーションの操作性の悪さに閉口させられている。冒頭に挙げたショート・カットによるキー操作などに限らず,Webアプリケーションの使いづらい点はいくつもある。

 例えば,入力する項目をリターン・キーや矢印(カーソル)キーで切り替えられないことが不便だ。入力内容の正否を知らされるのが,サーバーとの通信後になる点も煩わしい。ケタの大きな数字を入力したときに,ケタ区切りのカンマを自動的に補ってくれないことがあるのにも不満がある。メニューなどの選択に応じて画面を書き換えるときに,ページの一部を書き換えれば済むのに,全体を更新するサイトが多い点にも,使いづらさを感じる。

 “問題点”は,いちいち数え上げればキリがない。細かい話といえばそれまでだが,こうした使いづらさを気にするユーザーは決して少なくあるまい。

 もちろん,筆者の好みやWebアプリケーション設計者のセンスなどに依存する問題点もある。だが,なかにはWebアプリケーションの特性上,やむを得ないケースもある。Webの基盤になっているHTMLは,もともと情報を効率よく提供または参照できるように開発されたものだ。入力系の処理を効率化するといったことは,目的にしていなかった。

 クライアント・サイド・スクリプト,Javaアプレット,ActiveXコントロールなどを使って,クライアント側で処理を実行させ,操作性を改善する方法はあった。ただ,これらの技術は,さまざまな理由であまり普及してこなかった。

 まず,ネットワークの帯域が狭かった当時は,クライアントにプログラムを送り込むのに時間がかかりすぎ,実用的ではないとされた。Javaアプレットなどは,処理自体が重い/遅いとされ,敬遠されてきた。クライアント側に送り込んだプログラムのバージョン管理が難しくなるという問題もあった。下手にクライアント側にスクリプトなどを作り込むと,不正な処理要求などを可能にするセキュリティ・ホールの温床になる危険もあった。結局,設計者や開発者は,ユーザーの操作性を泣く泣く犠牲にせざるを得なかったのである。

操作性を向上させられる環境は整った

 だが,最近になって,こうした状況が少しずつ変わってきた。ADSL(Asymmetric Digital Subscriber Line)に代表される広帯域のインターネット接続回線が急速に普及。大容量のアプリケーションやスクリプトをネットワーク経由でクライアントに送り込んでも,以前ほどは実用上の障害にならなくなってきた。コンピュータの性能も飛躍的に向上している。JavaではJITコンパイラ[用語解説]やHotSpot[用語解説]といった技術により,処理を高速に実行できるようになってきた。

 しかもここにきて,操作性の高いWebアプリケーションを構築しやすくする技術や製品などの選択肢が増えている。代表的なのは,マクロメディアの「Flash MX」である。Webアニメーションの作成などで有名なツールだが,最近のバージョンでは,Webシステムのクライアント・プログラムを作成する機能が充実してきた。

 マイクロソフトが提供するWindows/Webシステムの構築ツール「Visual Studio .NET」でも,使い勝手のよいWebアプリケーションを構築しやすい。クライアント側で動作するスクリプトを含んだコントロールを配置し,Visual Basicでフォームを作るときのように,Webの入力フォームを組み上げられる。

 登場するのは2003年半ばと少し先になるが,Java用のツールも増えてくる。使い勝手のよいWebアプリケーションを作れるようにする標準仕様が,JSF(JavaServer Faces)として策定されつつあるからだ(JSR-127)。現在は公開レビューの段階だが,米Sun Microsystemsは実装サンプルである「JavaServer Faces Reference Implementation EA 3」を提供済みだ。JSFの機能をサポートした統合開発ツールを使えば,Visual Studio .NETと同じような感覚でWebアプリケーションを開発できると見られている。

 カール・アジアパシフィックが販売するWeb用言語「Curl」という選択肢もある(関連記事)。クライアント側にインストールしたランタイム環境上で動作するWeb専用のプログラム言語である。製品化されて間もないこともあり,機能的には発展途上の段階にあるが,GUIベースの開発ツールが用意されているなど,今後の発展が期待できる。

 これらのツールを使えば,キーボードやマウスによる特定の操作をイベントとしてとらえ,対応する処理をクライアント側で実行するといったWebシステムを手軽に構築可能になる。

 例えば,キー割り当てなどをプログラミングしておけば,Webアプリケーションをキーボードでショート・カット操作できるようになる。キー操作などと連動し,プルダウン・メニューの内容をサーバーから取得して動的に切り替えるようなことも可能だ。このとき,従来のWebのように画面全体を切り替えなくても,必要な部分のデータだけをサーバーとやり取りし,表示内容を変更できる。結果的に,サーバーとの通信量が減ることさえある。

 入力内容の正否をクライアント側でチェックさせることもできる。不正データの入力を阻止するために,サーバー側で入力データを二重チェックする処理は欠かせないが,ユーザーの使い勝手は確実に上がる。入力間違いに起因する無駄なトラフィックも減らせる。ユーザーの入力を支援する,スライド・バーやカレンダなどのGUI部品を組み合わせて画面構成することも容易になる。

 従来のように,作り込みの手間をかけなくても,あらかじめ部品が用意されている。開発効率を重視して操作性を犠牲にしてきた設計者/開発者にとっては,ありがたい。出来合いの部品で飽き足らなければ,より使い勝手のよい部品を工夫し,作成することも可能だ。

操作性で評価される時代に

 Webアプリケーションの操作性の良し悪しが,サイトの品質を左右することについては,すでにいくつかの企業が敏感に感じ取り,改善に取り組み始めた。例えば,損保ジャパン・ディー・アイ・ワイ生命保険も,そうした企業の1つだ。同社が提供する「DIY(Do It Yourself)組み立てキット」というWebアプリケーションでは,顧客が自分の年収や家族構成をもとに,必要な保険料などを自分でシミュレーションできる。

 このシステムは,ユーザーの情報入力を支援する機能を備えたFlashアプリケーションと,保険料の計算などを実行するサーバーとを連携させる,クライアント/サーバー構成で実装してある。キー操作にこそ対応していないが,動的に切り替わるメニューやスライド・バーなどにより,ユーザーは直感的に情報を入力できる。ケタの大きな数字を入力したときには,自動的にカンマ区切りを補ってくれる。次に操作すべきボタンが点滅するので,操作に迷うこともない。

 こうした取り組みの結果,同社のWebアプリケーションを利用するユーザーの滞在時間は,数割増しになったという。シミュレーションの途中で処理を中断してしまうユーザーが減り,最終工程である資料請求まで完了してくれるユーザーが増えてきた。つまり,成約の可能性も高まっているのだ。

 早く,安く,管理を容易に――。そんな思いでWebアプリケーションを企画/構築している担当者は多いと思う。しかしこれからは,ユーザーの操作性を高めることについても,もう少し気を配ってみてはどうだろうか。そのための環境は,もう十分に整ってきている。

(実森 仁志=日経インターネットソリューション)