Chromium Edgeはhtml lang属性の扱いがおかしいのでは

f:id:b3g:20200331222251p:plain

 Chromium版のMicrosoft Edgeの正式版がリリースされまして、Webページを作成しているものとしてはチェックが必要なので早速Windows 10の1909環境にインストールして確認してみました。
 元がChromiumなのでGoogle Chromeで問題なければ大丈夫だろうと予想していたのですが、反して表示がおかしい現象がありました。そのページ、前のEdgeでも問題なかったのですが、Chromium Edgeだけで問題が出た珍しいパターンです。
 Dojo Toolkitを使ってレイアウトをしているページで

Error: string.substitute could not find key "loadingState" in template

 と表示されてスクリプトが途中停止してしまいます。このメッセージで調べるとこちらのページの状況で、解決方法としてparser.parse()を呼び出す前にloadingState = "Loading";を設定せよと。実際はこれに合わせて、errorState変数も同じように宣言する必要がありました。
 なんでloadingStateとerrorStateを宣言する必要があるのか調べると、htmlの最初の宣言文、

<html lang="ja">

 のlangがDojoウィジェットの表示言語を決定しており、なぜかChromium Edgeではこれがうまく働かず、jaでのメッセージ変数の設定が必要になったみたいです。html要素へのlang設定ですが、調べてみるとそれほど重要でないみたいで、試しに消すとloadingStateとerrorStateを設定しなくてもエラーなくページが表示されるようになりました。
 以上のこととあわせてChromium Edgeは今回インストールしたときも日本語表示にするのに設定が改めて必要なことがあったり、言語まわりにまだバグをもっているのかもしれません。本格的に全面導入するにはまだ様子見の感じですね。

追記

 OSをインストールしなおす機会がありまして、今度はEdge for businessChromium Edgeにしてみたところ、Edgeのメニューなどは最初から日本語で、さらに上記で問題があったページも<html lang="ja">としたままで問題なく表示されました。
 ということはインストールに失敗していたか、表示言語の順番の設定が間違っていた可能性が高いですね。今、思うに表示言語の順番が、business版は日本語が一番上なのに対して、失敗パターンでは一番下だったので、これが悪さをしていたように思います。