/ 最近 .rdf 追記 編集 設定 本棚

脳log[20060725] Mouseless Browsing 0.4.1+ | 5点



2006年07月25日 (火)

[Firefox] Mouseless Browsing 0.4.1+

何日かマウスを使っていないのでブラウザ(Firefox)のキーボードインターフェイスが気になる。

 Find As You Typeでリンクにフォーカス

Firefoxの設定で「オプション > 詳細 > 一般 > アクセシビリティ > キー入力時に検索を開始する」を有効にすると、Ctrl+Fやスラッシュを押してからでなくとも、目に付いた単語をタイプするだけでインクリメンタルなページ内検索が行える。このとき検索結果の文字列にフォーカスが移動するのが非常に都合が良くて、リンク文字列がアルファベットであればタブキーを使って順番にフォーカスを移動するよりスムーズにリンクにフォーカスをあててページを移動できる。

 Mouseless Browsingでリンクにフォーカス

Firefoxの拡張機能のひとつである Mouseless Browsingもまたキーボードを使ったナビゲーションを円滑にする。そのアプローチは全てのリンクにシリアルナンバーを割り振るというもの。リンクの右下隅に表示される数字をタイプして Enterを押すとリンク先に移動し、Enterの代わりにプラスキーを押すと新しいタブで開くといった具合。

ところで、「オプション > 詳細 > 一般 > アクセシビリティ > キー入力時に検索を開始する」と Mouseless Browsingは競合する。数字をタイプすると両方が同時に動き出すのだ。

 共存案1

最初は、Mouseless Browsingにはシリアルナンバーを割り振ることだけを任せて、Find As You Typeで数字をタイプしてリンクにフォーカスを合わせ、リンクをクリックするのは Enter(新しいタブで開くなら Ctrl+Enter。どちらも Windows版 Firefoxの標準割り当て)、でうまくいくように思えた。実際、悪くない動作をする。

唯一、気に入らないのはスクロール位置がガタガタ移動するのが避けられないこと。例えば 125番のリンクをクリックしようと [1][2][5][Enter]とタイプすると、Enterを押すまでの間に、1番のリンク、12番のリンク、125番のリンクの順にフォーカスが移動しスクロール位置も合わせて移動するので見てて疲れる。前にも書いたが、フォーカスの移動に伴ってスクロール位置が移動するのはストレス。目の見える自分にとってフォーカスをあてたい対象は今、見えている範囲にあるのだから。

原因は Find As You Typeがインクリメンタルな検索を行うことにあって、Mouseless Browsingならそういうことは起こらないのだが。

 共存案2

Mouseless Browsingは良くできたやつで、こいつの設定に「Use numpad exclusively for Mouseless Browsing」というのがある。これをチェックしておけば、テンキー以外のキーをタイプしたときは Find As You Type、テンキーを使ったときは Mouseless Browsing、とどちらも有効にしたまま棲み分けができる。テンキーを使う時にはスクロールの問題も起こらない。

ところがこれにも問題が。このチェックが有効だとフォームに数字を入力するときにテンキーが使えない。exclusiveだとはいってもフォーカスが文字入力可能な場所にあるときはキーボード入力を Firefoxの標準のハンドラに譲って欲しい。そんなわがままを可能にする修正が下の 4点。元がいいから変更も楽だった。

 Mouseless Browsing0.4.1に加えた変更点

<Fx profile>*\extensions\{c0bcf963-624b-47fe-aa78-8cc02434cf32}\defaults\preferences\mlb_prefs.js の 13行目に一行挿入。(初期設定を追加)

12 pref("mouselessbrowsing.exclusiveNumpad", false);
13 pref("mouselessbrowsing.exclusiveNumpadUnlessWritable", false);
14 pref("mouselessbrowsing.executeAutomatic", false);

<Fx profile>\extensions\{c0bcf963-624b-47fe-aa78-8cc02434cf32}\chrome\mouselessbrowsing.jar\content\mouselessbrowsing\prefs.xul に 70-72行目を挿入。(設定画面に項目を追加)

67 <row>
68    <checkbox id="exclusiveNumpad" label="Use numpad exclusively for Mouseless Browsing" prefid="mouselessbrowsing.exclusiveNumpad" defaultValue="0"/>
69 </row>
70 <row>
71     <checkbox id="exclusiveNumpadUnlessWritable" style="margin-left:30px" label="Unless a writable element has focus" prefid="mouselessbrowsing.exclusiveNumpadUnlessWritable" defaultValue="0"/>
72 </row>
73 <row>
74     <checkbox id="executeAutomatic" label="Execute automatically without pressing Enter" prefid="mouselessbrowsing.executeAutomatic" defaultValue="false"/>
75 </row>

<Fx profile>\extensions\{c0bcf963-624b-47fe-aa78-8cc02434cf32}\chrome\mouselessbrowsing.jar\content\mouselessbrowsing\mouselessbrowsingInit.js に 164行目を追加。(設定の読み込み)

163 MLB_exclusiveUseOfNumpad = prefs.getBoolPref("mouselessbrowsing.exclusiveNumpad");
164 MLB_exclusiveUseOfNumpadUnlessWritable = prefs.getBoolPref("mouselessbrowsing.exclusiveNumpadUnlessWritable");
165 MLB_executeAutomaticEnabled = prefs.getBoolPref("mouselessbrowsing.executeAutomatic");

<Fx profile>\extensions\{c0bcf963-624b-47fe-aa78-8cc02434cf32}\chrome\mouselessbrowsing.jar\content\mouselessbrowsing\mouselessbrowsingEvent.js の 361行目を変更。(条件判定ロジックの変更)

361 return MLB_exclusiveUseOfNumpad && isNumpad;

361 return MLB_exclusiveUseOfNumpad && isNumpad &&
362     !(MLB_exclusiveUseOfNumpadUnlessWritable && Utils.isWritableElement(event.originalTarget));

う〜ん。満足。

* Firefoxのプロファイルフォルダ。%APPDATA%/Mozilla/Firefox/Profiles/xxxxxxxx.default

[]5点

  • [コミック] 吉田 基已【水の色銀の月 2 (2) (モーニングKC)】 講談社
  • [コミック] 安藤 慈朗, かとり まさる【しおんの王 4 (4) (アフタヌーンKC)】 講談社
  • [コミック] Cuvie【Emotion (オークスコミックス 夢雅コミックシリーズ)】 オークス
  • [文庫] 山形 石雄【戦う司書と神の石剣 (集英社スーパーダッシュ文庫)】 集英社
  • [文庫] 熊谷 雅人【ネクラ少女は黒魔法で恋をする〈2〉 (MF文庫J)】 メディアファクトリー