Firefox 121.0 で全角スペースが謎の動作をする

2023/12/20に、Firefox 121.0 がリリースされた。
その影響のためか、Webサイトがバグったという情報を耳にしたので調べてみた。

環境

Firefox 121.0(Windows版)

Ver 121.0.x がリリースされれば、修正されて以下の現象は再現しない可能性がある。

謎の挙動

selectタグのoptionの値で、前後に全角スペースが含まれていると値がバグるらしい。

以下の図で、左側がFirefox 121.0、右側はEdge 120.0.2210.91 で試したもの。

このように、optionの値が途中で切れてしまう。

再現したhtmlタグは、以下の通り。

<p>先頭にスペースなし</p>
<select>
	<option>オプション1</option>
	<option>オプション2</option>
	<option>オプション3</option>
	<option>オプション3-1</option>
	<option>オプション3-2</option>
</select>

<p>先頭に全角スペースあり</p>
<select>
	<option> オプション1</option>
	<option> オプション2</option>
	<option> オプション3</option>
	<option>  オプション3-1</option>
	<option>  オプション3-2</option>
</select> 

<p>末尾に全角スペースあり</p>
<select>
	<option>オプション1 </option>
	<option>オプション2 </option>
	<option>オプション3 </option>
	<option>オプション3-1 </option>
	<option>オプション3-2 </option>
</select>


おかしくなっている箇所をFirefoxの開発者ツールで見てみると、改行?か何かが入っているのか、値が変な事になっている。


なお、全角スペースでは問題が発生するが、「&emsp;」を使っている場合には問題ない。

原因を探る

Firefox 120までは問題なく、Firefox以外のブラウザでも問題ない。

どうやらFirefox 121.0で変になったように思え、Bugzillaから情報を探してみると以下が該当していそう。
bugzilla.mozilla.org


Bugzillaではbuttonタグも例に挙げられている。
スレッドを見ると、「何らかの問題へ対処する修正が入っていたが、それが仇となったので元に戻した」といった感じ。

selectタグのoptionやbuttonタグで確認したが、他にも影響を受けるものがあるかもしれない。

対処

Firefox 122 ではFixされてリリース(1/23予定)されるらしい。
また、121.x dot-release(121.0.1 など)があれば、修正されてリリースされると思われる。

自分がクライアント側であれば、次期Firefoxリリースまで待つか、他ブラウザを利用する事で対処できる。
自分が開発者側であれば、次期Firefoxリリースまで待つか、全角スペースをやめるしかない。
前述の「&emsp;」に置き換える方法も考えられる。


余談だが、そもそも「なぜoptionの値の前後に全角スペースがあるの?」と思い、今回の情報元へ尋ねてみたところ、

  • 値の先頭にあるスペースは、インデントの目的で使っていた
  • 値の末尾にあったスペースは、おそらく誤入力

ということだった。


【1/7追記】
他にも関連除法があったので追記。
bugzilla.mozilla.org

bugzilla.mozilla.org


【1/10追記】
本記事の不具合は、1/9リリースの Firefox 121.0.1 で修正済となりました。
www.mozilla.org

Fixed unexpected line wrapping in some CJK contexts caused by changes in ideographic space handling. (Bug 1870973)