Consider avoiding viewport values that prevent users from resizing documents как исправить

В чем ошибка в валидаторе?


вопрос

<meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width">

Warning: Consider avoiding viewport values that prevent users from resizing documents.


user-scalable=no — отключает возможность масштабирования на телефонах.
Кроме того, «initial-scale=1.0» и «maximum-scale=1.0» имеют одинаковые значения, что также приведёт к невозможности увеличения/уменьшения размера.

Валидная строка:

<meta name="viewport" content="initial-scale=1.0, width=device-width">

Проверка валидности HTML кода сайта обязательно входит в мой технический аудит. Но не нужно переоценивать значимость ошибок валидации на SEO продвижение — она очень мала. По любой тематике в ТОП будут сайты с большим количеством таких ошибок и прекрасно себе живут.

НО! Отсутствие технических ошибок на сайте является фактором ранжирования, и поэтому пренебрегать такой возможностью не стоит. Лучше исправить, хуже точно не будет. Поисковики увидят ваши старания и дадут маленький плюсик в карму.

Читайте также: кем и когда был введен гипертекст

Как проверить сайт на валидность HTML кода

Проверяется валидация кода сайта с помощью онлайн сервиса W3C HTML Validator. Если есть ошибки, то сервис выдает вам список. Сейчас я разберу самые распространенные типы ошибок, которые я встречал на сайтах.

  • Error: Duplicate ID min_value_62222

Error Duplicate ID min_value_62222

И за этой ошибкой такое предупреждение.

  • Warning: The first occurrence of ID min_value_62222 was here

Warning The first occurrence of ID min_value_62222 was here

Это значит, что дублируется стилевой идентификатор ID, который по правилам валидности html должен быть уникальным. Вместо ID для повторяющихся объектов можно использовать CLASS.

Исправлять это желательно, но не очень критично. Если очень много таких ошибок, то лучше исправить.

Аналогично могут быть еще такие варианты:

  • Error: Duplicate ID placeWorkTimes
  • Error: Duplicate ID callbackCss-css
  • Error: Duplicate ID Capa_1

Следующее очень распространенное предупреждение.

  • Warning: The type attribute is unnecessary for JavaScript resources

Warning The type attribute is unnecessary for JavaScript resources

Это очень частая ошибка при проверке валидации сайта. По правилам HTML5 атрибут type для тега script не нужен, это устаревший элемент.

Аналогично такое предупреждение для стилей:

  • Warning: The type attribute for the style element is not needed and should be omitted

Warning The type attribute for the style element is not needed and should be omitted

Исправлять эти предупреждения желательно, но не критично. При большом количестве лучше исправить.

  • Warning: Consider avoiding viewport values that prevent users from resizing documents

Warning Consider avoiding viewport values that prevent users from resizing documents

Это предупреждение показывает, что нельзя увеличить размер страницы на мобильном или планшете. То есть пользователь захотел посмотреть поближе картинки или очень маленький текст и не может этого сделать.

Я считаю это предупреждение очень нежелательным, для пользователя неудобно, это минус к поведенческим. Устраняется удалением этих элементов — maximum-scale=1.0 и user-scalable=no.

  • Error: The itemprop attribute was specified, but the element is not a property of any item

Error The itemprop attribute was specified, but the element is not a property of any item

Это микроразметка, атрибут itemprop должен находиться внутри элемента с itemscope. Я считаю эту ошибку не критичной и можно оставлять как есть.

  • Warning: Documents should not use about:legacy-compat, except if generated by legacy systems that can’t output the standard doctype

Warning Documents should not use about legacy-compat, except if generated by legacy systems that can't output the standard doctype

Строка about:legacy-compat нужна только для html-генераторов. Здесь нужно просто сделать но ошибка совсем не критичная.

  • Error: Stray end tag source

Error Stray end tag source

Если посмотреть в коде самого сайта и найти этот элемент, видно, что одиночный тег <source> прописан как парный — это не верно.

одиночный тег source

Соответственно, нужно убрать из кода закрывающий тег </source>. Аналогично этой ошибке могут встречаться теги </meta> </input> </noscript>. Эту ошибку нужно исправлять.

  • Error: An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images

Error An img element must have an alt attribute, except under certain conditions For details, consult guidance on providing text alternatives for images

Все картинки должны иметь атрибут alt, я считаю эту ошибку критичной, ее нужно исправлять.

  • Error: Element ol not allowed as child of element ul in this context. (Suppressing further errors from this subtree.)

Error Element ol not allowed as child of element ul in this context Suppressing further errors from this subtree

Здесь не верно прописана вложенность тегов. В <ul> должны быть только <li>. В данном примере эти элементы вообще не нужны.

неправильная вложенность тегов

Аналогично могут быть еще такие ошибки:

  • Element h2 not allowed as child of element ul in this context.
  • Element a not allowed as child of element ul in this context.
  • Element noindex not allowed as child of element li in this context.
  • Element div not allowed as child of element ul in this context.

Это все нужно исправлять.

  • Error: Attribute http-equiv not allowed on element meta at this point

Error Attribute http-equiv not allowed on element meta at this point

Атрибут http-equiv не предназначен для элемента meta, нужно убрать его или заменить.

Аналогичные ошибки:

  • Error: Attribute n2-lightbox not allowed on element a at this point.
  • Error: Attribute asyncsrc not allowed on element script at this point.
  • Error: Attribute price not allowed on element option at this point.
  • Error: Attribute hashstring not allowed on element span at this point.

Здесь также нужно или убрать атрибуты n2-lightbox, asyncsrc, price, hashstring или заменить их на другие варианты.

  • Error: Bad start tag in img in head

Error Bad start tag in img in head

Или вот так:

  • Error: Bad start tag in div in head

Error Bad start tag in div in head

Тегов img и div не должно быть в <head>. Эту ошибку нужно исправлять.

  • Error: CSS: Parse Error

Error CSS Parse Error

В данном случае здесь не должно быть точки с запятой после скобки в стилях.

не должно быть точки с запятой в стилях

Ну такая ошибка, мелочь, но не приятно) Смотрите сами, нужно убирать это или нет, на продвижение сайта никакой совершенно роли не окажет.

  • Warning: The charset attribute on the script element is obsolete

Warning The charset attribute on the script element is obsolete

В скриптах уже не нужно прописывать кодировку, это устаревший элемент. Предупреждение не критичное, на ваше усмотрение.

  • Error: Element script must not have attribute charset unless attribute src is also specified

Error Element script must not have attribute charset unless attribute src is also specified

В этой ошибке нужно убрать из скрипта атрибут charset=»uft-8″, так как он показывает кодировку вне скрипта. Я считаю, эту ошибку нужно исправлять.

  • Warning: Empty heading

Warning Empty heading

Здесь пустой заголовок h1. Нужно удалить теги <h1></h1> или поместить между ними заголовок. Ошибка критичная.

  • Error: End tag br

Error End tag br

Тег br одиночный, а сделан как будто закрывающий парный. Нужно убрать / из тега.

одиночный тег br

  • Error: Named character reference was not terminated by a semicolon. (Or & should have been escaped as &.)

Error Named character reference was not terminated by a semicolon

спецсимволы html

Это спецсимволы HTML, правильно нужно писать &copy; или &amp;copy. Лучше эту ошибку исправить.

  • Fatal Error: Cannot recover after last error. Any further errors will be ignored

Fatal Error Cannot recover after last error Any further errors will be ignored

Это серьезная ошибка:

код после html

После </html> ничего вообще не должно быть, так как это последний закрывающий тег страницы. Нужно удалять все, что после него или переносить выше.

  • Error: CSS: right: only 0 can be a unit. You must put a unit after your number

Error CSS right only 0 can be a unit You must put a unit after your number

Нужно значение в px написать:

значения в коде

Вот аналогичная ошибка:

  • Error: CSS: margin-top: only 0 can be a unit. You must put a unit after your number

Error CSS margin-top only 0 can be a unit You must put a unit after your number

  • Error: Unclosed element a

Error Unclosed element a

<a></a> — это парный тег, а здесь он не закрыт, соответственно, нужно закрыть. Ошибку исправлять.

  • Error: Start tag a seen but an element of the same type was already open

Где-то раньше уже был открыт тег <a> и не закрыт, откуда идет следующая ошибка.

  • Error: End tag a violates nesting rules

Здесь отсутствие закрывающего тега </a> нарушает правила вложенности, откуда идет уже фатальная ошибка.

  • Fatal Error: Cannot recover after last error. Any further errors will be ignored

Это частный случай, так конечно нужно смотреть индивидуально.

  • Warning: The bdi element is not supported in all browsers. Please be sure to test, and consider using a polyfill

Warning The bdi element is not supported in all browsers Please be sure to test, and consider using a polyfill

Элемент bdi не поддерживается во всех браузерах, лучше использовать стили CSS, если нужно изменить направления вывода текста. Это не критичное предупреждение.

  • Error: A document must not include both a meta element with an http-equiv attribute whose value is content-type, and a meta element with a charset attribute

Error A document must not include both a meta element with an http-equiv attribute whose value is content-type and a meta element with a charset attribute

Здесь 2 раза указана кодировка:

двойная кодировка

Нужно убрать <meta charset=»UTF-8″ /> в начале. Ошибку лучше исправить.

  • Error: Bad value callto:+7 (473) 263-22-06 for attribute href on element a: Illegal character in scheme data: space is not allowed

Error Bad value callto 7 495 263-22-06 for attribute href on element a Illegal character in scheme data space is not allowed

Здесь запрещены пробелы для атрибута href, нужно писать так — callto:74732632206. Ошибку лучше исправить, но не критично.

  • Error: CSS: max-width: Too many values or values are not recognized

Error CSS max-width Too many values or values are not recognized

И аналогичная ошибка:

  • Error: CSS: max-height: Too many values or values are not recognized

Error CSS max-height Too many values or values are not recognized

В данных случаях для max-width: и max-height: не поддерживается свойство auto. Должно быть конкретное значение в px, % и других единицах измерения для CSS. В целом, эти ошибки не критичные.

  • Error: The for attribute of the label element must refer to a non-hidden form control

Error The for attribute of the label element must refer to a non-hidden form control

Атрибут label должен относиться к фрагменту id с идентификатором «control-label». То есть нужно в код формы вставить кусок id=»control-label». Тоже ошибка не критичная.

id элемент в коде

  • Error: Legacy encoding windows-1251 used. Documents must use UTF-8

Error Legacy encoding windows-1251 used Documents must use UTF-8

Кодировка windows-1251 уже устарела, сейчас везде используется utf-8. По хорошему нужно делать сайт изначально на utf-8, иначе он или отдельные страницы могут отображаться кракозябрами. Но это не критичная ошибка. Если у вас с сайтом все ок, то можно оставить, как есть.

Вот еще похожая ошибка:

  • Error: Bad value text/html; charset=windows-1251 for attribute content on element meta: charset= must be followed by utf-8

Error Bad value text html charset windows-1251 for attribute content on element meta charset must be followed by utf-8

Для атрибута content кодировка должна быть utf-8. Смотрите сами, хотите исправлять это или нет, не критично.

Заключение

После того, как сделана полная проверка, я составляю файл с грубыми ошибками и передаю его моим программистам или технической поддержке клиента. Кстати, почитайте интересную историю, как я искал себе программиста.

Итак, теперь вы знаете, как проверить валидацию сайта с помощью онлайн сервиса W3C HTML Validator, но как я сказал валидность кода далеко не самый важный фактор ранжирования, скорее всего после исправления ошибок вы не заметите существенной разницы в позициях или трафике сайта. Но я считаю, что все равно нужно привести сайт в порядок, и надеюсь, моя статья вам в этом помогла.

0
0
голоса

Рейтинг статьи

A <meta> element using the http-equiv attribute has been found in an unexpected place of the document. It should appear inside the <head> section, like in this example:

<!DOCTYPE html>
<html lang="">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Test</title>
  </head>
  <body>
    <p>Content of the page</p>
  </body>
</html>

The http-equiv attribute is used in web pages to simulate an HTTP response header. While HTTP response headers can be set from the server, not everyone has access to the server configuration, so an alternative is using <meta http-equiv> to define settings that would otherwise require setting an HTTP response header.

The most popular use of http-equiv are defining the content-type of the document as in the example above, although in HTML5 it’s preferred to use this instead:

<meta charset="UTF-8">

Another popular use of the http-equiv is setting an automatic reload of the web page, for example this will have the browser reload the page every 60 seconds:

<meta http-equiv="refresh" content="60">

However, refreshing a page automatically is a bad practice regarding accessibility, as users do not expect a page to do that, and doing so will move focus back to the top of the page, which may create a frustrating or confusing experience.

Other values that can be used with the http-equiv attribute include:

  • content-security-policy
  • content-length.
  • content-encoding
  • default-style
  • window-target

Самая частая проблема, которая мешает нормальному восприятию сайта — ограничение возможностей пользователей со стороны разработчика. Например, принудительное ограничение возможности приближение текста статьи и фотографий в ней. Чаще всего это происходит из-за настройки темы WordPress, об особенностях работы которой начинающий вебмастер имеет весьма расплывчатое понятие.

Как бы там ни было, если проблема не лежит в каких-то сомнительных плагинах и иных «костылях», то самый типичный способ «устранить этот баг» — отправиться в редактор тем и изменить настройки viewport. Об этом я расскажу ниже, надеюсь, этот способ вам поможет!

Мета-тег viewport применяется для оптимизации сайтов, просматриваемых на мобильных устройствах. Проблемы с приближением возникают из-за его неправильной настройки или оптимизации под веб-приложения, не предполагающих увеличение элементов или интерфейса со стороны пользователя.

Как настроить viewport для мобильной версии сайта на CMS WordPress?

Открыть редактор тем. Для этого зайти на сайт и найти раздел «Внешний вид». Именно там в консоли CMS WordPres версии 5.4 находится «Редактор тем». В редакторе выбрать активную тему (в моём случае это «Ashe Pro») и найти в ней «Header.php». В «Header.php» в самом верху (между <head> и </head>) будет находиться строка, имеющая следующий вид: «<meta name=»viewport» />«. Если этой строки нет, её необходимо создать. Достаточно добавить следующий код, чтобы любые элементы в статье сохраняли адаптивность (автоматически подгонялись под размер экрана), но при этом могли свободно приближаться пользователем:

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

В итоге пользователь по умолчанию будет получать картинку, как в примере ниже (с поправкой на ваш дизайн):

Как настроить viewport для мобильной версии сайта на CMS WordPress (пример без масштабирования страницы)
Как настроить viewport для мобильной версии сайта на CMS WordPress? Используя код выше, вы адаптируете страницу для смартфонов, но при этом сохраните возможность масштабирования.

Страницу можно будет увеличить хоть в 1,5 раза, хоть в 5, что позволит пользователю не открывать фото в отдельном окне. Другое преимущество — возможность просматривать слишком мелкий или слишком крупный текст так, как будет удобно читателю:

Как настроить viewport для мобильной версии сайта на CMS WordPress и Ashe Pro, пример страницы со свободным масштабированием
Подобные настройки мета-тега viewport позволяют свободно приближать страницы, улучшая пользовательский опыт.

То же самое, но пошагово:

Как настроить viewport для мобильной версии сайта на CMS WordPress (первый шаг - переход в редактор тем в консоли сайта)

Как настроить viewport для мобильной версии сайта на CMS WordPress? Шаг 1 — перейти в редактор тем в консоли сайта!
Как настроить viewport для мобильной версии сайта на CMS WordPress в редакторе тем на базе Ashe Pro, модифицируя header.php
Как настроить viewport для мобильной версии сайта на CMS WordPress? Шаг 2 — изменить или добавить мета-тег! Пример модификации Header.php в теме Ashe Pro.

Что обозначает код в настройках мета-тега viewport?

Код выше автоматически масштабирует страницы под размер экрана с помощью width=device-width, подсказывая браузеру, что пользователю необходимо продемонстрировать область просмотра, равную ширине экрана смартфона. initial-scale=1.0 задаёт ширину экрана и начальный масштаб.

Конечно, можно задать фиксированный размер, например, указав content="width=320px, либо изменить начальный масштаб, переназначив initial-scale до 0.3 или 9.0, но смысл? Во-первых, все устройства имеют разный размер, что может некорректно сработать на всём, что отличается по параметрам в большую или меньшую сторону, а во-вторых, это не слишком удобно для пользователя. Поэтому лучше воздержаться от таких экспериментов.

Теперь вы знаете, как настроить viewport для мобильной версии сайта на CMS WordPress и темы Ashe Pro. Дальше можно не читать, ведь в тексте статьи будут рассматриваться дополнительные аспекты: например, код, вызывающий проблемы с масштабированием и другие примеры в подобном ключе.

Как ограничить максимальный масштаб (приближение) текста в мобильной версии сайта с помощью мета-тега viewport?

Назначить значение максимального приближения, например, maximum-scale=1.0. Вместо «1.0» вы можете установить любое значение, 2, 3 или 10 — как вам будет удобнее. «1.0» не будет позволять увеличить текст и изображения в мобильной версии сайта (не распространяется на AMP), «2.0» позволит увеличить что-либо лишь в два раза, и так далее.

Тем не менее, не рекомендую это делать. Во-первых, это ограничение может раздражать пользователей, которые хотят что-то рассмотреть в подробностях, не открывая изображение в новой вкладке. Во-вторых, некоторым людям будет проще уменьшить или увеличить текст при чтении, а различные программные запреты будут в их глазах жирным минусом. В-третьих, при анализе сайта это будет указываться в качестве ошибки HTML. Используйте подобное только в том случае, если это действительно необходимо!

Выше вы читали, как настроить viewport для мобильной версии сайта на CMS WordPress, ознакомились с тем, что может мешать просмотру, а теперь пора рассказать о таких настройках, которые гарантированно добавят 1 ошибку при анализе сайта на ошибки валидации HTML с помощью w3.org.

При каких настройках viewport на мобильной версии сайта не будeт приближаться текст и картинки?

Как правило, если в мобильной версии сайта невозможно изменить размер текста или приблизить картинки, код будет выглядеть следующим образом:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

Либо вот так:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />

Второй случай я уже рассматривал, о первом нужно будет рассказать чуть подробнее, но сначала хочу упомянуть о другом: используете ли вы maximum-scale=1.0 или user-scalable=no, это гарантированно добавит 1 ошибку при валидации HTML. Текст ошибки будет звучать так: «Consider avoiding viewport values that prevent users from resizing documents» (Не используйте значения области просмотра, которые не позволяют пользователям изменять размеры документов).

В первом случае код настраивает ширину страницы по размеру пользовательского устройства (width=device-width), не позволяет масштабировать страницы и любые вложения (maximum-scale=1.0), запрещает любое пользовательское масштабирование (maximum-scale=1.0), кроме горизонтального или вертикального проматывания.

Во втором — то же самое, но без запрета пользовательского масштабирования (фактически, масштабирование всё равно не будет работать).

Обычно подобные параметры используются для мобильных приложений. В большей части случаев жёсткие ограничения, прописанные в мета-теге viewport, абсолютно избыточны и излишни!
Как настроить viewport для мобильной версии сайта на CMS WordPress (пример статьи без изменения кода в мета-теге)
Как настроить viewport для мобильной версии сайта на CMS WordPress? Явно не таким способом! Если в настройках мета-тега будет прописан код выше, пользователь не сможет приблизить фото и их придётся открывать в отдельной вкладке.

Если в вашем сайте на основе CMS WordPress используются подобные настройки, лучше сразу переписать их на ту версию, которая указана в начале статьи.

Если вы дочитали до этого момента, вы знаете практически всё о том, как настроить viewport для мобильной версии сайта на CMS WordPress, включая основные значения кода, использующегося в мета-теге, а также параметры, при которых контент будет ограничен по масштабу и не сможет увеличиваться пользователем. Надеюсь, эта статья была достаточно информативной)

Понравилась статья?

Делитесь публикацией с друзьями, пишите комментарии, подписывайтесь на Telegram, Boosty и другие страницы, чтобы первыми видеть всё самое интересное!

RRS feed

  • Remove From My Forums
  • Question

  • WarningConsider avoiding viewport values that prevent users from resizing
    documents.

    From line 6, column 2; to line 6, column 103

    TF-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" />
    <met

    • Edited by
      omvishnu
      Monday, January 8, 2018 7:04 PM
    • Moved by
      Dave PatrickMVP
      Monday, January 8, 2018 7:36 PM

All replies

  • Not clear what is your question. In fact there is no question in your post. If you need help then you will need to elaborate and put some effort in your message.


Понравилась статья? Поделить с друзьями:
  • Как найти лощадь трапеции
  • Как составить предложение в present perfect с неправильными глаголами
  • Как найти исходящие сообщения
  • Свернулось масло для крема как исправить
  • Как найти участкового своего дома