この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2009年7月)

2009年7月14日

Bug-org 248380 No sound on clicking links
初回投稿日時: 2009年07月14日04時39分11秒
最終更新日時: 2009年07月14日04時43分01秒
カテゴリ: Firefox IE Mozilla Core バグ検証中
SNS: (list)

前から気になっていたこのバグに着手しています。

今残っている問題は、Bug-org 503890で分かった、非表示のドキュメントの読み込みにも反応して音を鳴らしてしまうという点ぐらいでしょうか。

一応、音の鳴るタイミングはIE8の動作をもとに色々と検証しましたが、全く同じようにしようとすると無駄に泥臭いコードを書きまくらないといけないので、Fxのtoolkitの設計にあわせて無理なく再生されるようにしています。IE8との分かっている違いは、

  • ユーザがリロードを指示した時にも音が鳴る
  • アプリケーションの起動時の読み込みに対しても音が鳴る
  • 外部アプリケーションを呼び出すリンク(例えばmailto:とか)のクリック時にナビゲーション開始音が鳴らない
  • ナビゲーションの終了音は完全にコンテンツが読み込み終わってから鳴る

といった感じです。IE8で検証していると、IEの仕様にもいくつか疑問点があって、全体的にナビゲーションの開始音は名前に反して、リンクのクリック音という性格が異様に強いのですが、同一ページ内での移動のためのリンクや、javascriptのリンクのクリックでは音がならなかったり、ユーザがリロードした時には音が鳴らないのに、javascriptからリロードした場合には鳴る、といった逆のパターンも見受けられます。

現在提案中のパッチではbrowser要素にenablenavigationsound属性を付けておかないと音が鳴らないように制限しています。これは、DOM Inspector等、browser要素を使っている拡張の挙動を変えないように、という措置ですが、逆にFxに対して拡張が時前でbrowser要素を追加しているような場合(Split Browserあたり?)は音が出ないという副作用が予想されます。

また、これらの音は純粋なシステム音ではなく、エクスプローラという、別のアプリケーションの設定にしかすぎないので、prefでエクスプローラの設定を参照するか、ファイルを直接指定するか、という二つの選択肢を入れています。デフォルトでは無音ですが、IEからの乗り換え組のために、IEの設定インポート時に設定を書き換えられないか調査中です。

このパッチをテストしていると、音が出ることがだんだん当たり前になってきてしまって、trunkビルドに戻るとすごく違和感があります。このアクションを行うとこの音が鳴るはず、と体が慣れてしまっている状態で鳴らないので、かなり寂しい感じです。ひょっとすると、IEユーザの取り込みに失敗した例の中にはこの違和感が影響したケースもあるのではないかと思わされます。

関連するかもしれないエントリ

bug-org 248380を含むエントリ