Scribble at 2024-01-21 09:08:15 Last modified: unmodified

添付画像

why a button on web page or windows task bar does not respond by our clicks?

Windows のタスク・バーとか、あるいはブラウザに表示されるボタンとか、そういうものを使うときは「クリック」という操作をする。まぁこんなことは今や幼稚園児から老人ホームの人々まで知ってる常識の類なので、改まって書く必要もないことだろう。そして、恐らくは誰もが経験していながら、検索してみても話題になっていないのが、「クリックしても反応しない」という現象だ。これが話題になりにくいのは、恐らく何度かやれば反応するため、大したことでもないと感じている人が大半だからなのだろう。でも、実はそれほど些細なことだと切り捨てて良いのかどうかは、自明とは言えない。なぜなら、そういうことが起きると誰でも少しは怪訝な気持ちになるし、それがパソコンを使うという長い経験の中で何回もあれば、それが蓄積されてゆくと、多少の不良動作が気にならなくなるか、あるいは逆にわずかなストレスが無自覚に蓄積されて「パソコンは鬱陶しいもの」という印象が出来上がってしまうと思われるからだ。

この、クリックしても反応しないという忌々しい現象は、殆ど HCI の研究者も真面目に扱おうとしないので、こうして科学哲学者が話題にしなくてはいけないわけだが、考えられる原因は幾つかありうる。

まず (1) 実はクリックできていないということである。僕のように50代も後半になってくると、いくら高校時代は握力が 60kg あったの何のと言っても、当たり前のように体力は落ちてくる。特に運動競技を続けているわけでもなければ、なおさらだ。しかし、だからといって「カチッ」という音もしないうちに指を離すほど耄碌しているわけでもない。つまり、これは押せていないという意味ではなく、左クリックしているつもりで、実はドラッグになっているという可能性がある。これは、若い人でもフォルダを選択するつもりでフォルダを別の場所にドラッグしてしまい、「河さん! フォルダが無くなってしまいました!」などと言ってくるから、そういうミスは年齢に限らずあることなのだ。もちろん、そんなことを俺に言ってくるのは30代以上が多いわけだが、それは30代以上に多い現象だという意味ではなく、若い人は「操作を間違ってドラッグしてしまうと、フォルダがどこかへ入ってしまう」という予備知識があるので、自分で探そうとするから僕にわざわざそんなくだらないことを相談しないだけである。そもそも、そういう些細なことでも「IT人材」と言えるかどうかのコンピテンシーやリテラシーを測れるのだ。

次に考えられる原因は、もちろん (2) ハードウェアのパフォーマンスに問題があるというものだ。マウスの部品の耐久性だとか、そもそも安物を使ってるとか、色々な原因があって、クリックできていても正しくハードウェアとしての処理ができていない場合である。これは、インターフェイスとしての役割を果たしていないのだから、修理するなり交換するしかないだろう。

それから、(3) ドライバ・ソフトウェアの欠陥や誤動作によるクリック時のデータ転送ミスだとか、データ処理のエラーがありえる。これもドライバのアップデートや再インストールで対策できるわけだが、特定の条件で起きる問題の中には、ハードウェアあるいはドライバの開発元(ハードウェアのメーカーが提供している専用ドライバを使わなくても、たいていの周辺機器はマイクロソフトの generic driver で動いたりする)が想定していない状況もあるため、ソフトウェアを再インストールしたり修復しても改善しない場合がある。

もちろん、(4) ユーザ・インターフェイスを描画する Windows の GUI コンポーネントや、その上で動いているアプリケーションの問題ということも十分に考えられる。そして、何度も書いていることだが、ブラウザ上で表示されるボタンの類がクリックに反応しない事例の多くは、ハードウェアやドライバや僕らの操作の問題なんかではなく、UI のデザイナー(特に JavaScript のコーダ)がイベントを待機するまでにかかる所要時間を殆ど無視して開発していることに大きな理由があると思っている。彼がいう「フレームワーク」という名のライブラリをブラウザの JavaScript エンジンがセット・アップしたり、ページのコンポーネントを描画して、クリックだのテキスト入力だのというイベントを待ち受けるために DOM 構造をメモリへ展開するといった準備がかかるまでの所要時間を、プロダクト・デザイナーでありながら殆ど考慮もしていなければ、そういう所要時間がかかるという知識すら無いのが現代の、React だ Vue.js だと、些末な数々のツールをデタラメに使っている JavaScript monkey どもだ。

こういうサルが実装している UI の愚かしいパフォーマンスのせいで、クリックしたつもりがクリックとして発火していないというレシーバ側の問題が起きるなら、その対策は簡単である。第一に、ページの描画が(ブラウザの表示範囲として)完了しても、まだ待っておくということだ。どのていどのあいだ待てばいいのかは知らないし、エンド・ユーザがそんな無能の仕事に何秒も時間をくれてやる道理などないわけだが、そのページを使わなければならないという事情も多々あるので、ページの描画が完了してから10秒ていどは待ってやることだ。

これに比べて、Windows の GUI コンポーネントは JavaScript で動いているわけではなく、そしてタスク・バーや通知領域のアイコンをクリックして反応するかどうかは、実際には他の常駐ソフトのパフォーマンスや、そのマシン自体のスペックにも左右されるため、一概にどうすればいいとは言えない。ただ、僕のように Dropbox や OneDrive などのネットワーク通信を利用した認証を Windows が起動するたびに行っているような常駐ソフトがあると、他のアプリケーション、それから Windows が描画する GUI コンポーネントのパフォーマンスにも大きな影響がある。これらが起動処理しているあいだは、マウス・ポインタがコマ送りでしか動かないほどの負荷がかかったりするからだ。よって、デスクトップという環境については、タスク・バーや通知領域のアイコンが全て表示されたと思っても、それから30秒くらいは待ってから使い始めた方が、無用な不愉快さを感じなくて済むように思う。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook