Чтобы исправить эту проблему мы можем сделать одну из двух вещей. Самый простой способ, особенно если скрипт содержит более одной или двух строчек, вынести этот скрипт в отдельный файл, тем самым опустошив содержимое тэга <script>.
Если же скрипт содержит одну или две строчки, то не имеет смысла выносить скрипт в отдельный файл, по этому вы пожелаете оставить содержимое тэгов <script>, при этом, указав валидатору игнорировать это содержимое. Мы это сделаем, разместив код скрипта внутри тэга CDATA. Это выглядит так:
<script type="text/javascript">
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>
Закомментировать тэг CDATA скрыт от старых браузеров, не вызывает ошибок при проверке на валидность, а также корректно интерпретируется браузером.
CDATA позволяет обойти проблемы с символами
<, &, ]]>, ––
Это касается и внутреннего содержимого тега <style>