ブラウザのショートカットキーを拡張するChrome拡張機能を作った

Chrome ウェブストア - Moly Keys

この拡張機能を使うと、画面のスクロールやフォームの選択などの操作をキーボードに割り当てることができる。
ブラウザのキーバインディングを追加する似たような拡張機能はストアにすでに存在するのになぜ?と思われるかもしれない。
他の似たような拡張機能には、次のような問題があった。

  • Webページによってはスクロールできないことがある。
  • フォームにフォーカスが当たっているとキーバインドが効かない。
  • 重い。

などなど。
これら快適さを損なう問題を解消して、手に馴染むキー操作を実現すべくこの拡張機能を作った。

この拡張機能は基本的な操作を提供するが、それだけではキーボードのみでブラウジングを行うために十分ではない。
そのため、キー操作でハイパーリンクをクリックするMoly HaHや、タブの選択を快適にするMoly Tab Menuを併せて利用するとよい。

ここからは、先に挙げた問題点について、もうすこし詳しく述べていく。

スクロール問題

たとえばGmailInoReaderなどのWebサイトにおいて、他の多くの拡張機能ではスクロールが効かない。
これらのサイトでは、スクロールすべき対象がページ全体ではなくその内部のHTML要素であるのがその理由である。
他の拡張機能ではページ全体のみをスクロールするのに対して、Moly KeysはまずフォーカスのあるHTML要素に対してスクロールを試みる。
そのため、より多くのWebサイトや組込みPDFビューアなどにおいてキーバインドによるスクロールを実現できる。

フォーカス問題

他の多くの拡張機能では、たとえばinputにフォーカスが当たっていて編集可能な状態のとき、入力されたキーを横取りしてキーバインド操作を発火することはない。
これはCtrlやAltなどの修飾キーを伴わないキーアサイメントに対しては望ましい動作であるが、たとえばCtrl-Iなど文字入力にならないようなキーバインドではショートカットとして機能してほしいと思われる。
そのため、Moly Keysでは修飾キーの有無によって、編集可能要素にフォーカスがある場合に作動するかどうかを判断する。
また、修飾キー付きの各キーバインドに対して、発火しない例外となる要素の種類をオプションのRaw Settingsから設定することもできる。