Это приемлемо для недействительного XHTML?

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

Так должны ли инструменты (и разработчики) использовать тип документа XHTML, если они собираются создать недопустимую разметку? И должны ли браузеры быть более твердыми в принятии плохой наценки?

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

6.08.2008 14:21:18
Допустимо ли в IE игнорировать веб-стандарты?
GateKiller 6.08.2008 14:29:39
14 ОТВЕТОВ
РЕШЕНИЕ

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

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

(Кстати, stackoverflow.com не проходит оба эти теста, и предложения по устранению проблем были отклонены .)

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

16
23.05.2017 12:33:27
Кроме того, HTML4 (черт возьми, даже HTML5) позволяет опускать определенные элементы и при этом создавать допустимую разметку (что иногда невозможно в XHTML по определению). В любом случае редко нужно использовать недопустимую разметку (возможно, для включения апплетов Flash или Java в устаревшие браузеры). Чаще всего это неряшливость или отсутствие очистки после генерации HTML.
Alan Plum 25.02.2010 09:11:53
Подпишите под каждым словом. Очень хорошо сказано.
user151323 25.02.2010 09:26:33

По-разному. У меня была такая проблема с моим блогом, когда видео на YouTube вызывало некорректный XHTML, но оно воспроизводилось нормально. С другой стороны, у меня есть ссылка «Действительный XHTML», а сочетание заявления «Действительный XHTML» и недействительного XHTML не является профессиональным.

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

0
6.08.2008 14:25:40

Пока это работает в IE, FF, Safari (вставьте другой браузер здесь), у вас должно быть все в порядке. Проверка не так важна, как правильная визуализация в нескольких браузерах. Например, если он действителен, это не значит, что он будет работать в IE должным образом.

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

0
6.08.2008 14:29:09
Если это неверно, «правильно отображать» является неопределенным значением, так как невозможно точно определить, что означает «правильный».
Kirk Strauser 11.10.2008 13:37:47
Но что хорошего в «допустимости», если браузеры даже не поддерживают его правильно? Я могу написать «правильный» XHTML весь день, но это не значит, что он будет отображать один и тот же кросс-браузер.
Bryan Denny 13.08.2009 12:38:08

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

Браузеры отклонят плохую разметку, если страница будет отправлена ​​как application / xhtml + xml, но это редко происходит. Это хорошо.

Я бы больше беспокоился о таких вещах, как встроенное использование CSS и JavaScript с переполнением стека, просто потому, что они усложняют обслуживание.

1
6.08.2008 14:29:44

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

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

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

0
6.08.2008 14:29:56

Я не понимаю, почему все начинают пытаться привести свои сайты в соответствие со стандартом, когда у некоторых браузеров возникают проблемы с правильным отображением стандартного кода. Я занимаюсь веб-дизайном около 10 лет, и я прекратил двойное кодирование (читай: хакерство css) и менял глупости, чтобы я мог нажать кнопку на своем сайте.

Я полагаю, что использование <div> приведет к тому, что вы будете недопустимым, и вам будет сложнее выполнить любой основной JavaScript / AJAX без него.

0
6.08.2008 14:30:23
Какие? <div> идеально подходит для XHTML.
Kirk Strauser 11.10.2008 13:39:25

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

0
6.08.2008 14:33:33

Хотя я верю в стремление к правильному XHTML и CSS, это часто трудно сделать по ряду причин.

  • Во-первых, часть контента может быть загружена через AJAX. Иногда фрагменты неправильно вставляются в существующий DOM.
  • HTML-код, который вы просматриваете, может быть создан не в одном документе. Например, страница может быть составлена ​​из компонентов или шаблонов, а затем объединена непосредственно перед ее отображением в браузере. Это не оправдание, но вы не можете предположить, что HTML-код, который вы видите, был закодирован вручную одновременно.
  • Что если некоторый код, сгенерированный Markdown, недействителен? Вы не можете винить переполнение стека за то, что оно не выдает корректный код.
  • Наконец, цель DOCTYPE - не просто сказать «Привет, я использую действительный код», но также дать браузеру информацию о том, что вы пытаетесь сделать, чтобы он хотя бы приблизился к правильному синтаксическому анализу. эта информация.

Я не думаю, что большинство разработчиков указывают DOCTYPE, а затем явно не соблюдают его.

1
6.08.2008 14:35:35

Для 99,999% сайтов это не имеет значения. Единственный раз, когда это имело значение, я запустил ввод HTML через HTMLTidy, чтобы XHTML-ize его, а затем запустил свою обработку на нем.

В основном, это аксиома старого программиста: не верь никаким данным.

0
6.08.2008 14:37:08

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

1
6.08.2008 14:42:25

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

2
2.09.2008 09:56:54

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

Использование XHTML облегчает автоматическое обнаружение ошибок, каждое изменение может быть автоматически проверено на недопустимую разметку. Это предотвращает ошибки, особенно при использовании автоматически сгенерированного контента. Для веб-разработчика очень легко использовать механизм шаблонов (JSP, ASP.NET StringTemplate, и так далее) копировать / вставлять один закрывающий тег слишком мало или слишком много. Когда это ваша единственная ошибка, она может быть обнаружена и исправлена ​​немедленно. Однажды я работал на сайте, у которого было 165 ошибок проверки на страницу, из которых 2 или 3 были фактическими ошибками. Их было трудно найти в суматохе других ошибок. Автоматическая проверка предотвратила бы эти ошибки у источника.

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

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

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

2
2.09.2008 10:11:45

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

2
15.09.2008 15:34:30

Нет, вы не должны использовать XHTML, если вы не можете гарантировать корректность, и на практике вы не можете гарантировать это, если вы не используете XML-сериализатор для генерации разметки. Читайте о создании XML .

Правильность - это то, что отличает XHTML от HTML. XHTML с ошибкой «только один» перестает быть XHTML. Это должно быть идеально каждый раз .

Если сайт «XHTML» работает с некоторыми ошибками, это потому, что браузеры игнорируют DOCTYPE и интерпретируют страницу как HTML.

Посмотрите прокси XHTML, который заставляет интерпретацию страниц как XHTML. Большую часть времени они терпят неудачу . Это одна из причин того, что будущее XHTML неопределенно и почему разработка HTML была возобновлена .

1
11.10.2008 13:16:24