コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

faviconの仕様はHTML5から標準化されている

なんか仕様がブラウザによって違うけどどうなんでしたっけ、というメモ。 

faviconの生い立ち

faviconのはじまりは、ウェブブラウザであるMicrosoft Internet Explorer 5によってはじめて搭載された独自の(非HTML標準の)機能であった。ユーザーが任意のウェブサイトをお気に入りに登録するときに、ウェブブラウザは該当Webサイトのディレクトリから favicon.ico ファイルの存在を調べ、ある場合はこのファイルを該当Webサイトのアイコン画像として取り込む。それ以降にお気に入り一覧を表示する際、該当Webサイトについては一般的なWebアイコンではなく取り込んだアイコン画像が表示されるようになる。 - Favicon - Wikipedia

もともとは標準化から始まった規格ではなく、InternetExplorerが旗揚げをした規格。

HTML5と標準化

HTML5から標準化され、いろんな経緯があり、2019年の今は link 要素の icon で指定できるようになりました。

<link rel="icon" href="/favicon.ico">

shortcut icon だった時期もあったが、それも歴史的経緯という形で語られている ( 参考: HTML 5.2: 4.8. Links - 4.8.6.5. Link type "icon"

標準化されていないもの

iOSSafariショートカット用 apple-touch-icon

記述例は以下

<link rel="apple-touch-icon" href="/custom_icon.png">

画像形式がどういうレギュレーションなのか…みたいのは公式にもちゃんと書かれておらず、pngしかダメな雰囲気(参考: Configuring Web Applications

Android Chromeはウェブアプリマニフェストも対象の様子

Android Chromeは従来のlink要素での指定でもOKだが、直近だとPWAには必須の manifest.json でも設定値がある。

詳しくは ウェブアプリ マニフェスト  |  Web  |  Google Developers 参照のこと。

関連リンク