OpenSearch プラグインを追加する external.AddSearchProvider() 、全ブラウザで廃止へ

公開日:

[OpenSearch](https://github.com/dewitt/opensearch)って今の認知度どんなものなんでしょうかね。「GitHub」「Twitter」「Can I use...」「国立国会図書館サーチ」など導入している著名サービスは多いですが、ユーザー側の認知度や活用度はそんなに高くないんじゃないかなあという気がします[要出典]。

OpenSearch は2006年の IE 7 や Firefox 2 で導入され、 Firefox 2 の動作がどうだったかはもう忘れてしまいましたが、 IE 7 ではウェブページに <link rel="search"> を埋め込む(github.com)[1]と、右上の検索欄の色が一部変化することでユーザーに OpenSearch の存在が通知されていました。当時からそれだけでは目立たないし、ユーザーは気付きにくいよなあという感触だったのですが、 IE 10 からはそれすらもなくなり、視覚的には一切の変化が起こらないという状況です。 Firefox の最新版(67)では今も検索欄の 🔎 アイコンに黄緑色の + マークが付きますが、やはり発見しにくいです。

一方、 JavaScript から操作できる API があり、以下のようにすることでページ内に OpenSearch 追加ボタンを配置することができました。

<button type="button" id="opensearch">OpenSearchを追加する</button>

<script>
if (window.external !== undefined) {
  document.getElementById('opensearch').addEventListener('click', function() {
    window.external.AddSearchProvider('https://example.com/opensearch.xml');
  });
}
</script>

ところが、ブラウザのサポート状況が芳しくなく、あまり使われていないという理由で2016年頃に Blink が AddSearchProvider() 機能を削除(groups.google.com)し、それに追従するように HTML 仕様でもObsolete features になってしまいました(github.com)

上記 JS コードは以前はPC用 Chrome でも動作していたと記憶していますが、現在では Firefox と IE でしか動きません。そしてFirefox でも廃止予定(www.fxsitecompat.com)だそうです。

個人的には OpenSearch の機能は好きで、自サイトでも東急電車 車歴表まどか書籍データベースに導入しているのですが、忘れ去られてゆく技術のような気がして残念です。

  • [1]OpenSearch の仕様が HTML 4.01 / XHTML 1.0 / XHTML 1.1 の時代に書かれたこともあって、 <head> 要素にprofile 属性(www.w3.org)を指定せよというのが時代を感じますね。