whatwg / html

HTML Standard
https://html.spec.whatwg.org/multipage/
Other
8.03k stars 2.63k forks source link

Can't preload for type-switching <picture>s #6400

Open eeeps opened 3 years ago

eeeps commented 3 years ago

This was originally discussed when we were figuring out imgsrcset and imgsizes, but I encountered it again this week, and I thought it was worth documenting in its own issue.

Let's say I have the following <picture>

<picture>
  <source
    type="image/avif"
    srcset="a.avif"
  />
  <img
    src="a.jpg"
    alt="" />
</picture>

There's no way to preload just the AVIF, in browsers that support AVIF, and just the JPEG, in browsers that don't support AVIF. The best we can do right now is:

<link
  rel="preload"
  as="image"
  href="a.avif"
  type="image/avif"
/>

Which preloads the AVIF in browsers that support it, and doesn't preload the JPEG for anyone. Honestly this isn't the worst thing in the world, when preload is framed as an enhancement, but it is kind of a bummer that adopting a bleeding-edge image format forces a performance regression for older/non-supporting browsers.

annevk commented 3 years ago

I recommend duplicating this over at https://github.com/w3c/preload/issues/new, although this probably should be defined here eventually.