the alternatives (gifs, frames advanced by JS) are even more bandwidth-heavy
If sites escalate to gifs or frames advanced by JS, I'll escalate to blocking gifs or JS.
Autoplaying video is not acceptable.
I like what Slack does for GIFs: there's some (not sure if configurable) size threshold above which the GIF won't auto-expand. This is something browsers could do in general.
That assumes the browser can know the image's content-length before loading the whole image, which unfortunately isn't always possible.
Yeah, that's fair, but is likely a corner case. How often do you see a finitely sized resource that doesn't get returned with a Content-Length response header? If push came to shove, a browser could simply stop reading & close the connection after consuming a certain number of bytes. GIFs are sequential things anyway, aren't they? I don't remember that detail.