オペラ 11の<mark>要素のバグ。

テーマ

オペラ 11を使っていて気付いたバグです。

制作者がオペラを使い始めた理由。

制作者は平成23年 5月頃からオペラを使い始めました。

理由はファイヤーフォックス 4 が死ぬほど重かったからです。

オペラに切り替えたら、今までとろとろ表示していたウェブページがキビキビ表示されるので、びっくりしたものです。

今はファイヤーフォックス 5にも戻りましたが、やはりオペラとは較べものにならないくらい重い動作なので、今もオペラをメインにしております。

オペラに見られた、<mark>要素のバグ。

ところで、制作者は既にサイトの大半の文書を HTML 5 に切り替えており、<mark>要素も利用しているのですが、オペラで自分のサイトを見て「あれ?」と思いました。

何故か、<p>要素内にある<mark>要素について、必ず先頭で改行されるのです。

バグの検証。

何か変だと思い、調べて見ました。

以下のHTML文書を用意しました。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="shift_jis" />
    <title>&lt;mark&gt;要素</title>
    </head>

<body>
    <h1>&lt;mark&gt;要素。</h1>
    <p>&lt;p&gt;要素の中で、<mark>ここで&lt;mark&gt;要素</mark>を使いました。</p>
    <div>&lt;div&gt;要素の中で、<mark>ここで&lt;mark&gt;要素</mark>を使いました。</div>
    <ul>
        <li>&lt;li&gt;要素の中でも<mark>ここで&lt;mark&gt;要素</mark>を使ってみました。</li>
        </ul>
    <dl>
        <dt>&lt;dt&gt;要素の中でも<mark>ここで&lt;mark&gt;要素</mark>を使ってみました</dt>
        <dd>&lt;dd&gt;要素の中でも<mark>ここで&lt;mark&gt;要素</mark>を使ってみました。</dd>
        </dl>
    </body>
</html>

これをファイヤーフォックス 5で表示させて見ましょう:

全ての<mark>要素がインラインで表示され、前後で改行なんてしていませんね。

ところが、これをオペラ 11.50で表示させると:

なんて事でしょう。<p>要素内の<mark>要素は、その直前で勝手に改行されてしまいました。

ちなみにグーグルクロムでもファイヤーフォックスと同じ結果でした。

このような問題が起こったため、制作者はどうすればこのバグを回避出来るかいろいろ調べてみました。

その過程についてはここでは詳しく書きませんが、取り敢えず<mark>要素のプロパティをいろいろいじってみましたがダメでした。

制作者が見付けた唯一の解決策は、<p>要素に display: inline プロパティを当てる事だけでしたが、たった一つのユーザエージェントのバグのためにそこまでする必要があるでしょうか。

バグについて補足。

このバグは、オペラ 11.00 で既に生じていたものでした。

オペラ 11.50 にアップデートした時に真っ先に調べたのが、このバグが解消されているかどうかでしたが、解消されていませんでした。

取り敢えず、早く直して欲しいものです。