Jump to content
  • 0

Валидация, что не так?


Rimstar
 Share

Question

Добрый вечер :) Решил сделать свой проект валидным, поубирал почти все ошибки, вот не пойму как эти две ошибки исправить:

there is no attribute "data-category-id"

<a data-category-id="1" href="/cat/1/">Школа<ins></ins></a><br/><a data-catego

there is no attribute "itemid"

</h1><div style="float:left; width:20%;"><div class="catalog-entry" itemid="8">

Может кто-то знает что тут не так?

И такой вопрос, как валидация влияет на индексацию страниц сайта?

Link to comment
Share on other sites

Recommended Posts

  • 0

по поводу второй. атрибута itemid нет в спецификации. попробуй приставить к нему префикс data-

и скажи какой доктайп у тебя прописан? есть подозрение, что префиксы data-понимают только html5-документы. но честно говоря, сам наверняка не знаю

Edited by cyklop77
Link to comment
Share on other sites

  • 0
атрибута itemid нет в спецификации

Есть (правда, у W3C — в отдельной спецификации для микроданных)

префиксы data-понимают только html5-документы

Понимают-то любые, но валидатор, да, признает их законными только при html5-доктайпе. Как и itemid. Впрочем, другие доктайпы на сегодняшний день и не нужны (за исключением редчайших лабораторных примеров). А переходные доктайпы — вообще ископаемый пережиток (под «переходом», для которого их вводили, имелся в виду от HTML3.2 к HTML4!) и просто потенциальные грабли (т.к. с ними страницы рисуются не в полностью стандартном, а в «полустандартном» режиме, т.е. по факту с узаконенными глюками!).

  • Like 1
Link to comment
Share on other sites

  • 0

Поменять доктайп на <!DOCTYPE html>, в котором эти атрибуты есть.

Но вообще подозрительно, если из всех микроданных есть только itemid, без itemprop и т.п. Можно увидеть проблемную страницу?

Link to comment
Share on other sites

  • 0

А какой доктайп нужно прописать?

Сейчас у меня такой стоит:


<!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="ru" lang="ru">

хм, попробовал просто убрать data-category-id="1" и itemid="8" страницы стали валидными, на дизайн вроде не повлияло..

Edited by Rimstar
Link to comment
Share on other sites

  • 0

Тупо убирать — не выход. Надо 1) определиться с задачей, 2) выбрать правильный инструмент для решения задачи, 3) решить задачу. Зачем-то ведь вы эти атрибуты ставили (для какого-то JS-плагина или еще чего-то)? Значит, скорее всего они зачем-то нужны. И удалять их, чтобы пройти формальную валидацию по устаревшей схеме — всё равно, что отрезать себе ногу, чтобы иметь право сидеть на местах для инвалидов в метро :)

Вообще, современные браузеры разбирают страницы именно по HTML5-правилам (независимо от доктайпа), так что если с HTML5-доктайпом валидатор показывает много ошибок — это в любом случае нехорошо. Нужно разбираться с причиной, а не прятаться от нее за более удобный (для валидатора, но не для работы) доктайп.

Можно увидеть саму проблемную страницу?

  • Like 1
Link to comment
Share on other sites

  • 0

По той странице, приличная часть ошибок просто по невнимательности (вроде пропущенных закрывающих кавычек у атрибутов). Еще валидатору не нравятся амперсанды в URLах ссылок и путей к картинкам, нужно записывать их как &. Элемент <link> по ошибке забрался в body вместо head (HTML5 допускает это, но в особом случае, здесь не тот случай). Еще у картинок не проставлены alt-ы (опять же, в исключительных случаях можно, но здесь не тот случай), зато у многих тегов стоят ископаемые, ненужные атрибуты (language у скрипта, border у картинки и т.п.). И name у ссылки не нужен — во-первых, он тоже устарел, во-вторых, очень редко ссылка сама является еще и якорем. Якоря, если они нужны, делаются через id любого элемента.

А вот itemid, похоже, попал туда действительно по ошибке. Никакой осмысленной микроразметки (структурированных данных), частью которой он мог бы быть, я не наблюдаю (и специальный инструмент Гугла для этого — тоже). Если этот атрибут используется скриптом, то лучше, да, заменить его на data-itemid (и подправить сам скрипт соотв-но) — чтобы не сбивать с толку роботов поисковиков и т.п., которые могут считать его частью структурированных данных, по какой-то причине потерявшихся.

Link to comment
Share on other sites

  • 0

Если не можете сказать уверенно, почему эти атрибуты там оказались, зачем они нужны и нужны ли вообще — да, лучше убрать. В принципе, достаточно универсальное правило (в коде должно быть только то, что однозначно нужно для дела, бессмысленный лишний код — потенциальный источник проблем).

Link to comment
Share on other sites

  • 0

Здравствуйте у меня похожая ошибка

 

there is no attribute "itemtype"

…le-speedbar"><span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">…

 

there is no attribute "itemprop"

…="http://lossless-flac.com/" itemprop= "url"><span itemprop="title">Главная</sp…

 

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

вот код модуля из engine.php подскажите что нужно поправить? Спасибо

Edited by rodjers
Link to comment
Share on other sites

  • 0

Надо сделать, чтобы модуль создавал атрибут не itemprop, а data-itemprop - тогда будет валидно.


Ходят упорные слухи, что есть. И в любом случае валидную верстку проще поддерживать.

 И проще искать настоящие ошибки, чем когда ты копаешься среди 100 ошибок, выискивая действительно важную среди них.

Link to comment
Share on other sites

  • 0

Вот что на эту ошибку говорят разработчики дле "теги микроразметки просто не входят в спецификацию"

Надо сделать, чтобы модуль создавал атрибут не itemprop, а data-itemprop - тогда будет валидно.

это в engine.php поправить то что я выше написал?

Link to comment
Share on other sites

  • 0

Кажется неверный совет дала, если это тег макроразметки - то изменив в его на дату с префиксом, это уже будет не макроразметка :(... А если менять, то нужно внимательно весь код смотреть, чтобы он работал с новым атрибутом - так и сломать что-нибудь недалеко.

  • Like 1
Link to comment
Share on other sites

  • 0

Ну они и говорят что исправить не как. В общем это уже не проблема так как вылезла другая. У меня на главной странице валидатор не ругается но зашол в полную новость и ужас 19 ошибок и асе кажется из похожих новостей не могли бы вы посмотреть у меня уже мозги закипели правлю дошол до 4 ошибок и опять ушол на 19 вот сай http://lossless-flac.com/

спасибо

Link to comment
Share on other sites

  • 0

Error Line 221, Column 10: document type does not allow element "table" here; assuming missing "li" start-tag
            <table>

Error Line 252, Column 7: end tag for "li" omitted, but OMITTAG NO was specified
        </ul>

You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".

Info Line 221, Column 4: start tag was here
            <table>
Error Line 319, Column 35: there is no attribute "onmouseenter"
<div class="bb-pane" onmouseenter="if(is_ie9) get_sel(eval('fombj.'+ selField))…

Edited by rodjers
Link to comment
Share on other sites

  • 0

 

        <div class="dtop"><span><b>А также:</b></span></div>

        <ul class="reset">

            <table>

???

 

В ul не может быть ничего, кроме li, о чем валидатор черным по белому и кричит. Зачем тут вообще ul, чем не подошел обычный div? Таблица из двух ячеек тут тоже сильно за уши притянута, но от нее хоть визуальный прок есть, так что пусть живет.

 

Вообще для такой страницы можно формальной валидностью особо не заморачиваться, тем более по самому бредовому «переходному» доктайпу (одной ногой, как в старом анекдоте, стоящему в HTML3.2 с его пережитками типа basefont, а другой замахнувшемуся на казавшийся некогда перспективным XML-синтаксис). Уж точно не стоит пускать под нож микроразметку (полезную для оформления поисковой выдачи, улучшает % заходов с поисковиков и соцсетей) только потому, что схема документа, придуманная за икснадцать лет до ее появления, предсказуемо ее не знает. Но и механически менять доктайп на соответствующий действительности в данном случае тоже рискованно.

 

Советую этот сайт оставить как есть (валидности главной более чем достаточно, чтобы «выпендриться» перед заказчиком), а следующие делать валидными изначально, сразу с правильным доктайпом, разрешающим максимум современных возможностей.

Link to comment
Share on other sites

  • 0

Спасибо за советы и помощ, вроде уже осталось 4 ошибки не считая ошибки которую вы указали.

А насчёт заказчика вы мне льстите) я ещё не дорос до заказных сайтов, и это мой первый сайт, себе делал.

Ещё раз всем спасибо кто откликнулся.


Насчёт таблицы: до неё ещё не добрался если вы насчёт визуальности как одна к другой близко я там пока ошибки исправлял визуально поменялась но это уже исправить не составит труда.


ui поправил на див осталось две ошибки

1. <meta property="og:site_name" content="lossless-flac" />

2. <div class="bb-pane" onmouseenter="if(is_ie9) get_sel(eval('fombj.'+ selField))…

Link to comment
Share on other sites

  • 0

Первое — микроразметка Open Graph, полезная для ссылок с фейсбука. Теоретически, она формально валидируется с доктайпом

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

(это и есть RDFa), но смена переходного доктайпа на такой (как и на

<!DOCTYPE html>

) может сказаться на отображении. Ошибка совершенно не критичная, можно оставить.
 
Второе — вообще-то да, бяка. И обработчик события прямо атрибутом, и само событие некроссбраузерное (до сих пор не работает в Хроме), и нехороший eval внутри... Но это надо серьезно ковырять скрипт (а он, похоже, какой-то ископаемый).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy