XHTML

XHTML (ang. Extensible HyperText Markup Language, rozszerzalny język znaczników hipertekstowych) – język służący do tworzenia stron WWW ogólnego przeznaczenia. Specyfikacje XHTML przygotowuje organizacja W3C.

XHTML/1.0 nie jest następcą HTML, a jedynie przedstawieniem HTML 4.01 w postaci XML. Dojrzałym standardem został XHTML1.1, który zmodularyzowano, ostatecznie oddzielono warstwę opisu struktury od opisu prezentacji i wprowadzono notację Ruby. XHTML 2.0 miał być następcą standardów XHTML1.x, niekompatybilnym wstecz. Brak tej kompatybilności wywołał niezadowolenie w środowisku twórców dokumentów www, co skłoniło twórców specyfikacji XHTML 2.0 do wydzielenia z niej modułów (takich jak role i atrybuty RDFa) w celu złagodzenia trudności przyjęcia nowych reguł języka. Z powodu przeciągających się prac W3C zadecydowało jednak o wstrzymaniu prac zmierzających do uczynienia z XHTML 2.0 dojrzałego standardu, wydania dokumentów związanych z XHTML 2.0 jako W3C Notes i włączenia się w prace niezależnej grupy twórców zrzeszonych w stowarzyszeniu WHATWG rozwijającej linię standardów XHTML 1.x i HTML 4 jako HTML5.

W odróżnieniu od HTML-a (który jest zastosowaniem SGML), dokumenty pisane w XHTML są zgodne z oficjalną specyfikacją XML (to znaczy, że dokumenty w XHTML są poprawnymi dokumentami XML) i dzięki temu można je łatwo generować z innych dokumentów XML przy pomocy np. transformacji XSLT, a także automatycznie przekształcać w inne formy XML-a. Dzięki temu dokumenty te posiadają większe możliwości, jak choćby wstawianie innych dokumentów za pomocą jednej metody (element <object />), zagnieżdżanie wzorów matematycznych (język MathML), czy grafik wektorowych (język SVG).

Jedną z największych zalet XHTML jest możliwość łączenia z innymi językami zgodnymi z XML, np. wspomniany już MathML czy SVG. Odbywa się to dzięki wykorzystaniu mechanizmu przestrzeni nazw XML.

Przeglądarki takie jak Firefox czy Opera praktycznie w pełni obsługują XHTML, lecz program Internet Explorer[1] – obsługuje XHTML-owy typ zawartości dopiero od wersji 9. Skłaniało to wielu webmasterów do stosowania dla dokumentów XHTML starego HTML-owego typu zawartości. Dzięki temu, że XHTML w wersji 1.0 „symuluje” HTML 4 (tzn. ma praktycznie taki sam zestaw elementów i atrybutów), wyświetlanie XHTML jako HTML nie sprawia większych problemów w żadnej przeglądarce, o ile dokument nie wykorzystuje dodatkowych możliwości XHTML, których nie ma w HTML (przedrostków nazw elementów, różnych przestrzeni nazw XML, DOM).

Aby prawidłowo wyświetlać strony zarówno w nowoczesnych, jak i starszych przeglądarkach, wykorzystuje się metodę negocjowania zawartości.