kaxigt.com

Jag skriver om webben för webben

Att skriva XHTML men leverera HTML

Postad: 8 oktober 2008 | Uppdaterad · XHTML/XML | No Comments
Lästid: 3 minuter

Är XHTML verkligen dött?

I anslutning till min guide från SGML till XHTML är det fortfarande högaktuellt att diskutera vad Tommy redan 2005 skrev i sin blogg Den Autistiska Göken – för han har absolut rätt! Det fanns, och finns förhoppningsvis ännu, goda intentioner om att utveckla ett lite mer avancerat programspråk som skulle gå under benämningen XHTML.

HTML:s lite ”stela” utformning behövde byggas ut så att man kunde använda det i fler sammanhang. Tillsammans med applicationen XML trodde man sig ha hittat ett bra alternativ, och det är det också.

Problematiken som Tommy tar upp, och som jag trycker på i guiden, är att de flesta förvisso skriver XHTML men sedan levereras tyvärr detta som ett HTML-format, alltså i rent textformat. https://www.w3c.se/resources/office/translations/articles/i18n/serving-xhtml.html. Robert Nyman berör också detta i artikeln HTML eller XHTML.

Vid det här laget finns det förmodligen miljoner webbplatser som använder låtsas-XHTML på ett sätt som gör att de skulle upphöra att fungera om de levererades som en applikation av XML. De kräver helt enkelt att dokumenten tolkas som HTML, trots att märkkoden utger sig för att vara XHTML

Intresset för XHTML har ökat markant, så den stora problematiken ligger troligtvis inte enbart i att man kanske skriver felaktig XHTML. Det största problemet är att man levererar sin XHTML i textformat. Det här beror helt på okunskap om vad XHTML är och det skapar en grov kommunikationsmiss mellan dokumentet och webbläsaren.

XML parser och namespace

Tanken med XHTML är ju att bygga ut HTML 4.01 med applicationen XML, och det innebär att märkkoden XHTML tillsammans med ett relevant doctype och namespace skickar en specificerad information till webbläsarens xml-tolk, eller parser som det också kallas, så att dokumentet kan tolkas som XHTML och inte HTML. Med XML/XHTML ges det möjlighet att skapa egna märkningar.

Fast det spelar ju ingen roll hur många nya märkningar man än använder sig av om inte dessa kan implementeras (realiseras) bara för att dokumentet inte tolkas korrekt. Eller hur?

Rätt MIME-type

Så fort vi lägger till XML till HTML så förändrar vi förutsättningarna. Förutom att vi måste byta doctype och ange en namespacedeclaration är det viktigt att kontrollera så att dokumentet också verkligen levereras som en xml-applikation. De flesta glömmer att ändra MIME-type utan fortsätter att spotta ut dokumenten i textformat – dvs text/html – i tron att det är XHTML.

En av förutsättningarna för att ditt dokument ska kunna tolkas som XHTML är att du anger rätt MIME-type.

CDATA-avsnitt

Sedan kommer en lite krångligare procedur. Alla inbäddade javascript och css som finns på sidan måste läggas in i sina respektive CDATA-avsnitt oavsett om de ligger i head eller body.

Uppdaterat 2017-08-08 // Praxis numer är att lägga in javascripten strax innan body-taggen, och om du använder WordPress och måste lägga in scriptet manuellt så är det efter wp_footer(); i dokumentet footer.php som javascriptet ska infogas. Bäst är att includera det i functions.php via wp_enqueue_script.

Tommy har gett upp.

Han har slutat att slåss som en väderkvarn och det tycker jag är synd, men jag förstår honom. Så vem ska man skylla på? Kan man skylla på någon? Är det ett kommunikationsbrott från W3C eller är det så att man helt enkelt inte har givit sig tid till att verkligen försöka f ö r s t å hur XHTML fungerar?

Personligen tror jag på det sistnämnda. Man surfar runt på webben, snappar upp lite här och lite där. Man lär sig att använda css och att applicera rätta html-märkningar. Ja till och med lär man sig att byta doctype. Men inte alla lägger till en namnrymd, och definitivt inte alla tänker på att ändra MIME-type.

Vad jag vill ha sagt är att jag tycker att det är synd om man inte vet om detta för det finns så många duktiga och flitiga människor som gör bra hemsidor i XHTML, och visst är det tragiskt om dessa skulle falla på mållinjen bara för att de levereras i fel format?

För mer läsning i ämnet:
https://www.hixie.ch/advocacy/xhtml
https://kaxigt.com/xhtml-guide-fran-sgml-till-xhtml/