Я заметил, что многие сайты, включая ТАК, используют XHTML в качестве языка разметки, а затем не соответствуют спецификации. Просто просматривая источник для SO, отсутствуют закрывающие теги для абзацев, недопустимые элементы и т. д.
Так должны ли инструменты (и разработчики) использовать тип документа XHTML, если они собираются создавать недопустимую разметку? И должны ли браузеры более твердо относиться к плохой разметке?
И прежде, чем кто-либо начнет лицемерить, в моем блоге есть одна недействительная разметка, включающая заглавную букву (или это было в последний раз, когда я проверял), которая включает стилизацию тега noscript.





По-разному. У меня был тот проблема с моим блогом, где видео YouTube вызывало недопустимый XHTML, но оно отображалось нормально. С другой стороны, у меня есть ссылка «Действительный XHTML», а сочетание утверждения «Действительный XHTML» и недопустимого XHTML не является профессиональным.
Поскольку SO не претендует на то, чтобы быть действительным, я думаю, что это приемлемо, но лично, если бы я был Джеффом, я бы обеспокоился и попытался исправить это, даже если он хорошо выглядит в современных браузерах, но некоторые люди предпочитают просто двигаться дальше и фактически добиваться своей цели вместо исправления несуществующих ошибок.
Пока он работает в IE, FF, Safari (вставьте сюда другой браузер), все будет в порядке. Проверка не так важна, как правильная визуализация в нескольких браузерах. То, что он действителен, не означает, например, что он будет правильно работать в IE.
Запустите Google Analytics или аналогичный на своем сайте и посмотрите, какие браузеры используют ваши пользователи, а затем решите, какие браузеры вам нужно поддерживать больше всего, и подумайте о менее важных, когда у вас будет для этого свободное время.
Если он недействителен, значит «правильно отрисовать» - это неопределенное значение, поскольку невозможно точно определить, что означает «правильный».
Но что хорошего в «действительном», если браузеры даже не поддерживают его правильно? Я могу писать «действительный» XHTML весь день, но это не значит, что он будет отображать один и тот же кросс-браузер.
Я бы вообще не стал использовать XHTML только для того, чтобы избавиться от философского напряжения. В любом случае, браузеры не воспринимают его как XHTML.
Браузеры отклонят плохую разметку, если страница отправляется как application / xhtml + xml, но это случается редко. Это хорошо.
Меня больше беспокоят такие вещи, как встроенное использование CSS и JavaScript с Stack Overflow, просто потому, что они усложняют обслуживание.
Я говорю, что если он работает нормально, то не имеет значения, идеальный ли он по пикселям.
Требуется время, чтобы сайт заработал так, как вы хотите, возврат и внесение изменений немного изменит способ отображения страницы, затем вам нужно исправить проблемы те.
Я не говорю, что вы должны создавать неряшливые веб-страницы, но я не вижу причин исправлять то, что не сломано. В ближайшем будущем браузеры не откажутся от поддержки исправления ошибок.
Я не понимаю, почему все увлекаются попытками привести свои веб-сайты в соответствие со стандартом, когда в некоторых браузерах все еще возникают проблемы с правильной обработкой стандартного кода. Я занимаюсь веб-дизайном около 10 лет и перестал использовать двойное кодирование (читай: взлом css) и менять глупые вещи только для того, чтобы разместить кнопку на своем сайте.
Я считаю, что использование a приведет к тому, что вы станете недействительным, и без него станет немного сложнее выполнять любой основной JavaScript / AJAX.
Какие?
Стандартов так много, и они так плохо «соблюдаются» или поддерживаются, что я не думаю, что это имеет значение. Не поймите меня неправильно, я думаю, что должны быть стандарты, но поскольку они не соблюдаются, им никто не следует, и это огромная нисходящая спираль.
Хотя я верю в стремление к правильному XHTML и CSS, это часто бывает трудно сделать по ряду причин.
Я не думаю, что большинство разработчиков указывают DOCTYPE, а затем явно не соблюдают его.
Для 99,999% сайтов это действительно не имеет значения. Единственный раз, когда это было важно, я прогнал ввод HTML через HTMLTidy, чтобы преобразовать его в XHTML, а затем выполнил обработку.
По сути, это аксиома старого программиста: не доверять входным данным.
хотя я согласен с утверждением «если он работает нормально, не беспокойтесь об этом», тем не менее, он хорош для соблюдения стандарта, даже если он не может полностью поддерживаться прямо сейчас. вы все еще можете использовать Table для макета, но по какой-то причине это нехорошо.
Есть много причин для использования действующей разметки. Мне больше всего нравится то, что он позволяет вам использовать валидацию как форму регрессионного тестирования, предотвращая, чтобы эквивалент разметки «дельта-гниения» приводил к реальным проблемам рендеринга, когда ошибки достигают некоторой критической массы. И действительно, это просто неаккуратно, позволяя накапливаться «ленивым» ошибкам, таким как опечатки и неправильно вложенные / незакрытые теги. Действительная разметка - это один из способов идентифицировать увлеченные программисты.
Также существует проблема отладки: действительная разметка также дает вам стабильную основу для работы над неизбежными проблемами кросс-браузерной совместимости. Ни один веб-разработчик, который ценит свое время, не должен начинать отладку проблем совместимости браузера, предварительно не убедившись, что разметка как минимум допустима синтаксически, а у любой другой недопустимой разметки должна быть веская причина для ее присутствия.
(Между прочим, stackoverflow.com не проходит ни эти тесты, ни предложения по устранению проблем мыотклоненный.)
Все это говорит о том, что для ответа на ваш конкретный вопрос, вероятно, не стоит использовать один из XHTML-типов документов, если вы не планируете создавать действительную (или правильно сформированную наименее) разметку. Основные преимущества XHTML проистекают из того факта, что XHTML - это XML, что позволяет обрабатывать и преобразовывать его с помощью инструментов и технологий, работающих с XML. Если вы не планируете делать свой XHTML правильно сформированным XML, тогда нет особого смысла выбирать этот тип документа. Последняя спецификация HTML 4, вероятно, сделает все, что вам нужно, и она гораздо более снисходительна.
Кроме того, HTML4 (черт возьми, даже HTML5) позволяет вам опускать определенные элементы и по-прежнему создавать допустимую разметку (что иногда невозможно в XHTML по определению). В любом случае, редко требуется использовать недопустимую разметку (возможно, для включения апплетов Flash или Java в устаревшие браузеры). Чаще всего это небрежность или отсутствие очистки после генерации HTML.
Подпишитесь под каждым словом. Очень хорошо сказано.
Мы всегда должны пытаться привести его в соответствие со стандартами. Мы будем уверены, что веб-сайт будет отображаться и нормально работать в текущих и будущих браузерах.
Я не думаю, что если вы укажете doctype, есть какая-то причина не придерживаться этого doctype.
Использование XHTML упрощает автоматическое обнаружение ошибок, каждое изменение можно автоматически проверять на недопустимую разметку. Это предотвращает ошибки, особенно при использовании автоматически сгенерированного контента. Веб-разработчику, использующему механизм шаблонов (JSP, ASP.NET StringTemplate и т. д.), Действительно легко скопировать / вставить слишком мало или слишком много одного закрывающего тега. Если это ваша единственная ошибка, ее можно сразу обнаружить и исправить. Однажды я работал на сайте, на котором было 165 ошибок проверки на странице, из которых 2 или 3 были фактическими ошибками. Их было трудно найти среди множества других ошибок. Автоматическая проверка предотвратила бы эти ошибки в источнике.
Излишне говорить, что выбор стандарта и его соблюдение никогда не принесет пользы для взаимодействия с другими системами (скрейперами, программами чтения с экрана, поисковыми системами), и я никогда не сталкивался с ситуацией, когда действительный семантический XHTML с решением CSS был бы невозможен для всех. основные браузеры.
Очевидно, что при работе со сложными системами не всегда возможно придерживаться своего doctype, но это в основном результат неправильного взаимодействия между разными командами, разрабатывающими разные части этих систем или, скорее всего, устаревшие системы. В последнем случае, вероятно, лучше изолировать эти случаи и соответствующим образом изменить свой тип документа.
Хорошо быть прагматичным и не придерживаться XHTML только потому, что кто-то так сказал, независимо от затрат, но с текущими знаниями о CSS и браузерах, инструментах тестирования и проверки в большинстве случаев выгоды намного превышают затраты.
Вы можете сказать, что у меня есть ОКР относительно достоверности XHTML. Я считаю, что большинство проблем с недействительным кодом исходит от программистов, не знающих разницы между HTML и XHTML. Я писал на 100% корректные XHTML и CSS или какое-то время и никогда не имел серьезных проблем с рендерингом в других браузерах. Если вы сохраните все в силе и не попробуете ничего слишком экзотического с CSS, вы сэкономите массу времени на исправлениях.
Нет, вам не следует использовать XHTML, если вы не можете гарантировать правильность формата, и на практике вы не можете этого гарантировать, если не используете сериализатор XML для генерации разметки. Прочтите о производстве XML.
Правильный формат - это в, который отличает XHTML от HTML. XHTML с «всего одной» ошибкой разметки перестает быть XHTML. Он должен быть идеальным каждый раз.
Если сайт "XHTML" работает с некоторыми ошибками, это потому, что браузеры игнорируют DOCTYPE и интерпретирует страницу как HTML.
См. Прокси-сервер XHTML, который принудительно интерпретирует страницы как XHTML. В большинстве случаев они с треском проваливаются. Это одна из причин неопределенности будущего XHTML и почему возобновилась разработка HTML.
Допустимо ли игнорирование веб-стандартов IE?