Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In <head>, which comes first: <meta> or <title>?

In head, which comes first: meta or title?

I was reading this:

This [meta] tag should be the first in the HEAD section, because the server will process the text above as ASCII with no specific format that it only known once the tag is analyzed.

http://www.xul.fr/en/html5/html.php

Does the standard specify the order?

Are there disadvantages in either order?

like image 582
XP1 Avatar asked Apr 06 '11 20:04

XP1


People also ask

Does head come before title?

It should be the first element inside an html element. A title element is required within the head element.

Where do I put meta tags in my head?

<meta> tags always go inside the <head> element, and are typically used to specify character set, page description, keywords, author of the document, and viewport settings.

Does meta charset go in head?

meta tags live within the head tag of the HTML document. The head tag is used for configurating the HTML file.

Does title go in head?

The title tag has to be in the head tag. HTML spec: "Every HTML document must have a TITLE element in the HEAD section."


2 Answers

As all of the other answers have already indicated, it usually doesn't matter. Here's a bit more about when it matters and why.

First of all, since you asked about standards, you might like to know that the text you are quoting comes from the W3C recommendations for HTML 4:

http://www.w3.org/TR/html4/charset.html#h-5.2.2

There is a similar discussion in the HTML 5 draft standard:

http://dev.w3.org/html5/markup/syntax.html#encoding-declaration

The underlying issue here is that the browser has to use some character set encoding to start processing the document it receives from the server. So, what happens if starts with one character set and then the <meta> tag tells it to use something else? The answer is, it depends...

The server should specify the character set in the Content-Type field of the HTTP response header. If it does, the browser is supposed to use that character set and ignore any character set that may be indicated in a <meta> tag in the document being served.

Unfortunately, many servers don't provide this information. In that case, the browser has to assume something to get started. The something has to be "ASCII-compatible", meaning that it agrees with ASCII for any characters in the ASCII range. If the document specifies the character set in a <meta> tag, the browser will start using that character set. So, if your title came before that, it has already been interpreted as ASCII, which could be wrong, depending on what was in the title.

To sum up: if the server does not specify the encoding, and the title is encoded in something other than ASCII, then you need to put the <meta> tag that specifies the charset first. Otherwise, it doesn't matter. So, to be safe, it makes sense to put the <meta> tag for the character set first.

like image 72
Joel Lee Avatar answered Sep 20 '22 21:09

Joel Lee


The order of the tags is almost completely irrelevant.

That quote is talking about <meta http-equiv="content-type">.
If you use that tag, it should come first, so that the browser knows which encoding to use to parse the rest of the document.

As long as you don't have any non-ASCII characters before it, its location doesn't matter.

like image 35
SLaks Avatar answered Sep 24 '22 21:09

SLaks