Stray end tag img
Asked Answered
U

3

17

While validating markup through W3C validator service got this below error

Stray end tag img

Code is like below

<a title="text" href="url">
<img class="text" src="imgSrc" alt="Text"></img>
</a>

What does it means ? How we can avoid it ?

Upolu answered 9/6, 2014 at 8:38 Comment(1)
You should always specify which doctype string (if any) appears at the start of the page, since this dictates the mode of validation.Nightrider
F
21

If your document is XHTML compliant then you have to close img tag with <img src="image.jpg"/>, not with <img>...</img>.

If your document is HTML5 compliant, then you do not need the /> part, only use <img src="image.jpg">

And if you wonder what means that document should be XHTML or HTML5 compliant - this is the very first line of your HTML page, the so called document type definition:

<!DOCTYPE HTML> for HTML5 and

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> for XHTML 1.0 Transitional

NOTE: The <!DOCTYPE> declaration is mandatory (if you want your pages to validate with an HTML validator) and should always be the first thing in an HTML document.

NOTE: Although a document type definition is technically not required for a functioning web page, it is good practice to always include it in your code. As you learn to build web pages, get into the habit of always including the document type definition in your code.

More reading:

Fermat answered 9/6, 2014 at 8:41 Comment(1)
<img ...>...</img> is valid XHTML, just not recommended for web pages for compatibility reasons. Clearly the problem does not appear when validating against XHTML.Nightrider
R
5

Basically, it means that you should remove the </img>, as it's not needed for the <img> tag:

<img class="text" src="imgSrc" alt="Text">

Alternatively, just for reference purposes, there's also the XHTML way of "closing" the tag:

<img class="text" src="imgSrc" alt="Text" />
Repository answered 9/6, 2014 at 8:39 Comment(0)
N
3

As such, “Stray end tag...” means just that an end tag is not allowed in the context where it appears. As the validator’s explanation says: “The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.”

From the symptoms (the error message string), we can infer that you are validating against HTML5 in HTML serialization. This means that no end tag is allowed for an img element, since the start tag is treated as also closing the element (“implicitly closed element”).

Thus, the solution is to either remove the </img> tag or to validate against HTML5 in XHTML serialization. The latter is not practical for web pages, but if you are using HTML for something else, you should validate by URL referring to a resource that is served with an XML content type.

Nightrider answered 9/6, 2014 at 11:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.