[wp-trac] [WordPress Trac] #40469: How to remove full size image path from srcset and more intelligent choices in srcset candidate list

WordPress Trac noreply at wordpress.org
Wed Jun 28 12:38:08 UTC 2017


#40469: How to remove full size image path from srcset and more intelligent choices
in srcset candidate list
-----------------------------+------------------------------
 Reporter:  lisota           |       Owner:
     Type:  enhancement      |      Status:  new
 Priority:  normal           |   Milestone:  Awaiting Review
Component:  Post Thumbnails  |     Version:  4.7.3
 Severity:  normal           |  Resolution:
 Keywords:                   |     Focuses:
-----------------------------+------------------------------

Comment (by DigiP):

 I don't work on the WP team, but see here - https://css-tricks.com
 /responsive-images-youre-just-changing-resolutions-use-srcset/ - why you
 would want some larger images in there, even when you only needed a 300px
 image.

 If you take into account newer screens with even larger DPI than retina
 displays, sizes should be double and triple the normal image size to
 effectively be used on screens such as retina, High-dpi IPS, or 4k, etc.
 The browser, will pick the best image needed(or should in more modern
 browsers) while gracefully falling back on the normal 300px image you set,
 so if you only need 300px wide, you should also include at a minimum, the
 600px as well for retina, and possibly larger sets than that for higher
 res DPI screens. This is more future proofing than total solution, but you
 also have the option of manually adding html markup with set sizes, and
 you can even add the srcset yourself manually, which should override WP's
 settings to add all of them, if I am not mistaken.

 Also to quote here- https://make.wordpress.org/core/2015/11/10/responsive-
 images-in-wordpress-4-4/ -
 "Note that for compatibility with existing markup, neither srcset nor
 sizes are added or modified if they already exist in content HTML." which
 is my thinking of, instead of adding media button to insert, copy the
 uploaded images URL, and manually add the HTML to override.

 Replying to [ticket:40469 lisota]:
 > On our site, we have a number of image sizes registered in WP, in
 addition to the default ones, for a variety of purposes. A large one to
 fill the width of our column, smaller ones for some custom image output,
 etc.
 >
 > The result of this is a sloppy srcset candidate list filled with URLs
 that may make no logical sense in a particular location in the markup. WP
 does have an upper size limit to prevent giant images from being in
 srcset, and also matches aspect ratio, but nothing else.
 >
 > I have been able to hack together a filter using
 `wp_calculate_image_srcset_meta` to unset various sizes in the `sizes`
 array. But if the full size of the image is smaller than the
 `max_srcset_width` parameter, it still gets included, and there should be
 some way to remove it. The full size of the image is not part of the
 `sizes` array in image_meta.
 >
 > It actually points to a larger issue with WP srcset implementation,
 which is that is mindlessly fills the HTML with srcset candidates that in
 many instances would never be used, adding lots of excess markup that a
 developer wouldn't add.
 >
 > For example, we have a 300px wide sidebar where we output an image. The
 sidebar is never larger than 300px, and even is that size in our
 responsive site on mobile. The srcset outputs a 150px, 200px, 300px,
 600px, 768px and 1240px, based on the sizes registered in our installation
 and the built-in ones. Logisitically, all that is really needed for this
 layout is 300px and probably the 600px version. We have all sorts of
 examples like this where the srcset includes either smaller or larger
 sizes than are physically possible in a given layout.
 >
 > Obviously WordPress cannot know how a site is styled, but it feels like
 there needs to be a more robust way of dealing with this. It is not a
 great feature to load up on unneeded markup.
 >
 > As a theme developer, I would like the ability to constrain the srcset
 candidate list in an intelligent way each time I output img tags into the
 markup. It is easy for me to say "at this location, this image will never
 be smaller than 300px, so don't give me anything smaller, and will also
 never be bigger than 300px, so only go up to a 2x version and skip
 anything larger.
 >
 > I'm guessing this is exacerbated by a variety of themes and pluging that
 may load up on extra registered image sizes as well.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/40469#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list