Skip to main content

Day 80 of 100DaysOfSpec, img element, contd.

I am reading and taking notes on the HTML specifications for 100 days as part of #The100DayProject. Read the initial intent/backstory. I am a Microsoft employee but all opinions, comments, etc on this site are my own. I do not speak on behalf of my employer, and thus no comments should be taken as representative of Microsoft's official opinion of the spec. Subsections not listed below were read without comment.

Currently reading 4.7 Embedded content

UAs = User agents = Browsers, etc.

img element, contd.

Current pixel density:

  • Initially undefined.
  • “When an img element has a current pixel density that is not 1.0, the element's image data must be treated as if its resolution, in device pixels per CSS pixels, was the current pixel density.” So a 200px square image on a 2x screen is interpreted to be a 100px square image (hence, a blurry image if you choose to show it scaled to 200px square).

Didn’t know that the Document object stores a list of available images. UAs can copy these listed images to other documents (or remove). This would effectively be image caching so that an image doesn’t need to be fetched every time you encounter it.

There’s a looooong algorithm for update an image element’s image data. Interestingly, everything gets reset when you do this: the img element gets put back in the unavailable state, and all its data is wiped. So switching out the src may not be as performant as you might think (anecdotally, it can feel noticeable to the end user that “work” is being done, a flash or something similar).

  • UAs can’t support non-image files in the img element. But…the spec doesn’t define what image types are. Alright, cool. As an aside there’s definitely some proprietary stuff going on with image file types.
  • They also can’t run executable code in an image resource. Security!
  • If the src file is multi-page, like a PDF, only the first page is shown. I didn’t know you could use a PDF file in an img element…but depending on how big the file is that seems wasteful from a weight perspective.


My blog uses Webmentions. Responses from sites which likewise support Webmentions, such as Twitter or people’s personal sites, will show up here.

No Webmentions have been sent to this post yet.