160 likes | 295 Views
XHTML du vet - för webben! Funderingar kring XHTML och den närmaste framtiden. Åke Järvklo Dagtid: Netia Data AB Fritid: xhtml.se. ”X” and ”HTML” sitting in a tree…. ”HTML5” kommer att införas i någon form HTML5 bygger inte nödvändigtvis på SGML Motsättningarna är (eller borde vara?) väck
E N D
XHTML du vet - för webben!Funderingar kring XHTML och den närmaste framtiden Åke JärvkloDagtid: Netia Data ABFritid: xhtml.se
”X” and ”HTML” sitting in a tree… • ”HTML5” kommer att införas i någon form • HTML5 bygger inte nödvändigtvis på SGML • Motsättningarna är (eller borde vara?) väck • SHORTTAG (SGML-arvet designas bort) • Taggsoppa eller ej (MIME-typsaspekter) • Framtidssäkerheten (ingen vann) • En DOM – Inte Två (men vissa skillnader är kvar) • Bakåtkompatibilitet är ett starkt ledord
Två steg bakåt och ett åt sidan? • 1997 – HTML4 • 1999 – HTML4.01 presenteras med syfte att bl.a. förbereda för XHTML 1 • Dave Ragget håller ett föredrag om framtiden • Övergången till XML • Modularitet • CC/PP (”Composite Capability/PreferenceProfiles”) • Och inte långt därefter kommer XHTML1 • … och resten känner vi till • Eller ?
CCCP? • Inte riktigt… CC/PP var det • ”Composite Capability/PreferenceProfiles” • A CC/PP profile is a description of device capabilities and user preferences. This is often referred to as a device's delivery context and can be used to guide the adaptation of content presented to that device. • “Browser sniffing” ochsakersomt.ex. “the WURFL” skulleintebehövaförekomma • “Mobile Web Initiative” någon?
Fler steg åt sidan alltså… • I begynnelsen (typ ’98 eller så) var ”WAP-sidor” lika med WML-kodad text. • XML-baserat • Kompilerades till ett binärt transportformat • Inget samarbete med HTML/XHTML • Decks, Cards etc. men också <p>, <b> och <i> • Fel i koden gav ”General server error” från din vänliga WAP-Gateway (”Draconianerror handling” redan då) • … Men ”WAP 1” funkade • Och vissa principer kommer igen i Opera Mini och Microsofts DeepFish (men det är en annan historia)
Fast forward några år • XHTML 1.0 (26 Januari 2000) • XHTML Modularization (10 April 2001) • XHTML Basic (19 december 2000) !!! • XHTML 1.1 (31 maj 2001) • .. Och i WAP-världen • XHTML Mobile Profile (29 oktober 2001)
… och sedan var det mobil oenighet • W3C:: XHTML Basic OMA:: XHTML MP • Bägge baseras på XHTML Modularization, men MP innehöll ”egna” moduler från början http://dev.mobi/node/119 • Men inte längre !!! • W3C standard expected in Q2 2007 • Already very stable - reached final stage before becoming official Recommendation • Waiting for XHTML Basic/MP convergence
Så… • XHTML är lösningen på mobilsidan • Med stora nallefontillverkare bakom ryggen • .mobi • Och nu med en enighet mellan W3C och OMA • … och den mobila webben växer • … med krav på application/xhtml+xml och allt • … och det mobila modeordet för dagen är ”Adaptation” • Så kan man verkligen ”räkna ut” XHTML ? • Håll den tanken
Hursomhelst… • ... Så är vi inne i en övergångsperiod • HTML har en renässans – det vet vi • XHTML har det också i praktiken • Market share (andelen OS-CMS som kör XHTML) • Reputation (varför inte ”rida på myterna”) • Maturity (jo faktiskt, om man tänker efter ) • Men problemen då? • Fråga: Hur många har specialkodat för MSIE ?
Personliga reflektioner • ContentNegotiation är ett nätfundament • XHTML funkar – om man förhandlar • Fördelar: • ”Ren” syntax (inga valfria taggar för obligatoriska element) • Enkelt att validera mot DTD • Även DTD-delar • XML-parsning ger möjlighet att ”haka på” processing utan omtolkning eller genomsökning av textmassan • Nackdelar • ”the perils” är välkända • Men kanske framförallt ”Draconianerror handling”
Taming the perils… • Contentnegotiation • Begär de application/xhtml+xml så ge dem det. • Föredrar de text/html eller låter bli att ange q-preferens för annat, ge dem ”XHTML enligt appendix C” som text/html • För det är ju i praktiken mest troligt ändå ”MSIE” • Och den specialkodar vi ju för oavsett – eller hur • … och ”Appendix C” är ju inga problem att följa nu när HTML inte längre anses vara SGML och t.ex. SHORTTAG-problemet i praktiken är ur världen • Och i HTML5 är XHTML-syntax som text/html helt OK
… och sedan var det det där med felhanteringen • HTML innehåller stabil felhantering… • Idé: text/html som ”fallback” • Alltså: • Content Negotiation + ”kod enligt Appendix C” • Om något blir fel – ”sänk” till text/html… • Hmm…. Validering… • Hmm… XML… • Hmm… Buffra, validera och ”sänk” om ogiltigt!
Men vänta – det är mer • Cachea status från valideringen! • Senast uppdaterad + Senast kollad + URL + status • Ger i praktiken även grunden för en fel-logg för de icke-validerande sidor man har på webbplatsen ! • Men inte nog med det • Vi XML-tolkar ju under valideringen… • Med DOM eller SAX har vi ju då gjort tolkarbetet en gång… • Så att lägga till extra funktioner (som t.ex. logga alla länkar på sidan för separat länkvalidering eller att automatkolla rubriknivåer) ”kostar” i det läget mycket lite processtid. • Now try that with a ”Conformance checker” • … or width ”Tidy”
Fast det är klart… • Genomför man det där som ett ISAPI-filter eller som en apache-modulbehöver man ju faktiskt ha med DTD:n i XHTML-dokumenten… • … eftersom man ju inte vill hålla på och rådda med andra filtyper än XHTML-filer • … och vara säker på att man validerar mot ”rätt” dialekt • … även om den inte spelar någon roll ute i browsern • … och den vänskapliga kängan till HTML5-gänget bjuder jag på som avslutning
För när allt kommer omkring • Tycker inte jag att det spelar så stor roll om man kör HTML eller XHTML • Bara man väljer efter behov • … baserat på kunskap • … har klart för sig det där med separering av struktur, utseende och beteende • … och inte bara gör som alla andra utan att reflektera helt enkelt
PEACE / Åke Järvklo http://netia.se http://jarvklo.se http://xhtml.se