A partial archive of discourse.wicg.io as of Saturday February 24, 2024.

A Standard for Favicons/Touch Icons Conformity & Interoperability


What is this about?
This is about the, seemingly, never-ending expanse of favicons / touch icons / tiles used in web apps and how their proprietary implementations are an unnecessary burden on web developers and web designers.

Who would be interested in it?
browser manufacturers, OS manufacturers, web developers, web designers

Why does it matter?
It matters because the current methods of implementing favicons/touch icons/tiles is getting really absurd. Apple, Android, and Windows all do implementation differently, amongst themselves and within themselves for different devices and os versions.

What kind of responses are you hoping for from the community?
My hope is that readers will find value in this topic and it gets pushed up for some deeper discussion. Either that or people tell me, “hey knucklehead just place a 5120x5120 schrödinger.ico in your site root and forget it.”


I think this is already addressed by the Web Manifest spec (see icons)


Ah! I didn’t know this existed, thanks for pointing me in the right direction. I assume this part in particular is what you’re referring to?

When multiple icon objects are available, a user agent can use the value to decide which icon is most suitable for a display context (and ignore any that are inappropriate).

But won’t this still be an issue having to create and upload multiple versions of a square 1:1 icon? EDIT or is this saying one could use one single image file with a rel=icon, and that’s now enough to serve as a favicon or save to home screen image? thx again.


You can use a .ico files to contain icons from 1x1 to 256x256 in a single container. Apple’s .icns file format support larger icons, but I don’t know how widely supported that is (i think Gecko supports it). So yes, we need a better icon format for the Web to contain multiple resources… or a general resource container… but having independent files is fine in a HTTP2 world. At least with the manifest, it gets rid of the meta tags.