Почему ваш сайт скорее всего не должен работать

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


    Фрагмент результата валидации example.com

    Валидация


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

    <N.B.>Лучший валидатор - это браузер</N.B.>

    Это — яркий пример дилетантства и некомпетентности. Это — путь, по которому, к сожалению, работает множество студий, и имя этому пути «Работает, ну и ладно». Безошибочная с точки зрения валидации вёрстка должна быть также важна для сайта, как, собственно, и программный код.

    XHTML


    По какой-то совершенно загадочной причине подавляющее большинство сайтов до сих пор верстается в XHTML. Но разработчики не могут ответить на простой вопрос «Почему вы используете XHTML?». Я не слышал ни одного внятного объяснения. И причина в обычном не понимании предмета.

    Как известно, браузеры всегда прощают ошибки в HTML, отображая страницу «как есть», даже если вы забудете закрыть тэг. XHTML же основан XML, а XML — строгий язык разметки. Это значит, что парсер просто не сможет обработать невалидный XML-код, выдав сообщение о синтаксической ошибке.

    Проверить это очень просто. Достаточно взять любую сверстанную «в соответствии» со стандартами XHTML-страничку и, сохранив локально, переименовать её в *.xhtml. Если после этого страница откроется в браузере без проблем — у меня для вас хорошие новости. Ежели нет — вероятно вы будете удивлены тем, что увидите.


    Скриншот ошибки синтаксического анализа главной страницы habrahabr.ru. Браузер Firefox

    «Так если страница с невалидным кодом открывается с ошибкой локально, то почему же мы не видим таких ошибок на сайтах?» — справедливо спросит читатель.

    Content-type


    DOCTYPE, который мы указываем в самом начале документа, на самом деле, не играет никакой роли в выборе парсера браузером.

    Каждый раз, когда браузер запрашивает страницу, веб-сервер отправляет заголовки-ответа перед тем, как отобразить сам документ. Эти заголовки обычно не видны, но вы можете посмотреть их с помощью специальных инструментов для разработки, если вам интересно. Эти заголовки очень важны, потому что они говорят браузеру как интерпретировать ваш документ. Наиболее важным заголовком является Content-Type.
    Вольный перевод из Dive into HTML5

    Итак, браузер парсит страницу в соответствии с HTTP-ответом. Но в нём в большинстве случаев можно увидеть: Content-Type: text/html;


    Скриншот страницы HTTP-ответа, полученной с помощью плагина Web Developer Toolbar для Firefox

    Что это значит? Получая такой ответ браузер думает, что получил HTML, а не XHTML, и парсит код соответствующе.

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

    Если вы хотите получить действительно то, что написали в своем документе, то правильный тип Content-Type должен быть таким: application/xhtml+xml

    Ну и что?


    Объявив в самом начале своей страницы XHTML-ный doctype, и действительно использовав синтаксис XHTML при написании документа, будьте добры проверить код на валидность и объявить правильный контент-тайп. А затем готовьтесь к сюрпризам. Придется быть уверенным в том, что визуальный редактор в вашей CMS отдаст валидный код (даже если клиент в нём вручную исправит код в html-view), придется беспокоиться о специальных символах, придется беспокоиться о CDATA например в скриптах и т. д. Иначе страница просто не отобразится.

    XHTML — плохая идея. И хорошо, что это успели понять в W3C, отказавшись от разработки XHTML 2.0 и перебросив все силы на HTML5.

    Выбирайте правильные технологии, читайте документации и пишите правильный код.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 208

      +63
      "… Это — яркий пример дилетантства и некомпетентности..." не думаю что эти «дилетанты» даже знают о Вашем существовании. В пятницу вечером они тратят свои честно заработаные «говнокодом» деньги.
        +3
        Согласен — Лучший валидатор — это браузер!
          –11
          А сколько же говнокода на самом деле присутствует у разработчиков браузеров (Chrome сюда не относится, ибо был проверен PVS Studio), что верстальщики вынуждены изворачиваться и писать свой *****код, чтобы не получить *****отображаемую *****страницу…
            +1
            So fork it! Если потяните.

            Или еще лучше выкиньте свой PVS =)
          +8
          Видимо они дилетанты только по технической части, а по части выбивания денег профи.
          • UFO just landed and posted this here
              +1
              который «поощряет» ошибки в коде.


              Я бы написал «опускает» ошибки.
              • UFO just landed and posted this here
                +1
                Нужно в слове «поощряет» немного порядок букв изменить и чуть-чуть их подправить, чтобы стало верным утверждение, что все-таки «HTML прощает ошибки в коде».
                  0
                  с xhtml на самом деле бредово получается: валидировать его можно только загрузив полностью, но реальность такова, что выводить/интерпретировать web-контент необходимо начинать ещё в самом начале загрузки загрузки.
                  +1
                  А через год с выходом новых версии браузеров, весь говнокод сайтов действительно превращается в сьехавшие блоки и т.п. и мат с проклинаниями заказчиков, которые заказали этот сайт.

                  Соблюдение стандартов — это как защита от дурака. Как вы еще не понимаете.
                    0
                    а как же быть с теми стандартами, которые попросту не поддерживает «самизнаетекакой» браузер
                      0
                      А вы поддерживайте стандарты, как видите чем выше версия IE тем он стандартизованее ;)
                      И забудьте наконец про IE 6, его уже никто не поддерживает, ни google, не facebook, и я давно в своих проектах не поддерживаю, просто высвечиваю баннер, с информацией о том к чему может привести использование IE6. Я смотрел статистику своих клиентов, ну очень малый процент. Да стоит ли расчитывать на таких клиентов, которые используют IE6, они вообще адекватные? ;)
                        0
                        ну так я тоже ие6 не поддерживаю. откровенно говоря даже не знаю как выглядят мои сайты в нём.
                        но суть не в ие6. суть в разной трактовке стандартов. один и тот же стандарт может трактоваться браузерами по разному.
                          0
                          Некоторые из них всё же вынуждены сидеть из-под IE6 (на моей практике встречались адекватные люди, у которых на рабочем компьютере не было прав на установку нормального браузера, а про портативные Фаерфоксы они не слышали). Но в любом случае, IE6 жив до тех пор, пока его поддерживают разработчики. Самый классный способ «частичной» поддержки IE6 который я видел — пользователю отдавался мега-облегченный css типа print.css, а наверху было сообщение мол «если хотите чтоб всё было красиво, поставьте нормальный браузер».
                      0
                      www.w3.org

                      RESPONSE HEADER:
                      ...
                      Content-Type:text/html; charset=utf-8
                      ...


                      SOURCE:
                      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">


                      Ээээ W3C — тоже стало быть говнокодят?
                      +8
                      У меня обычно верстка сразу проходит валидацию. А код в движке вырезает все левое от пользователей и приводит к нормальному виду.

                      Кажется невалидная верстка — это некомпетентность… мол и так сойдет.
                        +12
                        Нет, невалидная верска это скорее ГОСТы, чем некомпетентность. Можно делать по ГОСТам полное говно, а можно делать их не используя отличные кросс-браузерные и юзабельные сайты. Можно и наоборот, что чаще.

                        Об эту тему уже столько копий сломано, ну ее в болото.
                        +76
                        Мне абсолютно наплевать, валидный код или не валидный, если:

                        1. Сайт отображается во всех браузерах
                        2. Сайт отображается правильно во всех браузерах
                        3. Сайт отображается так, как было задумано во всех браузерах

                        И доктайпы я никогда не использую. Говнокод? Возможно. А какая разница? Ни одного внятного аргумента в пользу валидной верстки я так и не услышал.
                          –25
                          Не удивляйтесь, если стоматолог выдернет вам не тот зуб.
                            +36
                            Это явно не ответ на вопрос. Я вот, например тоже слабо понимаю как связана валидация и отображение в браузере. Если код будет 100% валиден он будет отображаться одинаково во всех браузерах? Нет? Зачем тогда валидация?
                              +4
                              > Я вот, например тоже слабо понимаю как связана валидация и отображение в браузере

                              Это по большому счету разные вещи. Опять же, проводя аналогию с ПО — то, что программа компилируется ещё не значит, что она работает правильно.
                              Зачем нужна валидность в xml? Мне кажется этот вопрос смешным.
                                +6
                                По аналогии с ПО если она не компилируется — она не работает. Тут работает, и как она работает от результатов валидации не зависит в принципе.
                                  +3
                                  > Тут работает
                                  Повторяю в очередной раз — невалидный XML не работает.
                                    –1
                                    Вы не правильно обьясняете им.
                                    — завтра может не работать (в новых версиях браузеров)

                                    Да и вообще это бесполезно обьяснять, люди которые на это плюют (на стандарты, а не навалидацию, хотя валидация — это и есть соответствие стандартам) просто не хотят учиться.
                                0
                                А вот представьте себе что браузеры откажутся рендерить невалидную верстку, или какой-нибудь ИЕ не согласится с тем что ваш xhtm является xml'ем, и отрендерит его как-то по странному. Или еще что-нибудь случится (пи станет равно 4-м). Что будет с вашей версткой?
                                  0
                                  Полезет ко всем… Но они об этом не задумываются, зачем думать то.
                                  Еще раз повторюсь:

                                  Стандарты — это «защита от дурака».

                                  А валидация — это проверка соответствия стандартам.
                                  Если бы не было стандартов — падали бы самолеты пачками, машины бы бились направо и налево, а любой электроприбор бил вас не только током…
                                    0
                                    Чёрт, вчера написал на скорую руку страничку одному другу (д.з. по информатике), допустил пару мелких ошибок в HTML, но решил, что для ДЗ сойдёт… А сегодня получил заряд бодрости от его компа. «Вот оно чё, Михалыч»…
                                +3
                                Речь идёт не о том или не том зубе, а о достижении нужного результата меньшими усилиями, финансами, квалификацией, чем эта задача реально требует. Говнокод? Да, он самый, но вам то какая разница, как пользователю, не лезущему с чужими страницами в валидаторы.
                                  +1
                                  Речь идет о профессионализме. Если ты прочитал документации, спецификации, знаешь чем отличается xhtml от html, что такое валидация, то для отображения сайта в браузере потребуется меньших усилий и финансов, чем тратить кучу времени на «подгонку», не разбираясь в сути вопорса. Не так ли?
                                    +16
                                    Нет, не так.

                                    В общем потролили и хватит, вон гугл вообще таблицами верстает и хорошо себя чувствует.

                                    И по-поводу «Если завтра выйдет браузер»… Как вы себе представляете выход браузера, в котором крашится 80% сайтов? Кто им будет пользоваться? Специально обученный загон W3G-мазохистов?
                                      –1
                                      Я ничего не утверждал про выход нового браузера. Я лишь призываю использовать правильные технологии, и соблюдать валидность XML, потому что невалидный XML просто не работает.
                                        +5
                                        > Я лишь призываю использовать правильные технологии
                                        К сожалению правильные технологии всего лишь технологии. Часть из них делается опять же для технологий и при их разработке не учитываются реалия сайтостроения, пожелания веб-мастеров, особенности работы браузеров и т.д. и т.п. — думаю этот список можно продолжать практически бесконечно.

                                        Иногда складывается впечатление, что стандарты делаются ради стандартов, а не ради их использования.

                                        В конечном итоге именно повседневная работа ставит все на свои места. То что сделано с умом и полезно — используется, что меняет и напрягает — обходится. Технологии, которые не следят за текущими веяниями могут быть забыты, потому что пожелания, требования, реалии каждодневной работы имеют способность постоянно меняться. А если еще учесть что на это все могут влиять различные экономические, социальные и политические факторы, то скажу я вам неблагодарное дело делать «правильные технологии», как говорится — всем угодить нельзя.
                                          –1
                                          > и при их разработке не учитываются реалия сайтостроения.
                                          Ничто не мешает верстальщику просто напрячься, немного поработать, исправив ошибки валидации, и попросив программиста изменить контент-тайп на правильный. Но дело в обычном лени или не понимании этих самых реалий сайтостроения.
                                            +40
                                            Мил человек. Я уверен, что вы молоды и рьяны (в плане опытав веб-разработке). Я сам таким был.
                                            Но этот этап в развитии проходит и наступает этап, как я писал уже ранее, сознательного нарушения правил.

                                            Я верстаю сложные макеты вслепую с первого раза, даже не смотря на результат в браузере примерно до 90% его готовности.
                                            Я знаю сотни нюансов рендеринга страниц во всех десктопных браузерах.
                                            Я знаю во всех подробностях как, что и почему работает.
                                            И поверьте, в свое время я достиг дзена в верстке и мог (да и могу) «поспорить» с мастерами вроде Чикуёнка (если, конечно, будет из-за чего).

                                            А знаете что потом? Надоели все эти понты. Потому что пока ты учишься — это хорошо и правильно. А потом превращается в сугубо понты. Которые НИКОМУ кроме вас самих не нужны.

                                            Я с улыбкой смотрю на ваш задор и бескомпромисность. Но это пройдет :)

                                            И отстаньте вы от XHTML. Когда мы начинали верстать — в нем верстали все. И причин тому масса была и есть.
                                            Он строже, он однозначнее, он читабельнее (а это крайне важно при поддержке больших проектов), он гибче.
                                            Да, он гибче чем хтмл, потому что я могу объявлять в нем неймспейсы, вставлять напрямую фрагменты XML, объявлять доп атрибуты и т.д. и т.п.
                                            Это всё — большие преимущества перед HTML4.
                                            А молодой и дерзкий HTML5 перенял все лучшие качества XHTML (что-то взял напрямую, чему-то предложил альтернативы). Поэтому он неплох.
                                            И черт с ним, с контент-тайпом. Ваш хваленый правильный контент-тайп — это утопия. Он не будет работать в ИЕ, он лишает нас возможности сознательного нарушенния правил, а это все крайне негативно сказывается на процессе разработки.

                                            В общем, остыньте, а через годик-другой откройте эту статью и посмейтесь.
                                              0
                                              Аплодирую вам стоя!
                                              PS: Дзена еще не достиг, но прошел через многое.
                                                0
                                                А все-таки ВСЕГДА без очень больших усилий можно сделать валидный код.
                                                +5
                                                И да, забыл добавить: я не в коем случае не оправдываю быдлокодеров, от свалки в коде которых тошнит и хочется сломать руки.
                                                Но гонения за красные полоски в валидаторе — глупость.
                                                Код должен быть работающим, аккуратным, чистым, читабельным. И только после этого — валидным.
                                                  0
                                                  А вот тут я не совсем согласен. Да в первую очередь показательность верстки это работа во всех браузерах, но валидность это еще и показатель того что ты можешь сделать качественный код, который возможно в будущем не рухнет на каком нибудь Android 88.01
                                                    +6
                                                    А это, кстати, глубокое заблуждение, что валидный код обязательно будет работать везде потом. В это хочется верить, но это не так.
                                                    Выйдет очередная версия оперы с очередным пакетом багов — и ваш код навернется.
                                                    Микрософт снова разругается с W3C и в ИЕ все перестанет работать.
                                                    Вебкит тупо откажется от поддержки «устаревших» правил — прийдется все переписывать.
                                                    Фаерфокс изменит синтаксис vendor-specific свойств — прийдется исправлять.
                                                    И т.д. и т.п.
                                                    Не тешьте себя иллюзиями :)

                                                    А по поводу валидности: у толлкового верстальщика код валиден априори. До тех пор, пока он не начинает добавлять «хаки» или какие-то хитрые штуки для каких-то специфических задач. И эти допы врядли загубят отображение страницы в будущих браузерах, т.к. нацелены и работают только там где нужно.

                                                    PS
                                                    поставьте на страницу Яндекс.Карты, скопируйте сгенерированный код и прогоните через валидатор. Офигеете где-то так же, как и я, наверное.
                                            +1
                                            браузер, в котором будет не работать бОльшая часть сайтов просто не выйдет =) а если выйдет, то юзеру будет не нужен.
                                        +7
                                        Не очень подходящее сравнение, куда уместнее сравнение с разговорным русским языком. Если употреблять слова паразиты, слова «типа», «че» и пр, 99% населения вас будет понимать, более того, если крепко выругаться — вас многие будут понимать быстрее и лучше, но есть правила русского языка и их нужно придерживаться, лишь потому, что это наш родной язык, больше аргументов не нужно. Аналогично и тут, есть стандарт, и если взялся писать — пиши правильно. Байки о том, что «и так сойдет, меня все понимают, буду материться и употреблять множество грубых жаргонизмов» == «и так сойдет, все браузеры отображают правильно, буду писать как хочу, не придерживаясь стандартов».
                                          –1
                                          о_О, чей-та мой моск не дошел до этого сравнения :) Самый правильный аргумент в пользу валидной верстки (И пусть всякие Татьянычи подавяться)
                                            0
                                            Язык вещь очень тонкая, и в отличие от HTML он меняется — слова заимствуются, появляются новые словоформы, устаревшие слова отмирают. HTML'ю до хрена лет и он не менялся на уровне стандарта, так чтож вы удивляетесь обычным для языка процессам?
                                            XHTML — чушь и нонсенс с точки зрения языка как носителя информации и именно по этому он отмер и слава богу!
                                          +1
                                          >Не удивляйтесь, если стоматолог выдернет вам не тот зуб.

                                          Вы имеете в виду, сертифицированный, лицензированный валидными сертификатами и лицензиями теоретег-стоматолог выдернет не тот зуб? В то время как практик с двадцатилетним стажем и без валидных сертификатов нормально залатает нужный? :)
                                            0
                                            Я имею в виду, что работать в любой сфере по принципу «работает, ну и пофиг» нельзя.
                                          +32
                                          Если следить за well-formed, то HTML легче поддерживать. К примеру, вы забыли закрыть тег где-то. Браузеры это схавали без проблем. В следующей итерации вы что-то поменяли в вёрстке и у вас пол-сайта развалилось. Вас это собъёт с толку, потому что вы будете очень долго искать ошибку в новом коде, а не старом.
                                            +10
                                            Не следить за валидностью — не значит плевать на его качество вовсе.
                                              +6
                                              Естественно, просто во главе должен стоять здравый смысл, а не какие-то фанатичные убеждения. Следить за оформленностью полезно, а слепо следовать гайдам — опасно, можно проделать много лишней работы. Гайды ведь тоже люди разрабатывают и могут так же ошибаться.
                                                –7
                                                «Не следить за валидностью» это всё равно, что выпустить некомпилируемый программный код в продакшен. То, что xhtml-ный «сайт отображается во всех браузерах» — счастливая случайность.
                                                  0
                                                  Знаете, тут скорее не некомпилируемый код, а просто плохо написанный. Но мне бы было жутко неприятно, если бы пришлось поддерживать код на Питоне, который работает, но про PEP автор кода не слышал вообще.
                                                  То есть, это тот код, который работает здесь и сейчас, а вот в следующей минорной версии уже может и не заработать, да и поддерживать его будет ой как непросто.
                                                    0
                                                    > а просто плохо написанный

                                                    Невалидный XML не работет. Это не «плохо написаный».
                                                      0
                                                      А если я честно указываю в доктайпе «html», то он тоже не работает, ежели не валиден? )
                                                        0
                                                        Доктайп не причём, прочитайте статью.
                                                          0
                                                          Читал. Content-type: text/html
                                                          Не работает?
                                                            0
                                                            Работает. Но это костыль, вы не находите?
                                                              0
                                                              Не нахожу. Я не верстальщик. Я программер. Верстаю, потому что нет верстальщика у нас )) Ну и заказчик не согласится оплачивать мне время на изучение валидной верстки.
                                                                0
                                                                При этом я абсолютно против кода, который генерирует варнинги :)
                                                                  0
                                                                  Имеется ввиду конечно же код компилируемый / серверноскриптовый.
                                                                0
                                                                это называется «обратная совместимость». xhtml1 специально разрабатывался так, чтобы быть совместимым с html парсерами. именно поэтому он может отдаваться как application/xhtml+xml так и text/html. xhtml — это формат и от метода парсинга его валидность или велформность ни коим образом не зависит. можно писать даже так mojura.110mb.com/test/x-html/xhtml-dtd.htm и это абсолютно валидно.
                                                +3
                                                Завтра выйдет новая версия браузера, которая будет интерпретировать некорректный код по-другому и сайт перестанет отображаться правильно во всех браузерах.
                                                  +7
                                                  Специально ради этого тезиса открыл свой сайт, который я сверстал в 2003-м году. Ничего не поменялось, ничего не отпало (разве что некоторые джаваскриптовые штуки, но мы не об этом).
                                                    +6
                                                    Я же написал «завтра» :)
                                                      0
                                                      Ну так, «завтра» интернетов может вообще не стать, а по факту уже долгие годы ничего не меняется, вон, зайдите на фоменко.ру, сайт на века сверстан :) Хотя 517 ошибок, 76 предупреждений.
                                                        +5
                                                        Это тот где кодировка неправильно в хроме определяется?
                                                          +2
                                                          Ãîðÿ÷åíüêîå íà Fomenko.Ru :::
                                                          » ÍÎÂÎÅ!!! Î÷åðåäíîå ñóïåðñêîå îáíîâëåíèå â ðàçäåëå Ïðèêîëüíûå êàðòèíêè! Äëÿ Âàñ äîáàâëåíà ãàëåðåÿ ôîòîïðèêîëîâ!


                                                          Таким приветствием меня встретил фоменко.ру.

                                                          Что характерно, первая ошибка, которую выдает валидатор: No Character Encoding Found! Falling back to windows-1252.
                                                            +1
                                                            говнокод на говносайте?!?!
                                                        0
                                                        А что за сайт, хотел бы глянуть?
                                                        –1
                                                        Завтра выйдет новая версия браузера, которая будет интерпретировать корректный код по-другому и сайт перестанет отображаться правильно во всех браузерах.
                                                          +9
                                                          Ну и? Давайте совсем не верстать?
                                                          Да и в этом случае ни один сайт в браузере работать не будет. Думаете долго проживет такая версия браузера?
                                                          +1
                                                          а, поскольку «неправильных» сайтов больше «правильных», то браузером не будут пользоваться.
                                                          +1
                                                          Хм. А если допустим браузер обновится и ваш сейчас работающий сайт перестанет нормально отображаться на следующий день. Как вам такой аргумент?
                                                            +1
                                                            Пример? Ни разу валидная верстка не ехала в финальных версиях браузеров.
                                                              +1
                                                              Да что пример. У меня таких примеров каждый день валом. Когда например в инлайн элементы помещают блочные, потом ставят им ещё марджины и паддинги и плачут что в ИЕ оно криво отображается
                                                            +1
                                                            Извольте. Если вы делаете сайты за деньги для клиентов, то невалидный код, равно как и характеристики типа PageSpeed, YSlow, etc, могут быть весомым для суда аргументом, чтобы признать работу выполненной некачественно. В следствии чего вам придётся вернуть полученное вознаграждение. Может частично, может полностью, а может и с компенсацией. Поверьте, в наше сутяжное время, рано или поздно найдётся юридическая фирма или общество защиты прав потребителей, которые охотно погреют на этом руки.
                                                              +7
                                                              Сомневаюсь. Суд будет смотреть на договор между клиентом и студией. Если в договоре нет упоминания валидности, то этому аргументу цена будет ноль.
                                                                0
                                                                Договором в продуктовом магазине является чек. В нём нет упоминания о качестве товара, однако в случае, если товар например просрочен, то он заменяется, или покупателю возвращаются деньги.
                                                                  +11
                                                                  Потому что на продукцию есть ГОСТы и ТУ, а деятельность торговых точек регулируется законодательно. Рекомендации (sic!) W3C, насколько я знаю, статуса ГОСТа не имеют. Поправьте меня, если я не прав.
                                                                    +1
                                                                    Поправляю. В случае, если в договоре не оговорены конкретные технические требования (или дисклеймер), а также в случае отсутствия официально принятых стандартов, в действие вступают нормы обычного права. Т.е. по принципу «так, как принято». И суд скорее учтёт рекомендации и стандарты авторитетных международных организаций и поисковых систем, а не то, как принято у веб-разработчиков.

                                                                    Кстати, потребовать расторжения договора и судебного запрета на оказание подобных услуг в дальнейшем, могут не только недовольные заказчики, но и любое лицо, пожелавшее действовать в чужом интересе неопределенного круга потребителей (см. ст 46 ФЗ ОЗПП). То есть это могут быть даже ваши конкуренты или недовольный сотрудник.
                                                                      0
                                                                      Спасибо, звучит убедительно. Я, правда, сомневаюсь, что в типовом договоре веб-студии не будет прописано технических требований. В бытностью мою работы на веб-студию туда тупо вносился список браузеров с указанием версий. Также ставилась подпись клиента на макете дизайна.
                                                                        0
                                                                        А вот тут таится весьма неприятный (для студий) подводный камень. В договоре должен быть либо подписан отказ от ответственности (за несоблюдение технических стандартов), либо особо одарённый заказчик сможет обвинить исполнителя. В лучшем случае в некомпетентности (и студии лучше взять на себя эту вину), а в худшем — в преднамеренном введении в заблуждение и злоупотреблении доверием.
                                                                          +2
                                                                          6.4. Исполнитель гарантирует стабильную работу и правильное отображение сайта в браузерах не старше трех лет (Internet Explorer 8.0 и выше; Firefox 3.5 и выше; Opera 10.5 и выше; Google Chrome 6.0 и выше; Safari 4 и выше), а также на компьютерах, произведенных не более 4 лет назад.

                                                                          Пока так. Никто этот пункт не читает.
                                                                          Все олдтаймеры видят в-принципе, не ничто а нечто более-менее юзабельное.

                                                                          На валидацию давно кладу в два слоя. Здравый смысл, техническая смекалка и опыт — главное, что есть у верстальщика
                                                              0
                                                              Забыли добавить:
                                                              4. у меня есть гарантии того, что сайт всегда будет отображаться правильно во всех браузерах.
                                                                0
                                                                Наверно в очень малой степени, но все-таки, валидность HTML и CSS верстки учитываются как минимум Google при ранжировании сайта blog.grandrating.ru/posts/130-parametrov-algoritma-google
                                                                  0
                                                                  Действительно, если бы был один браузер, тогда можно было бы придуывать стандарты.
                                                                  А когда в Опере и ФФ одни и теже веши отображатся по-разному… увольте…
                                                                    +2
                                                                    Вот так думает большинство и в итоге разработчики браузеров тоже не придерживаются стандартов и пытаются сделать так что бы страница отображалась правильно даже при невалидной верстке.

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

                                                                    Так что верстать не валидно — создавать себе/другим, в будущем, проблем.
                                                                      0
                                                                      А через год в новых версия браузеров введут полную проверку doctype (допустим, а такое может быть), в соотвествии со стандартами. Что тогда? А тогда все ваши сайты будут выдавать ошибки и вас очень захотят увидеть заказчики… в плохом понимании этого дела ;)

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

                                                                      Да, сейчас всё в порядке при гомнокоде, а что завтра? Тот кто придерживается стандартов, будет спать спокойно и будет уверен, что его ночью по башке не бахнет неуравновенный заказчик :)))
                                                                      +4
                                                                      А что, все браузеры уже рендерят страницы по стандартам? Утопия
                                                                        +7
                                                                        да. каждый по своему стандарту :)
                                                                        +19
                                                                        >Но разработчики не могут ответить на простой вопрос «Почему вы используете XHTML?»
                                                                        Верстальщики по этой части смешной народ. Вспомнить те же таблицы. Почему-то многие считают, что верстать табличные данные дивами — это хороший тон.
                                                                          +13
                                                                          Это называется впадать в крайности.
                                                                            +3
                                                                            Это для вас крайности, а на просторах Сети вполне себе нормальный подход.
                                                                          +11
                                                                          Просто пара примеров

                                                                          Без комментариев :)
                                                                            0
                                                                            Второй пример хотел тоже привести, но вовремя заметил ваш коммент.
                                                                              0
                                                                              У Гугла html5. html отобразится без проблем с html-ным контент-тайпом.
                                                                              +37
                                                                              О чем статья? Да ни о чем…
                                                                                +26
                                                                                Гнаться за 100% валидацией — бред. И на многих сложных сайтах невозможна в принципе.
                                                                                Почему? Скажем спасибо микрософту, прежде всего.

                                                                                Несколько дет назад, я из шкуры вон лез, чтобы мои страницы были 100% валидными. Это «молодость» верстальщика.
                                                                                А потом приходит понимание, что это не более чем понты.
                                                                                Валидатор — прежде всего инструмент для поиска ошибок.
                                                                                Ошибки нужно исправлять. НО, если ты знаешь правила — ты можешь и будешь их нарушать так, чтобы тебе и всем было лучше.
                                                                                Конечно, приятно, когда валидатор зеленый. Но иногда приходится намеренно нарушать стандарты, чтобы твой сайт работал везде как надо.
                                                                                  –3
                                                                                  > И на многих сложных сайтах невозможна в принципе.

                                                                                  Зачем тогда на них использовать XHTML?
                                                                                      +5
                                                                                      Мне кажется многие верстальщиков просто включают какую-то строку в начало документа, потому что она есть на остальных сайтах, не представляя особо что это вообще такое. Но с ней вроде как по фен-шую :)
                                                                                        +2
                                                                                        Тссс, это наш заговор.
                                                                                      +1
                                                                                      Точно. Эх, если б ещё все знали правила и умели их нарушать.
                                                                                        0
                                                                                        да вы просто сдались рано =). Шучу, шучу… =)
                                                                                          0
                                                                                          Возможна (100% валидация), вопрос в другом — сколько это займет времени.
                                                                                          Знаете, вы программист? Так я вам скажу, в пару проектах 100% валидация мне помогла при поиске программных ошибок в js. Так что, всё же валидация — это полезный инструмент.

                                                                                          Просто 99% верстальщиков — не программисты. Если бы они заботились о них, то делали бы валидные сайты.

                                                                                          Пример:
                                                                                          Долго искал почему не работает скрипт.
                                                                                          Хорошо сайт был валидным до подключения модуля, а оказалось что шаблон модуля выводил блок с id таким же как у другого, поэтому скрипт не работал. А так как с FF стояло дополнение html валидатор, то сразу было обращено внимание почему он выдал ошибку.
                                                                                          А теперь предаствьте на большом проекте как найти такую мелочную ошибку, так вот чем больше инструментов проверки для програмистов тем лучше!

                                                                                          Так что это не молодость — это здравый ход мысли. Жаль что запустили.

                                                                                          Ребята верстальщики я вас прощу как друзей, ну думайте о програмистах — делайте валидные сайты :)

                                                                                          +13
                                                                                          Ах да, верстальщики верстают в XHTML строго потому что привыкли.
                                                                                          Лично я на заре верстки невзлюбил HTML4. Скорее за слишком вольный подход. Не все теги закрываются, не все атрибуты одинаковы и т.п. Мне это НЕ нравится. Потому что зоопарк.
                                                                                          И перейдя таки на HTML5 я продолжаю писать код в XHTML-стиле (благо, так можно).

                                                                                          Причин, почему верстальщики начали использовать XHTML — они у каждого свои. И одна из них, потому что в начале нулевых он просто был популярен. А потом — привычка
                                                                                            +3
                                                                                            С зарей верстки вы погорячились… Я присутствовал на рассвете, но ни вас, ни XHTML там не застал :)
                                                                                              0
                                                                                              Имелось ввиду, на моей заре верстки)
                                                                                            +1
                                                                                            Безотносительно HTML/XHTML и иже с ними — меня вот тоже «пробивает» время от времени, и я начинаю гонять работающий и не критичный код через анализатор, и «вылизывать» его до тех пор, пока не останется ни одного предупреждения. Не то, что бы совсем уж бесполезная работа, но мне всегда при этом приходит на ум известный анекдот про то как мужик ко врачу приходит, мол, «проблем нет, да вот, неаккуратненько как-то...»
                                                                                            • UFO just landed and posted this here
                                                                                                +4
                                                                                                Наоборот, отличный повод не мыться, не чистить зубы и ходить с расстёгнутыми штанами, чтобы по виду и запаху сразу было понятно — вот идёт человек могучей креативности, не вписывающийся в рамки стандартов.
                                                                                                +10
                                                                                                Кстати про XHTML. Это ведь замечательно если ваш сайт правильно сверстан, все теги правильно закрываются, все аттрибуты обрамлены кавычками. Потому что тогда можно взять то что отдается браузеру, натравить XML парсер и получить валидный DOM без лишних телодвижений. Тогда можно писать и юнит тесты, и преобразовывать через xslt в любой удобный формат.

                                                                                                А с HTML так просто этого не сделать.
                                                                                                  +1
                                                                                                  Я не спорю, но как видно из комментариев никто не заморачивается — «Работает, ну и ладно».
                                                                                                  +2
                                                                                                  XHTML удобен на стороне сервера, во время генерации страницы — сервер работает с ним как с XML — генерацию XML проще контролировать, чем сборку plain-text-a. Это, конечно, зависит от используемого фреймворка.

                                                                                                  На клиенте, в браузере, уже совершенно неважно — HTML это или XHTML — до тех пор, пока все _нужные_мне_ браузеры правильно отображают страницу.
                                                                                                    +10
                                                                                                    За что я люблю нашу верстальщицу: Она может сверстать валидно, кросбраузерно, так как в макете, и это при том, что она верстает ПОД МОБИЛЬНЫЕ ПЛАТФОРМЫ.

                                                                                                    Дал ей прочитать эту статью, спросил как она относиться к валидности. Ответ что то на вроде: «А мне приятно, когда что то (*имела в ввиду валидатор), созданное далеко не глупыми людьми, не находит ОШИБОК, в моей работе».

                                                                                                    Иногда наблюдаю за её многочасовыми плясками с бубном, с этой валидностью и кросбраузерностью, хотя и ТАК УЖЕ ВСЕ РАБОТАЕТ, и пристаю с вопросом «Зачем же?». Ответ всё тот же: «Мне приятно, когда всё правильно.»

                                                                                                    Лично я утопичен в трактовке значения слова «правильно»: нет для него однозначного варианта, в верстке в частности и в разработке в целом. Есть слово «целесообразнее», а единственного и истинно верного «правильно» нет, и быть не должно.

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

                                                                                                    Извините за сумбурный комментарий, просто как раз недавно «любовался» работой нашей верстальщицы, именно с этой позиции, поэтому больше эмоций чем мыслей.
                                                                                                    • UFO just landed and posted this here
                                                                                                        +3
                                                                                                        Это хорошо, что ваша верстальщица не сталкивается (и не сталкивалась, видимо) с такими вещами, как ие7 и, не дай бог, ие6
                                                                                                          +3
                                                                                                          если за «приятно» работодатель готов платить — это… чуднО, на мой взгляд
                                                                                                          –1
                                                                                                          Один раз по «молодости» наткнулся на то что вот такой код:

                                                                                                          <p>
                                                                                                            <div></div>
                                                                                                          </p>
                                                                                                          


                                                                                                          в браузере превратился в:

                                                                                                          <p>
                                                                                                          </p>
                                                                                                          <div></div>
                                                                                                          


                                                                                                          С тех пор изредка валидирую страницы. Но без фанатизма.
                                                                                                            –1
                                                                                                            Положить блочный элемент в строчный? Ну-ну :)
                                                                                                              0
                                                                                                              Именно. Я считал его блочным элементом.
                                                                                                              В таком случае валидатор начинающим очень сильно помогает.
                                                                                                                0
                                                                                                                Он и есть блочный. Читайте DTD:

                                                                                                                <!ENTITY % block
                                                                                                                "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
                                                                                                                BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">


                                                                                                                А вкладывать div в p нельзя не потому, что p якобы строчный элемент, а потому что он допускает только строчное содержимое.
                                                                                                                  0
                                                                                                                  Возможно. Суть в том что по спецификации, его закрывать не обязательно, и при первом блочном элементе, или что-то вроде того, браузер должен его закрыть.

                                                                                                                  Валидатор в таком случае ругаеться на лишний .
                                                                                                            +5
                                                                                                            XHTML популярен из-за его однозначности. Да, в HTML тег можно опустить, но в этом случае браузера должен догадаться, где надо правильно расположить закрывающий тег. А это еще одна возможность различной интерпретации различными браузерами. С точки зрения однозначности инструкций XHTML и валидация — отличный помощник.
                                                                                                              +2
                                                                                                              Как по мне, порядок такой

                                                                                                              1. Корректность отображения везде
                                                                                                              2. Легкость работы с кодом (и верстальщику, и программисту)

                                                                                                              n. Валидность
                                                                                                                +13
                                                                                                                Еще одно интересное наблюдение: новички в программировании считают предупреждения компилятора чем-то, на что не стоит обращать внимание, а, лучше, вообще отключить. Опытные включают максимум проверок: это поможет избежать глупых ошибок и отпечаток.

                                                                                                                То же самое и с валидацией…
                                                                                                                  0
                                                                                                                  есть даже целое поколение гуру, которое выключает отображение ошибок и всё работает. Но если включить уровень отображения хотя бы Notice — всё валится и не поднимается, пока не перефиксишь все ошибки или пока не отключишь отображение назад.

                                                                                                                  Часто приходится работать в последнее время с такими. включенное отображение ошибок считают ламерством и отправляют курить маны по .htaccess
                                                                                                                    –1
                                                                                                                    Вот это «все работает» — очень хрупкое. Да, есть ситуации, в которых компилятор ругается notice'ом или warning'ом. Например
                                                                                                                    if (str = fgest(filePointer))
                                                                                                                    вполне рабочий код и такой warning можно спокойно игнорировать. Это нормально.
                                                                                                                    В Java эту ситуацию обошли элегантно: условие должно иметь булев тип, и точка.

                                                                                                                    Судя по вашему комментарию, работаете вы с PHP :-)

                                                                                                                    Помниться я как-то мучал такую CMS как Joomla и выпадали там вечные вызовы нестатических методов как статических. Это — неправильно, потому как если в одном из этих методов кто-то вдруг использует $this, то все сломается. Почему бы не объявить метод просто статическим? Ничего же не изменится от этого в функциональности. Вопрос риторический если что…

                                                                                                                    Так что если у вас все ломается при включении вывода ошибок, то гоните таких «гуру» подальше: такой подход здесь говнокодом зовется. Ну или сделайте вывод ошибок только в лог и смотрите туда, не?
                                                                                                                  +3
                                                                                                                  Всегда проверяю код валидатором и исправляю все ошибки, если они есть, чтобы документ был 100% валидным.
                                                                                                                    0
                                                                                                                    А как вы тогда у iframe в ишаках бордюрчик убираете?
                                                                                                                      +2
                                                                                                                      Кстати в ИЕ6-7 xhtml не работает в принципе.
                                                                                                                        0
                                                                                                                        Вот-вот. Поэтому content-type и не выставляют правильно в угоду ie.
                                                                                                                          –6
                                                                                                                          Не проще ли не писать в xhtml?
                                                                                                                            0
                                                                                                                            Проще вообще не писать. Но когда это нас останавливало?
                                                                                                                              –2
                                                                                                                              То есть вам принципиально писать на xhtml, даже если браузер всё равно парсит его как html?
                                                                                                                                0
                                                                                                                                Вы спросили что проще, я вам ответил.
                                                                                                                                XHTML я уже переболел, верстаю в HTML5.
                                                                                                                    +1
                                                                                                                    Понятие «валидная вёрстка» означает, что страница создана по некоторым стандартам.
                                                                                                                    Делать что либо по стандартам всегда проще. Однако если у вас есть силы/деньги/время, можете смело отступать от любого стандарта и добиваться той же кроссбраузерности как вам угодно.

                                                                                                                    «валидность — это не закон, а набор правил» к. Барбосса.
                                                                                                                      +1
                                                                                                                      Правильно, долой спецификации! Давайте устроим парад браузеров, каждый будет понимать HTML по своему, они закружатся в восхительном вальсе вселенского ппц, а верстальщики будут кричать «Ещё! Ещё!». Кричать и верстать в Dreamweaver.
                                                                                                                        0
                                                                                                                        Кстати, много где пишут что google любит валидный html. Какие есть мнения по этому поводу?
                                                                                                                        +1
                                                                                                                        Похоже осуждать верстальщика за невалидный XHTML, это все равно что бизнес-юзеру говорить что он накопипастил в экселе и вообще его структура говнокод…

                                                                                                                        Для программиста невалидный XML, даже если он неудовлетворяет схеме, а не xml правилам — это система не работает.
                                                                                                                          0
                                                                                                                          Кто когда-то работал с WML, у того <?xml?> уже в крови.
                                                                                                                            0
                                                                                                                            Мне кажется, реалии современного веба таковы, что качество верстки диктуется рынком браузеров, точнее тем как они(браузеры) эти стандарты интерпретируют, а не способностью верстальщика выдержать код в рамках существующих стандартов.

                                                                                                                            Мне кажется это очень показательным примером то, что тот-же google.com не проходит валидацию validator.w3.org/.
                                                                                                                              –2
                                                                                                                              Ещё раз повторюсь — у Гугла хтмл5, невалидность которого нестрашна.
                                                                                                                              0
                                                                                                                              А вот по поводу того, что браузеру все равно что там в doctype вы зря, у меня были с этим проблемы, оказалось что дело было именно в doctype. В одном документе было xhtml в другом html4.
                                                                                                                                0
                                                                                                                                Доктайп не даёт браузеру никакой информации о том, какой парсер нужно использовать.
                                                                                                                                  0
                                                                                                                                  Интересно, минусуют этот комментарий совсем нубы? Почитайте документацию что ли.
                                                                                                                                +1
                                                                                                                                Сильно подгаживают сторонние разработки: от всяких <noindex/> до виджетов Facebook, кнопок Google и прочего.
                                                                                                                                Использовать их и обеспечивать валидность иногда такой геморрой, что никаких сил нет.
                                                                                                                                  0
                                                                                                                                  Забудьте наконец про [noindex]
                                                                                                                                  Яндекс давно уже сделал валидный вариант.
                                                                                                                                  help.yandex.ru/webmaster/?id=1111858
                                                                                                                                  [!--noindex--]текст, индексирование которого нужно запретить[!--/noindex--]
                                                                                                                                    0
                                                                                                                                    Это понятно, <noindex/> для примера (его и раньше можно было сделать валидным, заключив в CDATA открывающий и закрывающий тэг).
                                                                                                                                    Остались виджеты, микроданные, RDFa (для него есть валидный доктайп XHTML+RDFa 1.1, но не более).
                                                                                                                                  +5
                                                                                                                                  Просто, чтобы погундеть — странно изливать ненависть по отношению к неким верстальщикам, делая столько орфографических ошибок :-)
                                                                                                                                    –5
                                                                                                                                    Однако я не работаю филологом.
                                                                                                                                      +6
                                                                                                                                      Однако грамоте не в ВУЗе учат.
                                                                                                                                      0
                                                                                                                                      странно изливать ненависть по отношению к неким верстальщикам, делая столько орфографических ошибок :-)
                                                                                                                                      «Понятно же — и пофиг» ;)
                                                                                                                                      +2
                                                                                                                                      Я вам скажу, валидаторы, мягко говоря, — зло. Нужно верстать сайт так, чтоб он выглядел соответствующе дизайну (в каких браузерах, это уже дело задачи).
                                                                                                                                      Однажды у меня была такая «good story bro»: я шел на собеседование по верстке, предварительно скинув примеры своих работ работодателю. На собеседовании, мне сказали, что я — плохой верстальщик и то, что мой код — не валиден (хотя работало пиксель в пиксель буквально везде, даже в ИЕ6), показали количество ошибок (из было около 30), но выяснить прямо на месте, в чем заключаются ошибки, не было возможности. Когда пришел домой, решил проверить, что же там невалидного. Оказалось, я забыл добавить атрибут alt картинкам. Через месяц мне позвонили из-за того, что срочно требуется верстак, даже предложили 600 баксов (для верстака в Одесской говноконторе — это очень даже ничего), но я отказался. Уж очень не хотелось работать на человека, который даже не посмотрел, в чем заключаются ошибки, упрекнув меня в дерьмовом качестве работы. Очень похоже на автора статьи. Главное — как выглядит. А валидаторам прямая дорога в печь.
                                                                                                                                        –2
                                                                                                                                        Ага-ага. «Работает и пофиг». Яркий пример.

                                                                                                                                        Надо вообще-то, чтобы и выглядело хорошо и сверстано в соответствии со спецификацией.
                                                                                                                                          +2
                                                                                                                                          С первым согласен, а второе кому надо?
                                                                                                                                            –3
                                                                                                                                            Компетентным девелоперам, которые прежде чем заняться каким-то делом читают документацию. Подход «работает и пофиг» — прямая дорога к деградации.

                                                                                                                                            Вообще, верстка почему-то считается настолько простым делом, что ей всё чаще стали заниматься дилетанты, у которых получается верстать под ИЕ6 и они начинают со временем считать себя гуру верстки. Даже не понимая что такое DTD, DOM, XML и т.д.
                                                                                                                                              0
                                                                                                                                              бизнесу главное чтобы работало и, да, никто не доплачивает за валидность… а вот за срыв сроков в угоду валидности, покарать еще как могут.
                                                                                                                                                0
                                                                                                                                                Я не думаю, что поддержка валидности забрала бы слишком много времени, просто валидаторы созданы для валидации, а не для решения каких-либо рабочих задач.
                                                                                                                                                0
                                                                                                                                                Прочел документацию, написал
                                                                                                                                                 <img/> вместо <img> 
                                                                                                                                                Здесь нужно сказать «ура»? И это несмотря на то, что XHTML (с правильными заголовками) был всегда мертвым: IE его просто не отображал и предлагал скачать, а сейчас, появился HTML5, который используют все «компетентные девелоперы». Все крики о валидации никогда не были актуальными.
                                                                                                                                          +1
                                                                                                                                          Относился к валидации, как многие из высказавшихся выше, пока не убил часа 4 на решение проблемы, из-за которой ie6 и 7 впадали в бесконечный цикл. Оказался незакрытый тэг a, на который навешены position:relative и еще что-то там в css — такая комбинация вешала старые ie намертво. Был бы код валидный — нашел бы сразу. А продираться через 100500 ошибок валидатора было сложнее, чем просто методом научного тыка комментировать куски страницы. С тех пор всегда требую и от себя, и от других зеленой полосочки в валидаторе.
                                                                                                                                            0
                                                                                                                                            Вам просто повезло встретить такую задачу, которая решилась бы простой поддержкой валидности. Вспомните, сколько багов имеет ИЕ.
                                                                                                                                              0
                                                                                                                                              Валидная верстка багам ИЕ не мешает. ;)

                                                                                                                                              Если взять за привычку, валидный html верстается на автомате, и валидатором по сути видно только опечатки.

                                                                                                                                              (А про валидацию CSS я ничего не говорю, это мне действительно видится бессмысленным)
                                                                                                                                            –2
                                                                                                                                            100% валидация никому кроме валидаторов не свалилась. Это то же самое что «пишите все на ООП!!111». И там где это нужно и там где эффективнее его не использовать. Все должно быть не до фанатизма, целесообразно.
                                                                                                                                              0
                                                                                                                                              Я дам простой пример навскидку: вы верстаете огромный проект, мучаетесь неделю чтобы все-все страницы проходили 100% валидацию, наконец все сделали, утерли пот со лба. И тут БАХ заказчик просит поставить на страницу виджет какого-нить стороннего сервиса, на код которого вы повлиять естественно никак не можете =) Все, приплыли.
                                                                                                                                              Короче если коротко: верстать кроссбраузерно — да, верстать 100% валидно — нет.
                                                                                                                                                +1
                                                                                                                                                > вы верстаете огромный проект, мучаетесь неделю чтобы все-все страницы проходили 100% валидацию.
                                                                                                                                                Я не представляю какой низкой квалификацией надо обладать, чтобы мучаться, добиваясь валидности верстки.
                                                                                                                                                  +1
                                                                                                                                                  Не стану развивать дискуссию, просто задайтесь вопросом почему НИ ОДИН из мастодонтов сети (смотрите ссылки из первых комментариев) не проходит валидаю? =) Раз это так просто и не справится разве что ребенок )
                                                                                                                                                    –2
                                                                                                                                                    Потому что «работает и пофиг».
                                                                                                                                                      0
                                                                                                                                                      Они работают.
                                                                                                                                                        0
                                                                                                                                                        Мое мнение — они работают, потому что позволяют браузеры которые лояльно относятся к ошибкам(да это ошибки) верстки.
                                                                                                                                              +10
                                                                                                                                              Что-то я последние пару лет редко бываю на хабре, что случилось? Это уже не суперхабр, а гипер, или у меня с недосыпу критичность восприятия зашкалила?

                                                                                                                                              Раньше тут dtd обсуждали как-то скучно-предметно, ну хотя бы так, а теперь о, вау, чуваки, бывает доктайп, а бывает mime-тип!
                                                                                                                                              И развесёлое заплюсованное ай-люлю в комеентариях:
                                                                                                                                              «А я вообще никакой доктайп не юзаю, проблемы подобные неведомы мне, какой же я молодец»,
                                                                                                                                              «какая разница сколько десятков у меня в коде косяков и хаков, главное что на текущий момент во всех браузерах, где я смотрел, всё одинаково»,
                                                                                                                                              вплоть до «а зачем вообще нужны эти стандарты, мне никто так и не объяснил»,
                                                                                                                                              и даже до «если валидный вариант не даёт максимальной скорости и высоконагрузочные сайты пренебрегают первым в пользу второго, то первое, видимо, не нужно ваще!»
                                                                                                                                              wtf?
                                                                                                                                                0
                                                                                                                                                с добрым утром. про торт уже поздно.
                                                                                                                                                +3
                                                                                                                                                Такое впечатление что я сплю. Это 2011 или 2000??

                                                                                                                                                Люди где вы и где гугл, яндекс....? Они работают по совершенно другим стандартам. Своим стандартам. Только потому что решают задачи с которыми многие из верстальщиков просто не встречаются в повседневной жизни. И из-за этого они изобретают стандарты! И конечно эти стандарты не поддерживаются validator.w3.org.

                                                                                                                                                Много уже было разговоров о стандартах и их полезности, но каждый раз люди которым просто влом читать спецификацию и потом ей придерживаться в своей работе начинают крики по поводу «да зачем… и так все работает...». Вы можете этого не делать это ваше право и ваш выбор, но ведь это ваша РАБОТА и некоторые странные люди считают что вы ее будете выполнять качественно, а качество в свою очередь определяется стандартами качества.

                                                                                                                                                Прошу прощения за резкий тон, но уже наболело после работы с кодом который пишут такие поклонники своих стандартов…

                                                                                                                                                  0
                                                                                                                                                  Всегда (да ВСЕГДА) можно сделать валидный код работающий везде.
                                                                                                                                                    0
                                                                                                                                                    В рамках определенных стандартов я с вами полностью согласен. Сам могу подтвердить ваши слова.
                                                                                                                                                    Но в отношении гугла и яндекса я говорил о тех же нестандартных тегах в картах которые можно вставить на сайт.
                                                                                                                                                      0
                                                                                                                                                      гугл предоставляет разные варианты, которые будут валидными как для xhtml, так и для html
                                                                                                                                                  +1
                                                                                                                                                  Мне кажется, что не надо путать понятия работающий код, красивый код и валидный код. Клиенту и заказчику важен первый пункт. Людям, которые будут поддерживать продукт — второй пункт. Для кого нужен третий — непонятно.
                                                                                                                                                  По поводу статьи — выглядит так, как будто автор узнал что-то новое и решил этим поделиться. К чему призывает статья — не понятно.
                                                                                                                                                  Кстати, насчет стандартов. Если я правильно понимаю (я не верстальщик) — стандарты требуют указывать doctype. При этом браузер — судя по статье — этого не учитывает. Так в чем логика этих стандартов?
                                                                                                                                                    0
                                                                                                                                                    Логика в том что всегда можно быть уверенным в некоторых вещах, а именно:

                                                                                                                                                    1. в том что все оформление отделено от структуры информации (нет инлайн стилей и тд и тп).
                                                                                                                                                    2. что элементы используются по назначению и в четко определенных для них местах.
                                                                                                                                                    3. в том что веб страница это структурированная по иерархии и смыслу информация, а не просто свалка из текста раскрашенного как сказал дизайнер.

                                                                                                                                                    Я бы добавил сюда пункты по оптимизации загрузки и рендеринга, но это пока не стало общепринятыми стандартами, но думаю что не на долго.

                                                                                                                                                    0
                                                                                                                                                    1. думаю, верстальщик может просто делать это правильно. Так для кого валидатор? Для заказчика, чтобы проверять, качественно ли была выполнена работа? Но ведь валидатор не дает даже 50% уверенности в этом. это все равно, что проверять качество работы девелопера тулзой, которая проверяет соблюдение best practices.
                                                                                                                                                    2. не думаю, что валидатор может это все проверить.
                                                                                                                                                    3. не вижу отличия от второго пункта, но опять таки — не думаю, что валидатор может это проверить.
                                                                                                                                                    Насчет оптимизации загрузки и рендеринга — если объясните, как валидатор может в этом помочь, то я соглашусь, что был не прав.
                                                                                                                                                      0
                                                                                                                                                      Извиняюсь, это было ответом на комментарий выше.
                                                                                                                                                        0
                                                                                                                                                        Я говорил о стандартах, а не о валидации.

                                                                                                                                                        2 пункт отличается от третьего тем что можно следуя правилам сделать «свалку из текста».

                                                                                                                                                        На данный момент что бы определить правильность использования структурных элементов кроме валидатора есть другие инструменты. Как пример gsnedders.html5.org/outliner/.

                                                                                                                                                        А оптимизацию загрузки можно проверить в code.google.com/intl/ru/speed/page-speed/
                                                                                                                                                          0
                                                                                                                                                          Видимо, я не правильно выразился. Под стандартами имел в виду именно валидатор, который эти стандарты проверяет, причем именно тот, о котором говорится в статье — ведь в статье говорится так, как будто он самый единственный и самый главный. В полезности самих стандартов (или скорее рекомендаций, в данном случае) а также в наличие других полезных инструментов, я не сомневаюсь.
                                                                                                                                                            0
                                                                                                                                                            В статье говорится о том что автор не понимает почему до сих пор используется XHTML, а не HTML5. И при этом он используется не как XHTML, а в формате HTML.

                                                                                                                                                            Под XHTML и HTML5 я имею ввиду стандарты и Doctype со всеми вытекающими.
                                                                                                                                                      –2
                                                                                                                                                      Валидация. Когда только начинал верстать, фанатично гонял верстку через валидатор. Фанатично разбирался как вставить валидно флеш. Матерился, когда ноиндекс, код счетчика или какая-нить закорючка из юзер-контента порола валидацию. И всё это ради чего?

                                                                                                                                                      Совместимости? Валидация лишь накладывает дополнительные сложности и ограничения при создании совместимого кода.

                                                                                                                                                      Производительности? Красоты? Увольте, грязные цсс-хаки (*, -, _) гораздо красивее громоздких условных коммантариев (а какой от них оверхед! а как неудобно разносить стили одного и того же элемента по разным файлам!).

                                                                                                                                                      Писать можно и нужно в целом валидно, никаких незакрытых тегов и разношерстных кавычек (это просто неаккуратно), но, простите, амперсанды в хрефах заменять на amp — это вообще как надо было придумать? Это уже стандарт ради стандарта а не ради удобства.

                                                                                                                                                      Почему XHTML — тут выше уже не раз писали. Кто-то начинал верстать, когда это было у всех на слуху, кому-то просто приглянулся стиль, строгость, как и мне. XHTML для многих — это не жесткий стандарт а просто кодинг гайдлайн — нижний регистр, двойные кавычки, итп.

                                                                                                                                                      Короче, добро пожаловать в реальный мир.

                                                                                                                                                      Этот пост — не трололо ли случаем? В конце 2011 года, на сайте айтишников — агрессивные идеологические наставления. Пф.
                                                                                                                                                        +1
                                                                                                                                                        Интересно согласитесь ли вы со мной, но мне видится очень простой путь по валидации: на мой (и не только мой) взгляд верстка полностью должна быть валидна на этапе ее сдачи заказчику. Обычно именно такой концепции придерживаются веб-студии, о которых я знаю (конечно я знаю не все 100500 студий ;) ).

                                                                                                                                                        P.S. «Но разработчики не могут ответить на простой вопрос «Почему вы используете XHTML?». Я не слышал ни одного внятного объяснения.»
                                                                                                                                                        Мы используем XHTML — для нас это вполне нормальный стандарт верстки, который покрывает все 100% потребностей клиентов. Мы в курсе о HTML5, но пока большого смыла в переходе на него не видим. Да — там есть плюшки, которых нет в XHTML, но зачем они нам?! Вот вам и ответ на вопрос «Почему вы используете XHTML?». Это, конечно, не значит, что мы погрузились в XHTML и выкапываться из него не будем (когда мы увидим реальные (для нас) перспективы в использовании плюшек HTML5, без которых будет сложно, то, конечно, сразу переедем на него). Как-то так ;).
                                                                                                                                                          0
                                                                                                                                                          Ничто не мешает начать использовать HTML5 без плюшек, с синтаксисом XHTML.
                                                                                                                                                            +1
                                                                                                                                                            Да, но зачем?! Только ради «крутости» использовать ту или иную технологию лучше не стоит. Лучше под каждую задачу выбирать технологии, а не наоборот — ИМХО. Встанет такая задача — с удовольствием начнем активно использовать HTML5, а пока и так все ок ;).

                                                                                                                                                            P.S. Интересно когда Хабр заюзает HTML5?
                                                                                                                                                          +1
                                                                                                                                                          Doctype ни на что не влияет? Да вы что?
                                                                                                                                                          Наверное мне тогда глюки видятся при изменении transitional на strict
                                                                                                                                                            0
                                                                                                                                                            Почитайте внимательнее. Doctype не влияет на выбор парсера.
                                                                                                                                                            +1
                                                                                                                                                            Люди посмотрите это видео и давайте закроем разговоры о том что еще можно использовать XHTML.

                                                                                                                                                            В HTML5 разрешено все то что было камнем преткновения в использовании XHTML transitional и strict.

                                                                                                                                                            Таргет можно использовать
                                                                                                                                                            Можно вставлять блочные элементы в ссылку
                                                                                                                                                            IE6 работает в Standards Compliance Mode
                                                                                                                                                              0
                                                                                                                                                              Профессионализм, прежде всего, это осознание того, что результат (в данном случае отображение) первичен по отношению к инструментам и процессам.
                                                                                                                                                                0
                                                                                                                                                                А никто не отменял XHTML. По сути, HTML5 описывает модель построения документа. Какой синтаксис использовать — XML или SGML — решение уже разработчика. Кстати, проблемы с well-formed XML (как и со всякими детскими уязвимостями, вроде SQL Injection или XSS) из-за неправильных инструментов.
                                                                                                                                                                  +4
                                                                                                                                                                  Уважаемый автор, открою вам секрет, организация W3C «разрабатывает для Интернета единые принципы и стандарты» — ru.wikipedia.org/wiki/W3C, так называемые РЕКОМЕНДАЦИИ, а не строго обозначенные правила, принебрегать которыми крайне исключено.

                                                                                                                                                                  Конечному пользователю абсолютно по барабану валиден ваш сайт или нет, главное чтоб все корректно отображалось и работало. Он не полезет при первом посещении проверять валиден ли код и со словами «Ага! Хуево сверстано», закроет страницу сайта.

                                                                                                                                                                  И вообще, правильно сверстанная страница еще не значит валидная. Можно валидно такое гавно наверстать, что ни один программист потом разобраться не сможет.

                                                                                                                                                                  В соответствии со стандартами нужно верстать, но не до фанатизма, имхо.

                                                                                                                                                                  >Выбирайте правильные технологии, читайте документации и пишите правильный код.
                                                                                                                                                                  Ради интереса, давайте взглянем на ваш собственный «правильный код». Дайте ссылку.
                                                                                                                                                                  • UFO just landed and posted this here
                                                                                                                                                                      0
                                                                                                                                                                      Может я не прав, но выдавать фатальные ошибки при отображении обычной страницы… это неправильно.
                                                                                                                                                                      Ну отобразится страница криво и что?? Показывать пользователю ошибки парсинга это тупо как-то.

                                                                                                                                                                      Такой строгий синтаксис существует для передачи и обработки данных… там подобные ошибки могут быть роковыми.

                                                                                                                                                                      Поэтому всё должно быть на своих местах: страница в вебе — html, обмен данными сервер-клиент — xml(а лучше json:) )
                                                                                                                                                                        0
                                                                                                                                                                        XHTML — хорошая идея. Но если кому-то он не нравится, то и использовать его через 5-ую точку не стоит. И, если уж от XHTML 2 отказались, то XHTML 5 есть (в процессе...) как и HTML 5 ;).
                                                                                                                                                                          0
                                                                                                                                                                          мне интересно, почему в этом топике никто ни разу не упомянул quirks mode?

                                                                                                                                                                          моё имхо: порядок в коде — порядок в голове. правила для прохождения валидации не такие трудные, и я приучился верстать сразу на зелёнку. и сразу появились плюсы: время дебага вёрстки в разных браузерах уменьшилось в разы.
                                                                                                                                                                            0
                                                                                                                                                                            Позвольте спросить, я вас не до конца понял: вы говорите, что необходимо верстать валидно?
                                                                                                                                                                              0
                                                                                                                                                                              Как тут уже было неоднократно сказано, в конечном итоге всем наплевать на:
                                                                                                                                                                              1. Качество и красоту html кода, если сайт отображается как надо
                                                                                                                                                                              2. Качество php кода, если сайт работает быстро
                                                                                                                                                                              3. На все остальное, потому что поставленные задачи решены ОПТИМАЛЬНО

                                                                                                                                                                              Для каждого нового проекта Вы сами оцениваете, что Вам сейчас нужно, быстро наговнокодить и сделать проект, или сидеть и постигать Дзен. Может оказаться так, что постигнув Дзен Ваш проект будет уже нафиг никому не нужен. Каждый решает сам, что ему важно, в этом прелесть нашей жизни.
                                                                                                                                                                              • UFO just landed and posted this here
                                                                                                                                                                                  +2
                                                                                                                                                                                  Авторы парсеров говорят всем, строго соблюдающим стандарты, спасибо. Вставлю свои 5 копеек — если я мелкому элементу интерфейса не указал alt, то ни на что ни сейчас, ни в будущем это не повлияет, по поводу ошибок такого рода даже задумываться не стоит, а вот незакрытый тег — с этим надо бороться.
                                                                                                                                                                                    0
                                                                                                                                                                                    если я мелкому элементу интерфейса не указал alt, то ни на что ни сейчас, ни в будущем это не повлияет


                                                                                                                                                                                    На самом деле может. Если парсер полагается на то, что он должен быть у всякой картинки, может вывалиться непредвиденная ошибка. Пустячок, а неприятно.
                                                                                                                                                                                    0
                                                                                                                                                                                    А затем готовьтесь к сюрпризам. Придется быть уверенным в том, что визуальный редактор в вашей CMS отдаст валидный код (даже если клиент в нём вручную исправит код в html-view), придется беспокоиться о специальных символах, придется беспокоиться о CDATA например в скриптах и т. д.


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

                                                                                                                                                                                    Я знаю о чём говорю — несколько лет поддерживал проект с кошерным Content-type: application/xhtml+xml. Разумеется, IE там не требовался.
                                                                                                                                                                                      0
                                                                                                                                                                                      Пардон: «не во всех проблемах» → «не во всех проектах».
                                                                                                                                                                                      0
                                                                                                                                                                                      отлично. вы написали, как по идее должно быть…
                                                                                                                                                                                      И лично я тоже придерживаюсь мнения, что лучший валидатор это браузер. И при написании кода стараюсь проверять как можно бОльшими браузерами (и для этого в Virtual box у меня стоит порядка 20 систем с разными браузерами).
                                                                                                                                                                                      А попробуйте написать текст для заказчиков, которые сидят в IE6, и не просто написать, а чтобы они поняли… Ведь им плевать на стандарты, не правда ли? )

                                                                                                                                                                                      говорю не просто так: не очень давно столкнулся с подобным: у директора одной довольно крупной фирмы на рабочем компьютере стоит IE6 (и куда только их IT-отдел смотрит), а дома — последний хром.
                                                                                                                                                                                      Там он нам весь мозг вынес, что дома он так видит, а на работе по другому!
                                                                                                                                                                                      Пришлось переделывать так, что вообще в любом браузере смотрелся одинаково (потери функциональности в IE6 не было)…

                                                                                                                                                                                      так вот… к чему я это все: стандарты стандартами. И стандарты — это хорошо, но не всегда правильно, чтоли…

                                                                                                                                                                                      P.S.: попробуйте посмотреть сайт «по-стандартам» в IE6 (не приведи господь:) ) или хотя бы в IE7, и посмотрите на статистику использования этих браузеров…
                                                                                                                                                                                        +1
                                                                                                                                                                                        Наконец-то нашелся еще один человек. Оказывается я не одинок в борьбе за качество верстки и соотвествии стандартов. Правда в этой борьбе потерял более 100 единиц кармы, но на это плевать.

                                                                                                                                                                                        Соотвествие стандартам это не просто слова. Многие стандарты написаны, что называется кровью.
                                                                                                                                                                                        И поверьте писали их далеко не дураки. Поэтому Лучший валидатор — это браузер действительно с технической точки зрения дилетанство, а студия Лебедева не особо отличалась технически грамотными специалистами. И плохо что 99% верстальщиков теперь его цитируют.
                                                                                                                                                                                          0
                                                                                                                                                                                          Спасибо… подумал, поразмыслил, сделал кое какие выводы.

                                                                                                                                                                                          Only users with full accounts can post comments. Log in, please.