Я предполагаю, что ваш вопрос связан с красной косой чертой на самозакрывающихся элементах при просмотре исходного кода в Firefox. Если это так, вы попали в одну из самых ярых, но в то же время пассивно агрессивных дебатов в войнах между создателями браузеров и веб-разработчиками. XHTML - это не просто разметка документа. Это также о том, как документы предназначены для предоставления через Интернет.
Прежде чем я начну; Я изо всех сил стараюсь не принимать здесь сторону.
В спецификации XHTML 1.1 сказано, что веб-сервер должен обслуживать XHTML с приложением Content-Type / xhtml + xml. Firefox выделяет эти завершающие косые черты как недействительные, потому что ваш документ обслуживается как text / html, а не application / xhtml + xml. Возьмите эти два примера; идентичная разметка, одна служит application / xhtml + xml, другая - text / html.
http://alanstorm.com/testbed/xhtml-as-html.php
http://alanstorm.com/testbed/xhtml-as-xhtml.php
Firefox помечает косую черту в метатеге как недопустимый для документа, обслуживаемого text / html, и действительный для документа, обслуживаемого application / xhtml + xml.
Почему это противоречиво
Для разработчика браузера смысл XHTML в том, что вы можете обращаться со своим документом как с XML, что означает, что если кто-то отправляет вам что-то недопустимое, в спецификации говорится, что вам не нужно его анализировать. Таким образом, если документ обслуживается как application / xhtml + xml и имеет некорректно сформированный контент, разработчик может сказать «не моя проблема». Вы можете увидеть это в действии здесь
http://alanstorm.com/testbed/xhtml-not-valid.php
Когда документ используется как text / html, Firefox рассматривает его как обычный старый HTML-документ и использует прощение, исправляет его, анализирует процедуры
http://alanstorm.com/testbed/xhtml-not-valid-as-html.php
Таким образом, для создателя браузера XHTML, используемый как text / html, смешен, потому что он никогда не обрабатывается как XML механизмом рендеринга браузера.
Пару лет назад веб-разработчики, стремящиеся стать чем-то большим, чем просто обезьяны-теги (Отказ от ответственности: я включаю себя в качестве одного из них), начали искать способы разработки лучших практик, которые не включали бы три вложенных таблицы, но все же позволяли убедительный опыт проектирования. Они / Мы остановились на XHTML / CSS, потому что W3C сказал, что это будущее, и единственным другим выбором был мир, где один поставщик (Microsoft) контролировал спецификацию разметки defacto. Настоящим злом является единственный поставщик , а не так много Microsoft. Я клянусь.
Так где же спор? Есть две проблемы с application / xhtml + xml. Первый - это Internet Explorer. В IE есть устаревшая ошибка / функция, в которой контент, используемый в качестве application / xhtml + xml, побудит пользователя загрузить документ. Если вы попытались перейти к файлу xhtml-as-xhtml.php, указанному выше, в IE, скорее всего, это и произошло. Это означает, что если вы хотите использовать application / xhtml + xml, вам нужно проанализировать браузер для IE , проверить заголовок Accepts и обслуживать application / xhtml + xml только тем браузерам, которые его принимают. Это не так тривиально , как звучит правильно, и также идет вразрез с принципом "однажды напиши", к которому стремились веб-разработчики.
Вторая проблема - это жесткость XML. Это, опять же, одна из этих проблем, склонных к пламени, но есть люди, которые считают, что один неверный тег или неправильный код одиночного символа не должен приводить к тому, что пользователь не увидит нужный документ. Другими словами, да, спецификация говорит, что вы должны прекратить обработку XML, если он не очень хорошо сформирован, но пользователь не заботится о спецификации, он заботится о том, что веб-сайт их кошки не работает.
Добавление еще большего количества бензина к проблеме - спецификация XHTML 1.0 (не 1.1) гласит, что документы XHTML могут использоваться как текст / html, при условии соблюдения определенных рекомендаций по совместимости . Такие вещи, как тег img самозакрывающийся и тому подобное. Ключевое слово здесь может . В RFC говорят , может означать необязательно. Firefox выбрал НЕ обрабатывать документы с документом XHTML, а тип содержимого text / html как XHTML. Однако валидатор W3C с радостью сообщит, что эти документы действительны.
Я оставлю читателя обдумать одновременное чудо / ужас культуры, которая пишет документ, чтобы определить, что они подразумевают под словом может .
Движение вперед
Наконец, это то, о чем весь текст HTML 5 . XHTML стал таким политическим горячим картофелем, что группа людей, которые хотели продвинуть язык вперед, решили пойти в другом направлении. Они разработали спецификацию для HTML 5. В настоящее время она хэшируется в W3C и, как ожидается, завершится в следующем десятилетии. Тем временем поставщики браузеров выбирают и выбирают функции из текущей спецификации и реализуют их.
Обновления из комментариев
В комментариях Alex указывает, что если вы собираетесь что-то прослушивать, вы должны проверить заголовок Accept, чтобы узнать, принято ли application / xhtml + xml агентом пользователя.
Это абсолютно правильно. В общем, если вы собираетесь нюхать, нюхайте эту функцию, а не браузер.