<div class="container">
<img src="photo.jpg" alt="A Photo"/>
</div>
According to the picture element specification:
Zero or more source elements, followed by one img element, optionally intermixed with script-supporting elements.
The picture element is a container which provides multiple sources to its contained img element... It represents its children.
Therefore, is it safe to assume that the following HTML is more semantically correct?
<picture>
<img src="photo.jpg" alt="A Photo"/>
</picture>
The semantically corect contaner for an image element is the figure element - documentation - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure
This element has an optional figcaption element that can be either the first child or the last child - to provide a caption (contextual text related to the image).
as the first child (above the image
As the last child - below the image
Note that you can style the figure and contained figcaption and img elements to be whatever style you want.