Sorry, I just don’t understand what point you’re making. From the point of view of the spec, ![..]() is an image with an image description, title, and destination. It’s not an “just an HTML image,” though of course it can be rendered as one.
Going back to the original example,
](/url2)
there are really three different defensible choices the spec could make:
- Allow that this is an image, and think of the
[...]as a container for plain text, so that the image description is:foo [bar](/url). Renders in HTML as:
<img src="/url2" alt="foo [bar](/url)" />. - Allow that this is an image, and think of the
[...]as a container for formatted inlines, so that the image description is a structured object consisting of the stringfoofollowed by a link with link textbarand destination/url. Renders in HTML as:
<img src="/url2" alt="foo bar" />. - Forbid links in images, so that this isn’t parsed as an image at all. Renders in HTML as:
.
I favor 2 over 1 because of the close syntactic analogy between [...]() and ![...](), and because we need to parse inline content anyway to get precedence right.
I favor 2 over 3 because there seems no good reason for disallowing image descriptions to contain links. (Surely someone who wrote example 459 would be less surprised by output 2 than output 3.)