Firefoxは <Url type="application/xhtml+xml"/> なOpenSearchに対応していない

Firefox や IE 7 以上はOpenSearchに対応しており、HTMLに次の記述を行うことで検索バーに追加可能となります。

<link rel="search" type="application/opensearchdescription+xml" href="http://example.com/content-search.xml" title="Content search" />

参考: Specifications/OpenSearch/1.1/Draft 4 - OpenSearch(www.opensearch.org)

実際に試してみようと思い、こんなXML(search.xml)を作成しました。

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>テスト検索</ShortName>
<Description>テスト用の検索です。</Description>
<Url template="http://localhost/testSearch?q={searchTerms}" type="application/xhtml+xml"/>
</OpenSearchDescription>

しかし、 IE 7 はうまくいったのですが、 Firefox 3.6 で「Firefoxは次の場所から検索エンジンをダウンロードできませんでした:」というエラーが。

オリジナル画像
図1Firefoxの「ダウンロード失敗」ダイアログ

調べてみると、Url要素のtype属性に関してこんな文書が。

Firefox がサポートしている URL タイプは 2 つです:

type="text/html" は実際の検索結果そのものの URL を設定するために使われます。

type="application/x-suggestions+json" は検索サジェストを得るために使われる URL を設定するために使われます。

Creating OpenSearch plugins for Firefox - MDC(developer.mozilla.org)

うは、「application/xhtml+xml」はダメなのですか! 仕方なく、実際のMIMEタイプとは異なる「text/html」を指定しましたが、ちょっと気持ち悪いですね。逆に、「application/xhtml+xml」なコンテンツを表示できないIEでエラーが起こらないというのがなんとも…。