picture-element
Use with an fallback
A <picture> without an <img> fallback renders nothing in browsers that don't support <picture> (IE11) or don't support any of the <source> formats. The <img> child is also where alt, width, height, loading, and fetchpriority attributes live—these apply regardless of which source the browser selects.
Quick Reference
- Every
<picture>must end with an<img>element—it is the required fallback and carriesalt <source>elements are evaluated top-to-bottom; the first match wins- Use
type="image/avif"andtype="image/webp"on<source>for format selection - The
<img src>should point to a JPEG or PNG—the universal fallback for all browsers
Check
Scan all elements in this codebase. Verify: 1) Every has an as its last child (required fallback). 2) The has an alt attribute. 3) The has width and height attributes. 4) elements appear before the child. 5) Each has either a srcset attribute or a media attribute. 6) format-selecting elements have a type attribute (type="image/avif", type="image/webp"). Flag any missing an child or with not as the last child.
Fix
For each element with issues: 1) If missing : add as the last child. 2) If is not last: move it to after all elements. 3) If elements lack type attributes for format selection: add type="image/avif" or type="image/webp". 4) Verify the points to a universally supported format (JPEG or PNG) as the ultimate fallback. Show the corrected markup.