Проблема проверки HTML с ‹head›

Я выполнил HTML-проверку W3C на веб-сайте клиента, и он говорит, что я закрыл тег заголовка слишком рано. Это выдает ошибки о том, что я разместил метатеги и теги ссылок вне заголовка.

Может кто-нибудь посоветовать, что не так с моими заголовками?

ВНИМАНИЕ! Сайт для взрослых NSFW

ПРОВЕРКА: http://validator.w3.org/check?uri=http%3A%2F%2Fwww.hush-hush.com%2F1stflick%2F&charset=%28detect+automatically%29&doctype=Inline&group=0&ss=1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Nude Teen Videos | 1st Flick - Week 624</title>

    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-22415623-1']);
        _gaq.push(['_trackPageview']);
        (function() {var ga = document.createElement('script');
        ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
        })();
    </script>

    <meta name="google-translate-customization" content="c6d5b23c329fcd9b-06d3de73510dc63e-g0ea7962122bd05dd-11"></meta>

    <!-- Start Alexa Certify Javascript -->
        <script type="text/javascript">_atrk_opts = { atrk_acct:"9AYbi1acVE0008", domain:"hush-hush.com",dynamic: true};
            (function() { var as = document.createElement('script');
            as.type = 'text/javascript';
            as.async = true;
            as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js";
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(as, s);
            })();
        </script>
        <noscript>
            <img src="https://d5nxst8fruw4z.cloudfront.net/atrk.gif?account=9AYbi1acVE0008" style="display:none" height="1" width="1" alt="" />
        </noscript>
    <!-- End Alexa Certify Javascript -->

    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
    <link rel="stylesheet" href="/css/screen.css" type="text/css" />
    <!--[if IE 6]>
        <link rel="stylesheet" type="text/css" href="/css/ie6.css" media="screen"/>
        <script defer type="text/javascript" src="/js/pngfix.js"></script>
    <![endif]-->
    <!--[if IE 7]>
        <link rel="stylesheet" type="text/css" href="/css/ie7.css" media="screen"/>
    <![endif]-->

    <script type="text/javascript" src="/js/script.js"></script>

    <link rel="alternate" title="Hush-Hush Galleries: News &amp; Updates" href="http://www.hush-hush.com/feed.xml" type="application/rss+xml" />
    <meta name="Description" content="1st Flick amateur teen video download. Submit vid to win password or cash."></meta>
    <meta name="KEYWORDS" content="movies, movie, video, videos, softcore, 1st Flick, teen, download, password, bedroom, amateur, adult, voyeur, downblouse, nipple, nipple slip, nip slip, upskirt, hidden camera, topless, celebrity nude"></meta>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
</head>
<body>
...

person Crazar    schedule 14.11.2013    source источник
comment
На хрена это? порно САЙТ? хахаха   -  person Albert Laure    schedule 14.11.2013
comment
Полагаю, у порнолюдей тоже есть проблемы. У вас есть метатеги после закрытия заголовка?   -  person Matthew Johnson    schedule 14.11.2013
comment
хм..выглядит очень интересно..   -  person Vainglory07    schedule 14.11.2013
comment
@MatthewJohnson нет метатегов после закрытия заголовка.   -  person Crazar    schedule 14.11.2013


Ответы (3)


Элементы <noscript> не могут быть дочерними элементами <head>. Они могут появляться только внутри <body> элементов.

person Jim    schedule 14.11.2013
comment
Спасибо. Это странно, потому что Alexa инструктирует включать их фрагмент во все заголовки страниц. Однако не будет ли тег ‹noscript› преждевременно закрывать заголовок? - person Crazar; 14.11.2013
comment
В HTML начальный и конечный теги для элементов <head> и <body> являются необязательными. Если синтаксический анализатор встречает элемент, который не может присутствовать в элементе <head>, он делает вывод, что элемент <head> должен был закончиться, а элемент <body> должен был начаться. Затем, когда он достигает элемента, который может появиться только в элементе <head>, возникает ошибка. Однако это не HTML, это XHTML, у которого нет необязательных начальных или конечных тегов, а это означает, что как только синтаксический анализатор увидит элемент, который не принадлежит элементу <head>, возникает ошибка. - person Jim; 14.11.2013
comment
Итак, чтобы ответить на ваш вопрос, нет, в этой ситуации он не закрывает заголовок преждевременно. Это ошибка, которую вы получаете, когда используете более гибкий HTML. Ошибка, возникающая при использовании XHTML, возникает раньше. В любом случае, совет Alexa плохой, и вам не следует использовать такой код. - person Jim; 14.11.2013

Почему бы вам просто не переместить <noscript> в тело?

person Scott Grodberg    schedule 14.11.2013

В HTML 4.01 (или XHTML 1.0) noscript element нельзя использовать в headэлемент.

В HTML5 это будет разрешено:

Элемент noscript
[…]
Контексты, в которых может использоваться этот элемент:
В элементе head документа HTML, если есть нет предков noscript элементов.

Но обратите внимание, что если он используется в head, он не должен содержать никаких других элементов, кроме link, style или meta. Таким образом, вы не можете использовать элемент ìmg как дочерний.

В XHTML5 это запрещено.


Однако будет ли тег <noscript> преждевременно закрывать заголовок?

Наверное. Если синтаксический анализатор находит элемент noscript, он предполагает, что body должен был начаться. Но, конечно, может все работать так, как задумано (за исключением того, что оно недействительно).

Я предполагаю, что должно работать нормально, чтобы использовать ваш noscript в файле body.

person unor    schedule 14.11.2013