Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

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

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

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

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

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

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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

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

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

Ответ 7

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

Ответ 8

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

Хорошая формальность - это то, что отличает XHTML от HTML. XHTML с "только одной" ошибкой разметки перестает быть XHTML. Он должен быть идеальным каждый раз.

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

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

Ответ 9

Это зависит. У меня была проблема с моим блогом, где видео YouTube вызвало недействительный XHTML, но оно получилось прекрасным. С другой стороны, у меня есть ссылка "Valid XHTML", а комбинация "Valid XHTML" и недопустимый XHTML не являются профессиональными.

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

Ответ 10

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

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

Ответ 11

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

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

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

Ответ 12

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

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

Ответ 13

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

Ответ 14

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

В значительной степени это старая аксиома программиста: не доверяй вход.