tDiary の編集画面でアクセスキーを無効にする

(追記 2008-04-16: パッチの動作が逆だったのを修正。)

tdiary-2.2.1 を試していたら、日記の編集画面で Control-A を押すと勝手に submit しやがった。クソッタレ!

MacOS X ではいろんなところで Emacs ライクなキーバインドが使えて、たとえば C-p, C-n, C-b, C-f で上下左右にカーソルを移動できる。C-a や C-e なら行頭や行末に移動する。これは当然、Safari でのフォームの編集画面でも使えるので、Emacs 使いにとっては超便利。

しかし、accesskey 属性を使ってアクセスキーを設定してあると、この便利な Emacs バインディングが使えない。使えないばかりか、カーソルを移動するつもりで Control+p/n/b/f を押したら勝手に submit したりするわけだから、取り返しのつかないことになる可能性もある。だから accesskey 属性が設定してあるフォームは使いにくい。

そして、tdiary-2.2.1 の日記編集画面がまさにこれだった。submit ボタンに accesskey="a" が指定されてあって、行頭に移動するつもりで Control-A を押したら勝手に submit されてしまったというわけだ。

そういうわけで、メーリングリストで質問して作ったのが下のパッチ。やってることは、アクセスキーを有効・無効にするための設定項目 @accesskey_enabled を追加し、true ならアクセスキーを有効にして false なら無効にするというだけ。

tdiary-2.2.1 用のパッチ (accesskey.patch)

パッチの当て方は次の通り。

$ cd tdiary-2.2.1/
$ patch -p1 < /tmp/accesskey2.patch

なんか問題があれば報告ください。