So why not just give the UA the characteristics and a template to use to build the file names itself? That way we still give the UA all the same information, but it is much less verbose and still solves all the same use cases. Thus: (The first src="" would be optional; its purpose is legacy fallback.) The algorithm for picking an image could be to sort the images by width, and remove all those that are narrower than the available width (except for the widest one if they're all too wide), then sort them by height and remove all those that are taller than the available (width except the tallest one if they are all too wide), then sort them by pixel density and remove all those that are for densities greater than the current one (except the lowest one if they are all greater), then remove all those that are for densities less than the current one (except the highest one if they are all lower), then of the remaining images pick the widest one, tie-breaking by picking the tallest one (that should leave just one possible file name).