some ideas from https://github.com/GoogleChrome/lighthouse/pull/12065#discussion_r574030711 we could do a minor rethink of the shape and types. * idea for imageElement.cssSizing obj width width/height props.. obj is appropriately null/undefined if skipped etc. * obj could include the naturalWidth bits as well and be fetchedDimensions or we keep 'em separate. * maybe same idea for attributeWidth/etc as those don't make sense for isCss images? * naturalWidth/naturalHeight is in a similar but not quite the same situation as cssWidth/cssHeight after https://github.com/GoogleChrome/lighthouse/pull/12065 * to add to the null/undefined confusion, don't forget the return value of el.getAttribute('notASetAttribute') * '' is a bad value for attribute* for css. and also bad for html images.. should fall through to null, as getAttribute dictates.
some ideas from #12065 (comment)
we could do a minor rethink of the shape and types.