XHTML – nie tykaj bo śmierdzi

Sprawdzanie poprawności wysyłania dokumentów XHTML

Podaj adres do sprawdzenia


Aby wysyłać prawidłowy xhtml musisz spełnić kilka warunków:

  • Umieszczaj nagłówek XML oraz odpowiednie definicje w znaczniku html
  • Jeśli nie będziesz wysyłał dokumentu XHTML jako application/xhtml+xml to cały czas będzie to zwykły HTML z błędami.
  • Jebać IE i pokrewne przeglądarki które nie obsługują XHTML.
  • Nie używać atrybutu target=”” w znaczniku a.
  • Wysyłać dokument jako application/xhtml+xml.
  • Musisz mieć prawidłowy kod bo parser XML nie pozwoli wyświetlić strony.
  • Nie negocjuj typu zawartości – Negocjujesz Content-Type? To po chuja używasz XHTML?
  • Czyli nie potrzebujesz XHTML pisz w HTML, bo i tak będziesz szukał sposobów alternatywnych na wszelkie prawidłowe zachowania XHTML.

Poprawne przesyłanie dokumentu XHTML – Mime Type, Content-Type, Kodowanie

  • Musisz wysłać dokument jako application/xhtml+xml, więc musisz dodać nagłówek HTTP wysyłany przez serwer. Pamiętaj o edycji kodowania utf-8 na iso-8859-2 jeśli używasz ISO. Rozszerzenia .htm, .html, htm oraz html możesz dowolnie zmieniać. Możesz korzystać z dowolnego sposobu.
    1. Definiowanie zawartości w pliku .htaccess #1
      AddDefaultCharset utf-8
      AddCharset utf-8 .html .htm
      AddType 'application/xhtml+xml; charset=utf-8' html htm
    2. Definiowanie zawartości w pliku .htaccess #2
      <FilesMatch "\.(htm|html|css|js)$">
      ForceType 'application/xhtml+xml; charset=utf-8'
      </FilesMatch>
    3. Zadeklaruj także Content-Type w znacznikach meta. Pamiętaj !!! Deklaracja Content-Type w znacznikach meta nie powoduje wysłania dokumentu jako XHTML, więc cały czas będzie to zwykły HTML z błędami.
      <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=utf-8" />
  • Dodaj przed DOCTYPE deklarację XML, pamiętając o kodowaniu utf-8 lub iso-8859-2
    • <?xml version="1.0" encoding="utf-8"?>
    • Deklaracja XML w PHP
      echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
      lub:
      echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
  • Doctype dla XHTML
    • XHTML 1.1
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    • XHTML 1.0 Strict
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    • XHTML 1.0 Transitional
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    • XHTML 1.0 Frameset
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
  • Zdefiniuj atrybuty xmlns=”” oraz xml:lang=”” dla znacznika html
    np.:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">