On Mon, 21 May 2012 19:36:22 -0500, Mathew Marquis <m...@matmarquis.com> wrote:

<picture> in its current form is unable to support bandwidth-based negotiation well (and that's not simply a matter of adding bandwidth media query) and has no mechanism to specify scaling factor for intrinsic sizes of images.

Is there currently any documentation explaining how bandwidth is better handled by `srcset`? Seeing as any discussion around bandwidth is almost entirely theoretical, I have a hard time understanding where bandwidth concerns preclude one approach or the other.

No, and bandwidth proposal for srcset isn't fleshed out yet.

My — theoretical — take on this is that it's easier and safer to declare image sizes (e.g. in KB) and let UA figure out which ones it wants, than to add a bandwidth media query.

Reasons are:

- MQ model of matching current state is not suited for variable thing like bandwidth.

- MQ would require somehow explicitly quantifying bandwidth, e.g. in mbps, and exposing that accurately seems to me harder than having less exposed/less sophisticated logic in UAs like picking smallest images when UA is on 2G mobile network. UA could experiment with different mechanisms and refine their algorithms over time.


Explicit bandwidth negotiation may need to wait for green light from implementers. There's a risk that if initial solution is implemented poorly, authors will be forced to use fake/exaggerated values to get desired behavior, and that will poison the feature.


I hope that image resolution negotiation (1x/2x) may be a testbed for bandwidth negotiation. It can be safely assumed that 2x images are significantly larger than 1x images, so bandwidth-constrained UAs can opt to always download 1x images.

If it turns out that this is very useful, and that 1x images are still too large, then we may add more features for bandwidth negotiation.

Or perhaps bandwidth will increase fast enough that it won't be a significant problem by the time implementations reach users, or maybe high-dpi screens will become popular enough that 1x will become de-facto a low-bandwidth version, etc.

There’s a case to be made that few people implementing any form of “responsive images” solution will find a need to rely on an image’s intrinsic width, as doing so effectively negates any flexibility to begin with, which is almost entirely the point of either solution.

I don't understand how reliance on intrinsic size negates flexibility.

There’s no prior precedent this sort of thing—there’s no reason we can’t find a way to preserve an image’s intrinsic width using `picture`. I wonder if simply adding `width` and `height` attributes on the element (similar to `img`) might solve this, in the event that the author wants to rely on an intrinsic size instead of CSS?

I think that is a very good idea. Having option to do so is good for performance, as it avoids reflows.

--
regards, Kornel Lesiński

Reply via email to