Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

Den varme kartoffel: webudvikling - XHTML 1.0/1.1 vs. HTML 4.01 Strict?

Side 1 ud af 1 (9 indlæg)
  • 1
Fra København NV
Tilmeldt 30. Jan 09
Indlæg ialt: 18
Skrevet kl. 12:07
Hvor mange stjerner giver du? :

Jeg faldt lige over nogle indlæg på eksperten.dk i går, hvor nogle af dem jeg anser for værende ekstremt erfarne, ikke kan blive enige om man skal bygge sine systemer i XHTML eller HTML 4.01 strict.

Jeg orker ikke at liste alle deres argumenter, og det er ikke for at starte endnu en religionskrig, men det jeg godt kunne tænke mig at vide, religion aside, er: Hvad bruger I herinde, der udvikler til web? og er der nogen grund til jeres preference i forhold til det I ikke bruger?

Personligt er jeg i gang med at udvikle en webløsning der kører 100% XHTML 1.0, men jeg må ærligt indrømme, at jeg ikke havde lagt megen tanke i valget af doctype da jeg gik igang. Det er ikke for sent at omstrukturere min kode til evt. HTML 4.01, men inden jeg begynder at opføre mig som en hovedløs kylling, ville det være rart med lidt input. Big Smile

Tilmeldt 16. Jun 06
Indlæg ialt: 23
Skrevet kl. 12:48
Hvor mange stjerner giver du? :

Jeg benytter begge dele.

Min holdning er at alt hvad jeg laver skal validere, og hvis det validerer okay, er der ingen forskel på hvordan det ser ud i forskellige bruger agenter (browsere).(med enkelte undtagelser- Microsoft)

Validerer det derimod ikke, så vil alle browsere reparere HTML på forskellige måder, hvilket kan give forskellige resultater mht. udseende, hvorimod browserne ikke prøver at reparere XHTML.

Har du ikke brug for de nye muligheder der er i XHTML er der ingen grund til at bruge det, bortset fra den rene adskillelse af logik og Markup(formatering) som jeg godt kan lide.

2 problemer med XHTML1.0 jeg har mødt.

Jeg kan ikke bruge attributten target til en reference, så jeg er nødt til at bruge lidt javascript/jscript hvis jeg vil  åbne på en ny side. Det er jeg ikke så vild med.

Hvis du indsætter den korrekte kode til at fortælle hvordan det skal fortolkes, så vil IE have en anden kode end f.eks. Firefox, og det betyder at siderne ikke bliver behandlet som XHTML1.0 i IE.

Jeg har imidlertid ikke haft problemer med at få det til at spille ordentligt, og da jeg forventer at der går mange år før browser-leverandørerne tager et klart valg af at understøtte hele standarden, så tager jeg det helt roligt mht. valget.

Hvis dit udgangspunkt er et system med templates i XHTML så kør videre med det, og er udgangspunktet HTML så fortsæt med det.

Det er måske værd at være opmærksom på at det er tvivlsomt om dine CSS3 koder bliver udført uanset om doctypen er XHTML da de fleste browsere ikke har implementeret understøttelsen endnu, så vidt jeg er orienteret.

Jeg er ikke sikker på at XHTML1.1 er implementeret af nogen browsere overhovedet dags dato.

EDIT:
Jeg kommer lige i tanker om noget der kunne gøre en stor forskel.

Hvis brugerne kan tilføje input, så skal det saniteres ordentligt før det gemmes, da det i hvert fald teoretisk kan knække XHTML1.0. Dvs. at man kan risikere at hele siden ikke vises pga. dårligt input. Jeg kan ikke lige sige om det gælder faktisk, men det gør det i hvert fald i teorien.

;0)Bent

Fra Brønshøj
Tilmeldt 11. Jul 06
Indlæg ialt: 232
Skrevet kl. 13:38
Hvor mange stjerner giver du? :

Jeg benytter XHTML - selvom jeg ikke er gennemført vild med de fejl der er, fx skal XHTML skal parses som XML men det sker så godt som aldrig, derimod parses det som HTML men pga den modtaget DTD vil browseren allerede her gå ind og forsøge at fixe den fejl, og fordi den medsendte kode jo så ikke er HTML vil klienten gå ind og reparere alle de fejl dokumentet så egentlig indeholder. Grunden til at jeg så alligevel laver XHTML fremfor HTML skyldes nok en idé om at nyere standarder må være bedre tilpasset til verdensbilledet end ældre.

Jeg er ikke enig i at, uanset om vi taler HTML eller XHTML, at valid kode altid vises ens i forskellige browsere - hver browser (også Firefox) har sine fejl samt specielle egensker og dermed også hver sine ting at tage højde for. Men valid kode er klart et skridt i den rigtige retning for at få vist et dokument så ens som muligt. Target er skam også muligt i XHTML - hvis man kan nøjes med Transitional... men hov, det præcis samme gør sig gældende for HTML hvor target heller ikke er tilgængelig i Strict så ingen forskel her.

Som jeg forstår kommentaren omkring adskillelse af logik og markup er det jo heller ikke en umulighed i HTML - i HTML er der bare mange der har en tilbøjelighed til ikke gøre det. Men måske misforstår jeg hvad man vinder/taber her.

Hvilke nye muligheder er der i XHTML?

Selvom jeg selv skriver XHTML og vil fortsætte med det vil det mest korrekte valg være HTML, men HTML skrevet på en måde på en måde så overgangen til XHTML bliver minimal (dvs fx brug af CSS fremfor alle mulige og umulige attributter)... og alligevel vælger jeg XHTML (:

Kim Larsen | kim@soze.dk | soze.dk
alkoholprocent.dk | blomsterdekoratoer.dk | hopogdans.dk

Fra København NV
Tilmeldt 30. Jan 09
Indlæg ialt: 18
Skrevet kl. 13:45
Hvor mange stjerner giver du? :

Det lyder meget som hvad jeg konkluderede i de andre tråde jeg har skimmet igennem, altså at det i bund og grund er et spørgsmål om holdning til tingene.

Det er lidt ligesom kost og diæt. Hver diætist har sin egen opfattelse af hvad der er godt for kroppen, men som med dette spørgsmål, bunder alle holdninger vel i nogle sandheder. Det er så op til en selv at vurdere om de forskellige sandheder er nok til at skfite "religion" eller omprogrammere et helt site, og om den ene sandhed har mere indflydelse på ens projekt end en anden. Jeg tager ikke helt fejl, vel? Big Smile

Indtil videre - mange tak for jeres input! Nogle gange har man brug for at få ens tanker "out there" så man lige kan få dem vendt i andre folks hoveder. Thank you Amino Wink

Tilmeldt 16. Jun 06
Indlæg ialt: 23
Skrevet kl. 18:11
Hvor mange stjerner giver du? :

keysersoze:

.....fx skal XHTML skal parses som XML men det sker så godt som aldrig, derimod parses det som HTML men pga den modtaget DTD vil browseren allerede her gå ind og forsøge at fixe den fejl............

Det skal ikke parses som XHTML medmindre det har den korrekte DTD, MIMETYPE OG filendelse.

keysersoze:

Jeg er ikke enig i at, uanset om vi taler HTML eller XHTML, at valid kode altid vises ens i forskellige browsere - hver browser (også Firefox) har sine fejl samt specielle egensker og dermed også hver sine ting at tage højde for. Men valid kode er klart et skridt i den rigtige retning for at få vist et dokument så ens som muligt. Target er skam også muligt i XHTML - hvis man kan nøjes med Transitional... men hov, det præcis samme gør sig gældende for HTML hvor target heller ikke er tilgængelig i Strict så ingen forskel her.


Jeg indrømmer at mit udsagn ovenfor var lidt for generelt, men jeg skrev nu heller ikke det du gengiver(understreget).
Mine 2 øverste udsagn skal ses i sammenhæng.

Jeg giver dig ret, og retter mit udsagn til.
"Der er ikke skyggen af chance for at din XHTML side bliver vist korrekt i en XML Kompatibel browser, hvis den ikke validerer og dermed overholder standarden.
Med XHTML side mener jeg her med korrekt doctype, korrekt MIMEtype og korrekt filtype(endelse)"

Og når jeg udvikler, så er det klart min erfaring at den lette måde er at udvikle til browsere der overholder standarden eller det meste af den som Opera, Firefox og Safari, sørge for at siderne validerer, og derefter lave nogle CSS hacks for at få IE 5, 6, og 7 med. Min måde er dog ikke bedre, blot anderledes.

keysersoze:

Som jeg forstår kommentaren omkring adskillelse af logik og markup er det jo heller ikke en umulighed i HTML - i HTML er der bare mange der har en tilbøjelighed til ikke gøre det. Men måske misforstår jeg hvad man vinder/taber her.

I mit perspektiv er det bedre at gøre det umuligt at fastholde sammenblandingen, så vi kan slippe for at alle user agenter skal forholde sig til mulige problemer med koden. Det var vel det der gjorde at alle browserproducenter indførte quirks mode under browserkrigen.

Som udvikler er der også stor forskel på at ændre en default font-størrelse ET sted i et stylesheet, eller 400 steder fordi der bliver brugt FONT alle mulige steder i koden. I mine øjne er den største gevinst ren kode der er let at vedligeholde, og der betyder adskillelsen alt.
Ligesom forskellen på struktureret kode og objektorienteret kode.

Eksperterne på området, som jeg bestemt ikke er en af, har en masse andre argumenter for adskillelsen, men det vil jeg ikke gå ind i her.

keysersoze:

Hvilke nye muligheder er der i XHTML?

Du kan f.eks. bruge MathML, SMIL og SVG i XHTML og ikke i HTML.
For ikke at gøre det her for teknisk(vi er mange forskellige brugere), vil jeg gøre det meget kort, og ikke helt fyldestgørende.

MathML er XML til at levere, modtage og bearbejde matematik på samme måde som HTML har gjort det muligt for text.

SMIL giver mulighed for at gøre ting som kræver timing, såsom skabe slideshows, animationer m.m. direkte som HTML lignende kode.
Eksempel:

<smil>
<body>
  <seq repeatCount="indefinite">
    <img src="image1.jpg" dur="3s" />
    <img src="image2.jpg" dur="3s" />
  </seq>
</body>
</smil>

SVG betyder Skalerbar vektor grafik, og er et tekstbaseret grafisk sprog som beskriver images, sådan cirka.

Det ovenstående kan bruges nu!!!
For et ganske almindeligt website uden disse behov vil der ikke være nogen særlig forskel på HTML4.01 og XHTML1.0

keysersoze:

Selvom jeg selv skriver XHTML og vil fortsætte med det vil det mest korrekte valg være HTML, men HTML skrevet på en måde på en måde så overgangen til XHTML bliver minimal (dvs fx brug af CSS fremfor alle mulige og umulige attributter)... og alligevel vælger jeg XHTML (:

Jeg vil godt komme med mit bud på hvordan man gør overgangen lettere også(se kogebog nedenfor), men for at kunne gøre det forståeligt hvorfor jeg vil gøre det sådan, starter jeg lige med en beskrivelse af baggrunden og problemerne med XHTML.

Jeg prøver at gøre det så lidt teknisk som muligt, da vi alle har forskellig viden på området, så beklager hvis det ikke er helt præcist udtryk.

----------------------------------
XML blev skabt for at kunne levere selv-beskrivende kode.
Eksempel:
<Navn>......</Navn>
<CPR>.......</CPR>

I XML er praktisk taget intet defineret eller erklæret før vi selv gør det.
Derfor kan det skabe forvirring for modtagerne, og vi må sende en fortolker med.

XHTML er predefineret XML, så præsentations elementerne er nogenlunde som vi er vant til fra HTML.

Den helt store forskel ses når vi vil bruge fordelene ved XML fordi vi så skal bruge den rigtige MIME type.

text/html er til HTML og XHTML der lader som om det er HTML

application/xhtml+xml er til XHTML, XML, MathML, og så videre.

Det vigtige ved den sidste linie er at der ikke er nævnt HTML.
DER ER INGEN FEJLRETNING I XHTML. Jeg gentager
DER ER INGEN FEJLRETNING I XHTML.

Det betyder at du kan sagtens skrive et dårligt HTML Document, give det doctypen XHTML1.0 og det bliver vist fint i alle browsere der behandler det som HTML.
Laver du derimod en eneste lille fejl i XHTML og viser det i en browser der behandler det som XHTML(faktisk XML), så får du noget i stil med dette når du viser siden:

########################################################################
XML tolkningsfejl: malplaceret mærke. Forventede: </img>. adresse: http://www.eksempel.dk/indhold/vis-not-valid.xhtml linje 31, kolonne 51:

<img id="head" src="imagedepot/main-top_05.gif"></div>
########################################################################

Dvs. at så længe browserne behandler det som HTML kan du tillade dig at lave fejl i koden og det går fint, men efterhånden som browserne begynder at være fuldt XML compatible, så er vi på r....

Dårligt kodet XHTML er som verdens hurtigste sportsvogn, blot uden bensin. Den når aldrig til startlinien.
Korrekt XHTML kan vandre hvor HTML ikke kan komme og udføre ting som vi kun drømmer om nu.

-------------------
Browseren OPERA og HTMLTidy er fede værktøjer til at sikre kompabiliteten. HTMLtidy kan lave HTML om til XHTML for dig.

En hurtig kogebog.
1. Lav XHTML kode, inklusive den korrekte doctype og MIME type.

2. Giv det endelsen xhtml eller xht og se om opera behandler det som XHTML og det   vises korrekt, og test derefter i andre XML compatible browsere.

3. Når det er gjort, så skift endelsen ud til .htm eller .html
Nu bliver det behandlet som html4.01 og du kan debugge det i alle browserne og evt. lave nogle rettelser i CSS for Internet Explorers skyld, og i sjældne tilfælde andre browsere.

Hvis du husker at vedligeholde det som korrekt XHTML1.0 så kan du bare skifte endelsen ud når der er nok XML-compatible browsere, og det vil stadig virke perfekt.

Essensen af dette og grunden til hele forklaringen ovenfor er, at så længe browserne ikke er fuldt XHTML compatible, eller du kalder filen noget andet en .xhtml eller .xml, så vil dit website se ud som det skal, men hvis du går hele vejen og påstår at det er korrekt XHTML, så skal det altså holde.

Jeg iagttager for øvrigt at mange CMS'er og lignende nu er XHTML1.0 i de nye versioner. Det er for mig en ektra grund til at gå den vej.

------

Microsoft er for øvrigt ikke i tvivl om hvor problemet ligger mht. standard-kompatible browsere. Fantastisk hvis de holder hvad de lover.

[snip]
Microsoft's Interoperability Principles and IE8

We’ve decided that IE8 will, by default, interpret web content in the most standards compliant way it can. This decision is a change from what we’ve posted previously.

Why Change?

Microsoft recently published a set of Interoperability Principles. Thinking about IE8’s behavior with these principles in mind, interpreting web content in the most standards compliant way possible is a better thing to do.

We think that acting in accordance with principles is important, and IE8’s default is a demonstration of the interoperability principles in action. While we do not believe any current legal requirements would dictate which rendering mode a browser must use, this step clearly removes this question as a potential legal and regulatory issue. As stated above, we think it’s the better choice.
[snip]

ovenstående uddrag er fra
http://blogs.msdn.com/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx

------

Og så har du da ret mht. Target og HTML4.01 strict.

0)Bent

 

Fra København NV
Tilmeldt 30. Jan 09
Indlæg ialt: 18
Skrevet kl. 18:31
Hvor mange stjerner giver du? :

Hold da op et dejligt langt indlæg Big Smile

 

Hvad er det med target og XHTML / HTML 4.01 strict? Er det på eksempelvis links? I så fald, hvordan faen beder man så browseren om at åbne linket i et nyt vindue? Eller det gør man måske så bare ikke? Surprise

Nu skriver du at filerne skal have den korrekte endelse (.xhtml) - men hvordan forholder man sig så med eksempelvis PHP filer? SurpriseEr det lige gyldigt så længe man sender den korrekte MIME type med?

Fra Brønshøj
Tilmeldt 11. Jul 06
Indlæg ialt: 232
Skrevet kl. 18:50
Hvor mange stjerner giver du? :

Bent Lundberg:

Det skal ikke parses som XHTML medmindre det har den korrekte DTD, MIMETYPE OG filendelse.


XHTML er en XML application og bør derfor fortolkes som sådan (application/xhtml+xml) da ønsket er at XML-parseren behandler dokumentet - men da koden oftest fortolkes som text/html er det HTML-parseren det køres igennem og i forhold til den er dokumentet fejlbehæftet (men i modsætning til XML-parseren er der her et lidt andet syn på fejl, og ikke mindst håndteringen af fejl, i dokumentet).

Bent Lundberg:

...CSS hacks...


Det er selvfølgelig svært at se hvor tit det sker - jeg oplever det så godt som aldrig men same difference. Jeg foretrækker at udvikle op imod IE7 og så er de få forskelle der kan opleves til andre browsere oftest rimelig lige til at få tilpasset - men smag og behag som du siger.

Bent Lundberg:

I mit perspektiv er det bedre at gøre det umuligt at fastholde sammenblandingen, så vi kan slippe for at alle user agenter skal forholde sig til mulige problemer med koden.


Klart - det bedste er helt at udelukke muligheden for "dumheder", men det er trods alt ikke en "feature" man er udelukket fra i HTML, tværtimod har man de samme muligheder.

Bent Lundberg:

MathML, SMIL og SVG


Ja - ok, du får ret :) De nævnte ting tænkte jeg på som var det fx Flash - altså selvstændige standarder ikke hverken direkte eller inddirekte forbundet med fx (X)HTML, men du har selvfølgelig ret.

Generelt set tror jeg vi er ret enige - men vi er vel bare et godt bevis på hvordan kampen foregår andre sted (fx på Eksperten hvor jeg til tider også kan deltage).

... Uanset hvad glæder jeg mig til at der sker noget nyt på denne front hvor vi jo både kan forvente os XHTML 2.0 og HTML 5.

Kim Larsen | kim@soze.dk | soze.dk
alkoholprocent.dk | blomsterdekoratoer.dk | hopogdans.dk

Tilmeldt 16. Jun 06
Indlæg ialt: 23
Skrevet kl. 22:49
Hvor mange stjerner giver du? :

Beklager. Siden meldte fejl, så jeg indsatte indlægget igen. Forsøger mig med at slette det nu. Stick out tongue

Tilmeldt 16. Jun 06
Indlæg ialt: 23
Skrevet kl. 22:57
Hvor mange stjerner giver du? :

Kasper FP:

Hold da op et dejligt langt indlæg Big Smile

Hvad er det med target og XHTML / HTML 4.01 strict? Er det på eksempelvis links? I så fald, hvordan faen beder man så browseren om at åbne linket i et nyt vindue? Eller det gør man måske så bare ikke? Surprise

Godt du kunne lide det lange indlæg. Sad og tænkte på om det var et problem at jeg skrev så meget. Cool

Ja. Det er på links.
Du kan for eksempel bruge jscript/javascript til at komme omkring det.

Kasper FP:

Nu skriver du at filerne skal have den korrekte endelse (.xhtml) - men hvordan forholder man sig så med eksempelvis PHP filer? SurpriseEr det lige gyldigt så længe man sender den korrekte MIME type med?

og denne her også

keysersoze:

XHTML er en XML application og bør derfor fortolkes som sådan (application/xhtml+xml) da ønsket er at XML-parseren behandler dokumentet - men da koden oftest fortolkes som text/html er det HTML-parseren det køres igennem og i forhold til den er dokumentet fejlbehæftet

@keysersoze
Du har fuldstændig ret!
Det er mig der er blevet træt og skriver noget sludder omkring filendelsen, når det er associeringen til MIME typen der er problemet.

Mange servere serverer ukendte filtyper som text/html. Det betyder at browseren får besked på at XHTML siden skal behandles som HTML og derfor gør lige netop det ved den.
Så der skal sættes en MIME type op på serveren, så den fortæller at .xhtml skal serveres som application/xhtml+xml
Deraf min henvisning til filendelsen. Det er gamle overvejelser.

Det kan f.eks. gøres med .htaccess ved at indsætte noget i denne stil
AddType application/xhtml+xml .xhtml

Så hvad med php problemet.
Du kan ikke bruge den samme metode, fordi filen ikke vil blive parset som PHP hvis du associerer .php med application/xhtml+xml

Så der kan du i stedet bruge headerfunktionen til at indsætte en header

header ("Content-type: application/xhtml+xml");

Det introducerer imidlertid et nyt problem, nemlig at nogle browsere vil sige at de ikke ved hvad application/xhtml+xml er for noget.

Klienten sender besked til serveren om hvilke MiME typer den accepterer i http_accept, så du kan intercepte den i php filen med noget i stil med

if (isset($_SERVER["HTTP_ACCEPT"]) && stristr( $_SERVER["HTTP_ACCEPT"], "application/xhtml+xml") ) {
  header ("Content-type: application/xhtml+xml");
} else {
  header ("Content-type: text/html");
}
   
DISCLAIMER: Jeg anbefaler ikke nogen at bruge det kode jeg skriver her direkte.
Jeg har hele tiden betragtet denne tråd som en diskussion hvor vi kan hjælpe hinanden med forståelsen, ikke som en præcis beskrivelse af procedurer.
Der findes meget bedre kilder end mig på internettet. Og jeg er endda træt.
Hvis jeg selv skal gøre disse ting, læser jeg altid op på det først.

Hvis koden ovenfor er helt korrekt, så gør det at de browsere(klienter) der siger de accepterer application/shtml+xml får serveret den content-type og de der ikke har accepteret det får serveret text/html, så dine sider bliver vist enten som XHTML eller HTML efter browserens vilje.

-------------------

Nu hvor jeg har hjulpet kraftigt til at denne diskussion om XHTML vs HTML er blevet lang og teknisk, vil jeg godt lige sende en besked til dem der evt. bliver nervøse for om det virkelig skal være så besværligt.

NEJ. Absolut ikke. Der er formentlig intet større problem i om dit website påstår det er XHTML og det bliver vist som HTML af browserne. Sådan har situationen formentlig været for millioner af websites i lang tid, og de vises stadig fint og fungerer korrekt.
Så tag det helt afslappet.

Hvis det virker fint i dag, så gør det nok også i morgen.
Det her drejer sig mere om hvad der er af problemstillinger ift. at få dine sider til at køre korrekt XHTML1.0, og at være lidt forberedt når browserne bliver helt klar.

-------------------

keysersoze:

Generelt set tror jeg vi er ret enige - men vi er vel bare et godt bevis på hvordan kampen foregår andre sted (fx på Eksperten hvor jeg til tider også kan deltage).

... Uanset hvad glæder jeg mig til at der sker noget nyt på denne front hvor vi jo både kan forvente os XHTML 2.0 og HTML 5.


Ja. Jeg tror også vi er grundlæggende enige om tingene.
Jeg er absolut ikke religiøs mth. software. Jeg vælger altid værktøj efter opgaven. Jeg må dog indrømme at jeg er open source fan, så der kan godt komme lidt ud mellem sidebenene. Embarrassed

Det skal nok blive rigtig spændende med HTML5 OG XHTML2.0, selv om der stadig hersker noget forvirring omkring hvad der sker med dem. Og hvor lang tid der går.


;0)Bent

Side 1 ud af 1 (9 indlæg)