Комментарии 176
Всё верно! Я уже высказывал своё (скромное) мнение однажды. С тех пор прошло несколько лет и ничего не поменялось, от безвалидности никто не умер и никто не разорился.
Лично я тоже никогда не понимал зачем особо нужна валидация, ну в смысле что некоторые верстальщики не отпустят от себя код пока он не будет валидным и будут переделывать его под валидатор, даже если это приведёт к немного различному отображению в других браузерах (когда всё валидно, но выглядит везде по разному, то они это называют «неправильными браузерами»). Понятно, что создание кода по стандартам уменьшает вероятность некорректного отображения в различных браузерах, и создавая валидный код будет меньше проблем с кроссбраузерностью.
Но если везде выглядит одинаково но не валидно, то к чёрту валидность — это хороший код. А если полностью валидный код выглядит в каждом браузере немного по разному, то это не браузеры плохие, а код ужасен.
Но если везде выглядит одинаково но не валидно, то к чёрту валидность — это хороший код. А если полностью валидный код выглядит в каждом браузере немного по разному, то это не браузеры плохие, а код ужасен.
На валидной верстку, проще обнаруживаются ошибки, появляющиеся при всяких доработках, переверстках и прочем.
На мелких сайтах-визитках не так заметно, но на больших и долгоживущих проектах, над которыми работает много программистов, верстальщиков, контент-менеджеров это критично.
На мелких сайтах-визитках не так заметно, но на больших и долгоживущих проектах, над которыми работает много программистов, верстальщиков, контент-менеджеров это критично.
все верстальщики попадают в рай… если у них был валидный код!
от себя добавлю — валидный код позволяет парсить HTML стандартными XML-парсерами. Это упрощает жизнь создателям различных грабберов (:
Я за стандартизацию, потому что
1. Если где-то мне показывает валидатор, что сделано не по стандарту, я должен четко знать почему именно я сделал не по стандарту. В других случаях пусть будет по стандарту.
2. Если все по стандарту, это один из способов увеличить шансы что в следующих версиях браузеров сайт не сломается.
1. Если где-то мне показывает валидатор, что сделано не по стандарту, я должен четко знать почему именно я сделал не по стандарту. В других случаях пусть будет по стандарту.
2. Если все по стандарту, это один из способов увеличить шансы что в следующих версиях браузеров сайт не сломается.
Валидность кода — это способ проверять его качество в два клика. Открыл, зелёненькое? Ок, ничего не поломалось. А если у вас куча мусора и стомильёнов кастомных атрибутов, то и не будет зелёненького, а значит в коде могут быть и другие ошибки.
В общем, валидность — это инструмент, а не самоцель.
В общем, валидность — это инструмент, а не самоцель.
Во, в точку!
Иногда замыленным взглядом не заметишь ошибки в коде, а валидатор сразу же на нее укажет.
Иногда замыленным взглядом не заметишь ошибки в коде, а валидатор сразу же на нее укажет.
Код HTML может быть «динамически-генерируемым».
«динамически» != «случайным образом»
Ваша «динамика» так или иначе подчиняется определенному набору правил. зачем изначально «динамически» генерировать невалидные данные (невалидную разметку)?
более того, отдельные динамические блоки гораздо проще поддерживать в валидном состоянии
Ваша «динамика» так или иначе подчиняется определенному набору правил. зачем изначально «динамически» генерировать невалидные данные (невалидную разметку)?
более того, отдельные динамические блоки гораздо проще поддерживать в валидном состоянии
Уже писали выше, что если разработчиков много и проект большой (много страниц, сложная логика, возможно частично пользовательский контент), то валидация выполняет функцию «юнит-тестирования», это не 100%, но реально может помочь.
Ну одно дело — это когда что-то действительно серьезное отмечается как ошибка в результатах валидации. Но когда добавляешь autocomplete="off" к текстовому полю, а валидатор говорит, что все пропало, то это как-то глупо. И чтобы получить passed от валидатора приходится навешивать это через js, но, фактически, это же хак, потому как валидатор не понимает JS и не может парсить динамический контент.
Тем не менее, я могу увидеть в валидаторе, что единственное что изменилось — это автокомплит. А если я с самого начала не заморачивался валидацией, то этот инструмент мне и не поможет: было в нем 52 предупреждения, а стало 78 — ну так кто ж следит-то за ними? Так что изначально всё-таки нужно страницу довести до ума.
Кстати, для автора текста в фф'овском расширении HTML Validate пригодилась бы опция «забить на эту ошибку», она бы ему позволила не париться о своих спецатрибутах, но проверять другие траблы.
Кстати, для автора текста в фф'овском расширении HTML Validate пригодилась бы опция «забить на эту ошибку», она бы ему позволила не париться о своих спецатрибутах, но проверять другие траблы.
А есть возможность валидировать только синтаксис и вложенность тегов без DTD. На мой взгляд этого было бы достаточно для большинства случаев и не выдавало ошибки там, где их нет.
Под синтаксисом я понимаю набор правил, которые позволяют сказать, что данный набор байтов — html код. Теги, экранирование спецсимволов, атрибуты тегов.
Иногда, при работе над достаточно крупными проектами, в какой то момент страница может «развалиться» из за одного не закрытого тега (особенно в случаях с недобросовестными программистами). И с первого взгляда не понятно где это произошло.
С помощью валидатора это место быстро находится. Это в случае валидного документа. В случае невалидного придется сначала промотать предыдущие 284 ошибки.
С помощью валидатора это место быстро находится. Это в случае валидного документа. В случае невалидного придется сначала промотать предыдущие 284 ошибки.
Я сторонник использования пользовательских атрибутов в HTML тэгах для хранения дополнительных мета-данных, относящихся к определенному элементу.HTML5 предоставляет для этих целей валидный инструмент — атрибуты
data-*=""
.Да
Валидация HTML5 исправит некоторые проблемы, которые были с валидацией HTML 4. Она явно позволяет употребление пользовательских атрибутов (они должны начинаться с data-)
Виталий Харисов ответил когда-то на вопрос, для чего в Яндексе валидность примерно так: если наш документ проходит валидацию, а в браузерах находятся глюки — это позволяет нам писать багрепорты производителям браузеров.
Ещё не все основные производители браузеров зарелизили поддержку HTML5, потому в живых проектах думаю это преждевременно. А вот в проектах, которые выйдут в паблик после релизов FF4 и IE9 можно, наверное, использовать уже сейчас в разработке и бета-тестах (если наплевать на пользователей WinXP+IE6-8).
Я всегда стараюсь верстать валидные страницы, в то же время понимая что некоторые корректные элементы не пройдут валидацию… по возможности пробую обойтись без них
Полная чушь от начала и до конца: вас никто не просит писать валидный код — пишите какие хотите свистоперделки. Валидатор проверяет соответствие спецификации и только. Не хотите соответствовать — не соответствуйте. Как вообще валидность или не валидность кода связана с вебразработкой? Я считаю, что валидатор быть обязан и обязан быть максимально жёстким, а дальше уже личное дело каждого- будет он гоняться за валидностью и соответствию стандартам или нет.
P.S. Личная позиция по поводу требований валидности для кода: любое отклонение от спецификаций должно быть чётко аргументировано. То есть писать невалидный код можно (и иногда нужно!), но всегда надо чётко аргументировать причины вашего выбора. Иначе будет бардак. И без валидаторов будет бардак.
P.S. Личная позиция по поводу требований валидности для кода: любое отклонение от спецификаций должно быть чётко аргументировано. То есть писать невалидный код можно (и иногда нужно!), но всегда надо чётко аргументировать причины вашего выбора. Иначе будет бардак. И без валидаторов будет бардак.
Да, и не используйте strict DTD и вообще DTD если не хотите соответствовать стандартам, всё очень просто. Браузеры вас прекрасно поймут и без доктайпа.
Григорий Остер, перелогинтесь.
Поймут но не все. Проверено. Самым безопасным считаю использование переходного док тайпа, а не стрикта. Так по-моему лучше всего получается.
Ну да. Я просто к тому, что глупо писать strict и использовать, например, фреймы или всякие устаревшие атрибуты у тегов вроде color. Вы если заявляете strict — то и пишите strict код.
> Так по-моему лучше всего получается.
Мистика прямо! Вы про существование Quirks mode вообще в курсе? :)
Мистика прямо! Вы про существование Quirks mode вообще в курсе? :)
Причём здесь Quirk mode? Не описан доктайп — врубается Quirk. Разные CSS для разных (старых) браузеров ещё никто не отменял. К тому же, я не против доктайпа как такового. Quirk нуден если доктайп не описан вообще.
Да проблема в том, что допустим я совершил синтаксическую ошибку в коде — это плохо, но браузер это съест, но валидатор покажет ошибку и я ее исправлю. Допустим, я написал autocomplete=«off» сами знаете для чего, — это не плохо, браузер это нормально поймет, но валидатор выдаст ошибку (не предупреждение!).
Ну и в чём проблема? Прогоните через валидатор и увидите свою ошибку. Валидатор-то есть, слава Богу, так что пользуйтесь.
Оба случая в валидаторе будут помечены равнозначно — как ошибка, хотя на самом деле ошибка одна.
На самом деле ошибки две. И именно ошибки. Стандарты пишут не просто так, не будет стандартов — будет анархия. Если вы гордо пишете в заголовке //W3C//DTD HTML 4.01//EN, то autocomplete — это тоже синтаксическая ошибка, поскольку в спецификации такого нет.
Итак, мы пришли к выводу, что Google Suggest и аналоги — это анархия :)
А при чём тут гугл саггест? Я вам не предлагаю соответствовать устаревшим стандартам, я говорю лишь, что валидатор обязан проверять код на валидность исходя из принятых стандартов и не давать поблажек.
Да здравствует великий tag soup!
> Есть вещи, которые поддерживаются большинством браузеров ( в, после ), которые являются невалидными, но иногда очень необходимы для правильной работы.
дальше можно уже не читать… ибо бред. не может нормальный человек до такого додуматься
валидация нужна лишь на основную проверку правильности порядка тегов, а вот остальное, действительно, можно опустить (кастомные аттрибуты и прочие спорные моменты, к примеру, нахождение меты content-type как можно выше в head)
> Есть вещи, которые поддерживаются большинством браузеров ( в, после ), которые являются невалидными, но иногда очень необходимы для правильной работы.
дальше можно уже не читать… ибо бред. не может нормальный человек до такого додуматься
валидация нужна лишь на основную проверку правильности порядка тегов, а вот остальное, действительно, можно опустить (кастомные аттрибуты и прочие спорные моменты, к примеру, нахождение меты content-type как можно выше в head)
meta charset
должна находиться как можно выше по той простой причине, чтобы сформировать заголовок title у страницы правильный. Где-то читала (ссылки нету), что злоумышленник может сломать всю страницу при определённых обстоятельствах, т.к. определённые символы специфического шрифта в title до указания кодировки неправильно распознаются.Ну и браузер должен знать в какой кодировке показывать title страницы.
Я лично за логичность и чистоту кода и это не мешает мне пренебрегать валидацией. Почему никто до сих пор не вспомнил про хаки для ИЕ6? Ни один хак никогда (скорее всего) не пройдёт валидацию т.к. хаков нет и не может быть в спецификации. Это уже скорее ухищрение для обхода багов 6-го осла, например. Любой стандарт потому и стандарт, что изначально предполагает максимально идеальный вариант хода событий. Короче валидатор наивно полагает, что абсолютно все браузеры одинаково хороши и требует стандартизированного к ним отношения. Но мы-то с вами знаем…
Валидатор про браузеры ничего не предполагает, он лишь фиксирует факт следовал ли разработчик рекомендациям стандарта или нет.
Почему никто до сих пор не вспомнил про хаки для ИЕ6? Ни один хак никогда (скорее всего) не пройдёт валидацию т.к. хаков нет и не может быть в спецификации.
Ну почему же? Ведь хак
html>body
вполне валиден, а он обычно и используется для обхода проблем IE6html — язык разметки. Точно такой-же пост можно было написать и про русский язык.
Либо вы упорно говорите и пишете по русски правильно, надеясь что рано или поздно все будут делать также, либо вы говорите и пишите как вам удобно, соблюдая элементарные правила. А валидатор — это такой grammar nazi.
IMHO — html пишется для роботов и он должен быть валидным. В этом случае если робот неправильно обрабатывает валидный код, то это баг робота. А всех роботов рано или поздно починят, если не люди то другие роботы.
Я идеалист, простите меня.
Либо вы упорно говорите и пишете по русски правильно, надеясь что рано или поздно все будут делать также, либо вы говорите и пишите как вам удобно, соблюдая элементарные правила. А валидатор — это такой grammar nazi.
IMHO — html пишется для роботов и он должен быть валидным. В этом случае если робот неправильно обрабатывает валидный код, то это баг робота. А всех роботов рано или поздно починят, если не люди то другие роботы.
Я идеалист, простите меня.
Технически код можно делать невалидным. Идеологически можно поспорить, но железных аргументов не найдется ни у одной из сторон.
А мне просто нравится, когда код чистый и валидный. Я рассматриваю этот вопрос в эстетическом плане. Дополнительных трудозатрат у меня на это не возникает, так почему бы не сделать себе приятно?
А мне просто нравится, когда код чистый и валидный. Я рассматриваю этот вопрос в эстетическом плане. Дополнительных трудозатрат у меня на это не возникает, так почему бы не сделать себе приятно?
А что Вы делаете в случае autocomplete и подобных? :)
javascript
Ну Вы понимаете, что в реальности навешивание autocomplete через JS — это хак валидатора. Если бы валидатор генерировал страницу как браузер и потом проверял валидность, такой вариант не прошел бы. Так что на самом деле код не валидный, мы лишь просто обманули валидатор таким образом.
ну и что? Повторюсь. Я делаю это для собственного удовольствия.
Да я понимаю. Просто в конечном итоге погоня за значком валидности может обернуться не одним десятком килобайтов JS.
Ни разу не сталкивался с таким. Возможно, это зависит от привычного стиля, способа верстки.
Если Вы исключительно верстальщик, то да. Если же у Вы разрабатываете полноценное RIA со всеми вытекающими, то тут столкнетесь наверняка.
Ни разу не сталкивался с ситуацией где требуется атрибут autocomplete только для того чтобы отключить autocomplete.
Как правило его выключают по причине того, что он мешает какому-либо js обработчику поля. Посему и сменить этот параметр можно и нужно исключительно при навешивании этого самого обработчика.
Как правило его выключают по причине того, что он мешает какому-либо js обработчику поля. Посему и сменить этот параметр можно и нужно исключительно при навешивании этого самого обработчика.
Стандарты вещь достаточно гибкая, их не обязательно ломать.<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [ <!ATTLIST input autocomplete (on|off) "on"> ]> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Insert title here</title> </head> <body> <form action="http://somewhere/" method="post"> <div> <input name="test" type="text" autocomplete="off" /> </div> </form> </body> </html>
Если такое добавлять для каждого кастомного атрибута, то размер страницы разрастется до неприличных размеров.
спасибо, про ATTLIST не знал…
ну, мне всегда хватает родных атрибутов в любой верстке, но на будущее может пригодиться.
ну, мне всегда хватает родных атрибутов в любой верстке, но на будущее может пригодиться.
Повеяло 2007 годом.
XHTML истерия,
поиск причин зачем же нам нужен этот X,
горы хаков, чтобы сделать это истинным X да еще и как-то сохранить работоспособность в древних браузерах,
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="http://somewhere/" method="post">
<div>
<input name="test" type="text" autocomplete="off">
</div>
</form>
</body>
</html>
XHTML истерия,
поиск причин зачем же нам нужен этот X,
горы хаков, чтобы сделать это истинным X да еще и как-то сохранить работоспособность в древних браузерах,
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="http://somewhere/" method="post">
<div>
<input name="test" type="text" autocomplete="off">
</div>
</form>
</body>
</html>
Пока коментов мало, схожу за попкорном.
Для статистики: не понимаю зачем делать невалидно, елси можно делать валидно. Валидность не цель, а инструмент для быстрого вычисления ошибки в коде.
Для статистики: не понимаю зачем делать невалидно, елси можно делать валидно. Валидность не цель, а инструмент для быстрого вычисления ошибки в коде.
Затем, что стандарты, а вместе с ними и валидатор, устарели и не соответствуют реальным потребностям.
Ещё раз: валидатор это инструмент, такой же как например комментарии в коде.
Если вы делаете валидный код и вставляете туда 5-6 невалидных тэгов, то вы точно также сможете пользоваться этим инструментом.
Если у вас вся страница состоит из говнокода, то пользоваться этим инструметом вы уже не сможете.
Если вы делаете валидный код и вставляете туда 5-6 невалидных тэгов, то вы точно также сможете пользоваться этим инструментом.
Если у вас вся страница состоит из говнокода, то пользоваться этим инструметом вы уже не сможете.
зато можно поставить кнопочку, что верстка валидная и использовать это как одно из своих ключевых преимуществ по сравнению с другими студиями, которые делают чёрти как, а мы по стандартным, ГОСТам и так далее :-) вообщем, с точки зрения простого прагматика, валидатор — вещь полезная и нужная и даже не важно, дают ли все эти стандарты что-то или нет — просто это ещё одно ваше ключевое преимущество
Отвечу цитатой :)
Валидный HTML может служить поводом гордиться самим собой, но само по себе это не является показателем мастерства. Ваш валидный код не всегда лучше выполняет свои функции чем мой невалидный.
не является, так же как участие и призовые места в каких-либо соревнованиях ещё ничего не говорят сами по себе, партнёрство с известным брендом тоже, всё вместе в целом создаёт впечатление правильной компании…
в конечном итоге лучше живут ведь не те, кто делает что-то лучше, а те, кто продаёт что-то лучше…
ну, есть, например, успешные юми цмс и бритрикс… их знают, их хотят… я не программист, было бы неправильно мне оценивать качество кода этих цмсок, но уверен, это не самые лучшие представители с точки зрения красоты кода, быстродействия…
в конечном итоге лучше живут ведь не те, кто делает что-то лучше, а те, кто продаёт что-то лучше…
ну, есть, например, успешные юми цмс и бритрикс… их знают, их хотят… я не программист, было бы неправильно мне оценивать качество кода этих цмсок, но уверен, это не самые лучшие представители с точки зрения красоты кода, быстродействия…
Заказчикам абсолютно без разницы валиден код или нет — это факт. Сейчас делаем сайт по производству фурнитуры для мебели. Офис заказчика находится прямо в цехе. Как вы думаете если попытаться доказать своё преимущество перед др. студиями и объяснить заказчику, который всю жизнь точил детали на станке, что мол мы делаем по стандартам, а вон те вон, делают не по стандартам но визуально и функционально никакой разницы нет, то он вас поймёт и оценит? Тут нужен только прагматичный подход. Робит — круто. Не робит — не круто. Остальное для холивара.
Не все заказчики такие (:
Если заказщику нужен сайт, то ему без разницы,
если заказщику нужен код, который придётся поддерживать, то выберут того, кто верстает валидно
если заказщику нужен код, который придётся поддерживать, то выберут того, кто верстает валидно
Идиотов конечно везде хватает, но я не про клинические случаи сейчас, а про тенденцию.
В крайних случаях, если нужно — можно добавить невалидные атрибуты и пару невалидных тэгов. Но всё остальное должно быть DTD XHTML 1.0 Strict.
Конечно можно в половине кода закрывать тэги «img» «br» «hr», а в другой половине не закрывать. Но за такое хочется руки оторвать.
В крайних случаях, если нужно — можно добавить невалидные атрибуты и пару невалидных тэгов. Но всё остальное должно быть DTD XHTML 1.0 Strict.
Конечно можно в половине кода закрывать тэги «img» «br» «hr», а в другой половине не закрывать. Но за такое хочется руки оторвать.
Вам часто встречался заказчик, который говорит «Мне нужен код, который придётся поддерживать»? ) Заказчику, если мы говорим о сайтах, нужен конечный ПРОДУКТ, который он будет поддерживать через админку или ещё как-то. Сам код ему нахер не нужен.
разницы нет до тех пор, пока заказчик не захочет «крутую кнопку о том, что все валидно, как у Толяна на сайте по производству помповых насосов»…
Те же Лебедевцы, например, да и не только они, на сколько знаю, перешли на доплату если надо сверстать кроссбраузерно с ИЕ6. Тоже самое можно сделать и с валидностью. Если заказчику уж прям сильно надо кнопку, то без проблем. Как говорится «за ваши деньги — любой каприз».
Лучший валидатор — это браузер.
Просто если написать например
— это уже не валидно, а если
— валидно. Разница в пробеле перед закрывающим слэшем. Мне пофигу на этот пробел т.к. всё работает, а валидатору нет.
ВордПресс, например, автоматом этот пробел добавляет в каждый закрывающийся тег. Выходит ВП вообще надо выкинуть на помойку и всех блоггеров пересадить на Друпал или Битрикс )
ВордПресс, например, автоматом этот пробел добавляет в каждый закрывающийся тег. Выходит ВП вообще надо выкинуть на помойку и всех блоггеров пересадить на Друпал или Битрикс )
Полностью согласен, самое плохое, что этот миф вырос на столько, что валидность стали требовать заказчики, обычные менеджеры, которым очень трудно объяснить технические нюансы.
Думаю, валидность написанного кода следует сравнивать с грамотностью при письме, а валидатор с проверкой правописания, скажем в Ворде или в браузере.
В нашей речи и в синтаксисе языка разметки есть определенные правила. И то, что нарушая их мы можем не потерять смысловой посыл (например, написав «карова» мы все равно будем поняты), тем не менее, не лишает нас желания писать грамотно. Ну и понятно, что для проверки уровня своей грамотности мы можем использовать удобные инструменты в программах, которыми пользуемся. Валидатор, для языка разметки, и есть таким инструментом.
В нашей речи и в синтаксисе языка разметки есть определенные правила. И то, что нарушая их мы можем не потерять смысловой посыл (например, написав «карова» мы все равно будем поняты), тем не менее, не лишает нас желания писать грамотно. Ну и понятно, что для проверки уровня своей грамотности мы можем использовать удобные инструменты в программах, которыми пользуемся. Валидатор, для языка разметки, и есть таким инструментом.
Тут должна быть другая аналогия :) Можно, например, употребить глагол «гуглить» и тебя поймут, но придет профессор и скажет, что нет такого слова в словаре. И чтобы удовлетворить профессора придется заменить одно слово на фразу вроде «осуществить поиск во Всемирной паутине с помощью поисковой системы Google».
C https://addons.mozilla.org/en-US/firefox/addon/249/ волей не волей приходится писать валидно что бы красный кружок не напрягал.
Разве пункт 4 не является частью третьего?
Я с помощью валидатора выявляю незакрытые тэги.
А так: хабр, гугл, яху, яндекс — везде ошибки и никто же не парится по этому поводу.
А так: хабр, гугл, яху, яндекс — везде ошибки и никто же не парится по этому поводу.
Я вообще не понимаю, о какой валидации в реальной жизни может идти речь.
yandex.ru не валиден
google.com не валиден
habrahabr.ru не валиден
Более того, код который выдает РСЯ тоже не валиден. То есть, если у вас на сайте стоит реклама от Яндекса — то ваш сайт автоматически не валиден
yandex.ru не валиден
google.com не валиден
habrahabr.ru не валиден
Более того, код который выдает РСЯ тоже не валиден. То есть, если у вас на сайте стоит реклама от Яндекса — то ваш сайт автоматически не валиден
А почему бы для пользовательских элементов/атрибутов не использовать другой namespace? Понимаю, иногда не хочется усложнять читабельность, но тем не менее <my:foo/> или <div my:custom_attr='123'> вроде не выглядит чем-то страшным.
Вот такой вариант будет валидным всегда!
if (stripos($_SERVER['HTTP_USER_AGENT'], 'W3C')!==false){ die(); }
В этом духе. Изобрел этот метод когда реально невозможно было сделать валидную верстку, а заказчика ну никак не переубедишь, давай валидную верстку. Что вы будете делать? Переверстывать весь макет, и просрочите все сроки или вставите одну строчку?
if (stripos($_SERVER['HTTP_USER_AGENT'], 'W3C')!==false){ die(); }
В этом духе. Изобрел этот метод когда реально невозможно было сделать валидную верстку, а заказчика ну никак не переубедишь, давай валидную верстку. Что вы будете делать? Переверстывать весь макет, и просрочите все сроки или вставите одну строчку?
«Валидация» — лишь модное (уже нет, к счастью) слово, которым верстальщики хоть как-то оправдывают свое существование. Поскольку сайты тестируются браузерами, то единственным валидатором может быть только браузер. Все остальные инструменты для тестирования идут в дополнение с самой разной степенью значимости.
Валидация и браузер — разные понятия. Но, похоже, что дело Самизнаетекого живет и процветает.
В мире, кроме браузеров, существуют еще программы, которые умеют работать с HTML, CSS, XML и так далее. Подумайте над этим на досуге.
В мире, кроме браузеров, существуют еще программы, которые умеют работать с HTML, CSS, XML и так далее. Подумайте над этим на досуге.
А никто не говорит, что это одно и то же. Просто валидация бесполезна. Точка. Польза, которую она приносит слишком мала, чтобы об этом задумываться.
*Любой* HTML в подобных программах предварительно должен быть прогнан через программы аля tidy. Я грабберы писал, т.ч. немного в курсе.
Огромное кол-во существующего невалидного HTML не позволит браузерам его не обрабатывать, а свобода, которую дают браузеры, всегда будет порождать еще больше невалидного HTML-a. Это замкнутый круг. Есть люди которые это понимают и используют в работе, а есть те, кто только и способен дрочить на магические слова «валидация», «семантика» и т.п.
С XML разговор другой. И, кстати, ни один браузер невалидный XML не отобразит.
ЗЫ: На всякий случай: поскольку я много работал с XML, мой HTML всегда написан в строгом стиле и валидатор выдает очень мало ошибок. Поэтому я на него даже и не смотрю. Но это вопрос не технологий, а отношения к работе.
*Любой* HTML в подобных программах предварительно должен быть прогнан через программы аля tidy. Я грабберы писал, т.ч. немного в курсе.
Огромное кол-во существующего невалидного HTML не позволит браузерам его не обрабатывать, а свобода, которую дают браузеры, всегда будет порождать еще больше невалидного HTML-a. Это замкнутый круг. Есть люди которые это понимают и используют в работе, а есть те, кто только и способен дрочить на магические слова «валидация», «семантика» и т.п.
С XML разговор другой. И, кстати, ни один браузер невалидный XML не отобразит.
ЗЫ: На всякий случай: поскольку я много работал с XML, мой HTML всегда написан в строгом стиле и валидатор выдает очень мало ошибок. Поэтому я на него даже и не смотрю. Но это вопрос не технологий, а отношения к работе.
Мне кажется, если ИЕ6 уйдет из бытия, то все ходивары про валидацию сойдут на нет.
Т.е. IE6 — зло всех времен и народов.
Т.е. IE6 — зло всех времен и народов.
Вы стать вообще читали? :) IE6 тут причем? :)
валидация из-за ИЕ6 — ИМХО
небыло бы ослика — «нафига козе баян»
небыло бы ослика — «нафига козе баян»
Я имею ввиду: если бы все браузеры понимали бы код одинаково (кроссбраузерность бы отсутствоала), то не нужна была бы валидация, т.к. разработчик сразу бы видел как его страница отображается.
Валидация, по сути, показывает, насколько ИЕ шаловлив.
Валидация, по сути, показывает, насколько ИЕ шаловлив.
это как по Фрейду — «во все виноват секс»
hmtl (xhtml) должен быть валидном настолько, чтобы его обрабатывал без краха xlst шаблонизатор.
Нас поймут, если мы будем писать неграмотно. Но мы стараемся следовать правилам русского языка.
Валидатор нужен тому, кто учит технологию. Кто выучил ее, тому он не нужен.
Гораздо более важно, чтобы сайт отображался одинаково в разных браузерах. Да и бывает приходится чем-то жертвовать ради валидации…
microsoft.com — 104 ошибки
google.com — 41 ошибка
habrahabr.ru — 35 ошибок
ток что этот валидатор до фени.
microsoft.com — 104 ошибки
google.com — 41 ошибка
habrahabr.ru — 35 ошибок
ток что этот валидатор до фени.
Это статья уже морально стара, об этом можно было говорить еще несколько лет назад. Сейчас наступает эпоха HTML5 и даже MS стал прикладывать усилия по подавлению младших версий IE, и активно пиарить IE9. В настоящее время не профессионально говорить об этом. А все приведенные доводы автора это лишь отмазка технически слаборазвитого разработчика, которому лень доводить код до идеального состояния, а также которому лень искать новые решения кроме как добавить не валидный аттрибут.
На счет автора… странно, что JS-developer из Yahoo может говорить такие вещи.
На счет автора… странно, что JS-developer из Yahoo может говорить такие вещи.
1. Эпоха HTML5 еще не наступила и посмотрим насколько затянется ее наступление.
2. Это не отмазки, это реальные проблемы, выше уже обсуждали конкртеные примеры. Готов послушать Ваше решение для autocomplete="off"
3. Уж поверьте, ему то не лень искать технические решения. Советую ознакомиться с его книгой High Performance Javascript :)
2. Это не отмазки, это реальные проблемы, выше уже обсуждали конкртеные примеры. Готов послушать Ваше решение для autocomplete="off"
3. Уж поверьте, ему то не лень искать технические решения. Советую ознакомиться с его книгой High Performance Javascript :)
Валидация всего лишь приучает разработчиков писать код правильно, в том формате который спокойно поймут другие разработчики и смогут поддерживать если что. Со временем надобность валидации отпадает, но привычка писать хороший код остается.
Согласитесь, есть разница между:
и
Согласитесь, есть разница между:
<UL class=list>
<LI>Текст
</UL>
<P><B>Текст</P></B>
* This source code was highlighted with Source Code Highlighter.
и
<ul class="list">
<li>Текст</li>
</ul>
<p><b>Текст</b></p>
* This source code was highlighted with Source Code Highlighter.
Конечно, есть разница.
Но сейчас первому варианту может научить только какая-нибудь книга вроде «Создай свой мегасайт за 24 часа» :)
Но сейчас первому варианту может научить только какая-нибудь книга вроде «Создай свой мегасайт за 24 часа» :)
Сейчас да, но в те времена когда я начинал писать html такой код был нормой. Потом появилась мода на валидацию и многие научились писать правильный, читабельный код. Сейчас большинство пишет нормальный код и надобности в валидации больше нет.
У меня есть интернет-магазин.
Хтмл-код, который отдается посетителю супермегаНЕвалидный, например:
Однако это не мешает успешно продавать интернет-магазину товаров на несколько десятков тысяч рублей в день.
Так что все эти валидации на мой взгляд — удел параноиков. Главное, чтобы сайт выполнял свою основную задачу, в моем случае — продавал. На остальное наплевать.
Хтмл-код, который отдается посетителю супермегаНЕвалидный, например:
<b><p>qwe</b></p> <ul><li>qweqwe2</ul>
Однако это не мешает успешно продавать интернет-магазину товаров на несколько десятков тысяч рублей в день.
Так что все эти валидации на мой взгляд — удел параноиков. Главное, чтобы сайт выполнял свою основную задачу, в моем случае — продавал. На остальное наплевать.
Вот на тебя и плюют, когда с мобилок нормально зайти не могут, когда в отдельных браузерах вёрстка едет к чертям. Мне не повезло, я в вёрстке немного разбирась, поэтому, на таком сайте никогда ничего не куплю. Сразу пахнет шарашкиной конторой.
Доходчивая аналогия: Недавно покупал молоко в коровьем хлеву. Молоко просто супер, сливок пол-банки. Но вот обстановочка… Мощный аромат навоза, под ногами навоз, в сторону посмотришь — из коровы навоз валится. Мне в моих лакоботах сложно было пробраться до холодильника. Ты продаёшь в таком же хлеву. Кругом говно, в конце пути товар. Такой путь пройдёт не каждый.
Доходчивая аналогия: Недавно покупал молоко в коровьем хлеву. Молоко просто супер, сливок пол-банки. Но вот обстановочка… Мощный аромат навоза, под ногами навоз, в сторону посмотришь — из коровы навоз валится. Мне в моих лакоботах сложно было пробраться до холодильника. Ты продаёшь в таком же хлеву. Кругом говно, в конце пути товар. Такой путь пройдёт не каждый.
Одно дело супермегаНЕвалидый, другое дело если код — полное говно. Вот будет смеху когда вы захотите расширять функционал и столкнетесь с плевками разработчиков, завышенными бюджетами и раздутыми из-за этого сроками.
1, 2 и 4 можно получить и напрямую в текстовом редакторе.
Мне кажется, нет никаких причин гнаться за идеальной валидностью ценой потери удобных инструментов (noindex, autocomplete и т.д.). Однако, несоблюдение основных важных правил (неправильные вложения тегов, отсутствие закрывающих слешей, объявление стилей в теге и т.п.) является проявлением лени и непрофессионализма.
Автор не осилил DTD и XML Schema и ругает валидацию. Неужели так сложно при использовании каких-то доп атрибутов, тегов и т.п. их нормально определить?
плохо сделано тупо. валидатор проверяет на соответствие стандарту. Однако сам стандарт является не жестким кодексом правил, а просто сводом рекомендаций. Кроме того плевать как код проходит валидацию, работать с этим кодом будет браузер, а не валидатор.
Странно, когда мне нечего было делать, ну например я все заверстал проверил во всех «популярных браузерах», то последнее что я делаю это проверяю на валидность(чаще всего все-таки не проверяю..)
Многие работодатели очень любят оценивать верстку именно по валидности, часто берут на работу именно тех кто пишет по стандартам, но никогда на собеседовании не замечал, чтобы страницу проверяли на скорость загрузки и ее Вес, действительно зачем?!0_o, ведь так важно получить иконку на сайт W3C, но я не говорю, что валидность не нужна, я считаю нужна по большинству выше сказанных причинам.
Многие работодатели очень любят оценивать верстку именно по валидности, часто берут на работу именно тех кто пишет по стандартам, но никогда на собеседовании не замечал, чтобы страницу проверяли на скорость загрузки и ее Вес, действительно зачем?!0_o, ведь так важно получить иконку на сайт W3C, но я не говорю, что валидность не нужна, я считаю нужна по большинству выше сказанных причинам.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Нужна ли HTML-валидация?!