Merkitystä

skandit sekooSeurasin Kari T:n postaamaa linkkiä Trexperience-nimisen firman sivuille. Aika hauska idea tuo isojen poikien neppis, mutta juttua on hiukan vaikea lukea: Safarilla saitin skandit sekoavat.

Katsoin koodia. Se näyttäisi olevan W3C XHTML speksin mukaista XML- ja DOCTYPE-deklaraatioilla alkavaa koodia jonka merkistötyypiksi XML-deklaraatiossa määrätään UTF-8.

Jokunen rivi myöhemmin meta-tagissa ilmoitetaan sisällön merkistötyypiksi ISO8859-1. Ja sekin on ymmärtääkseni speksien mukaan ihan korrektia. Missä siis vika? Miksi ihmeessä Safari tulkitsee sivun merkistön olevaksi UTF-8 vaikka sisältö nimenomaan ei sitä ole. Firefox ei sekoile. Operakin näyttää skandit oikein. Onko kyseessä siis Safarin bugi? Vai onko niin että Safari toimii näistä kolmesta oikein?

In XHTML-conforming user agents, the value of the encoding declaration of the XML declaration takes precedence.

Eli XHTML-yhteensopivissa selaimissa XML-deklaraation merkistökoodaus on etusijalla. Ymmärränkö tämän nyt oikein, jos uskon Safarin käyttäytyvän loppujen lopuksi siis ihan korrektisti?

8 thoughts on “Merkitystä

  1. Näin voisi kuvitella.

    XML-deklaraation poistamalla ongelmat lakkaisivat tässä tapauksessa. Miksiköhän merkistö on määritelty tuossa ristiriitaisesti? Varmaan vahinko?

  2. Jep, ongelmat lakkaavat jos joko poistaa XML-deklaraation tai muuttaa metatagin merkistötyypin samaksi kuin XML-deklaraatiossa. Vaikka jälkimmäisessähän tulee ongelmia koska sisältöjän on oikeasti ISO8859-1. Toisaalta XML-deklaraation poistaminenhan myös samalla pitää IE:n poissa quirks modesta. Eller hur?

    Varmaan on vahinko. Ja jos ei mikään muu selain kuin Safari reagoi tuohon voi hyvinkin olla ettei virhettä huomaa kuin pieni määrä netinkäyttäjiä.

    Vaan mielenkiintoista, mielestäni (tietyllä nörttimäisellä tavalla), on se etteivät Firefox ja Opera siis ole speksien mukaan XHTML-yhteensopivia?

  3. Safari toimii väärin. Tuo sivu ei ole XHTML:ää vaan HTML:ää, koska HTTP-otsikko Content-Type: text/html. Näin ollen sivu on tulkittava HTML:n sääntöjen mukaan. HTML:ssä ei luonnollisesti ole XML-prologia, joten se on sivuutettava.

    Toistetaan siis vielä: sivulla ei selainten näkökulmasta ole mitään tekemistä XML:n kanssa niin kauan kuin se lähetetään HTML:n Content-Typellä. Sivu on selaimelle vain rikkinäistä HTML:ää, paitsi että Safari selvästi kuvittelee muuta. Paha paha Safari.

  4. Noista XMListä en ymmärä yhtikäs mittään, mutta Safarin skandien kanssa minulla on usein ollut ongelmia!

    Inhottavin on se, että työpaikkani web-mail tulkitsee n. 45% kerroista skandit ihan mäkeen ja välillä sitten taas ei! Mistäs sitä pitäisi lähteä selvittämään? Tällaisen, joka ei muutenkaan ymmärrä noista koodauksista mitään!

  5. Vaihteleeko se siis samankin viestin katselemisessa, niin että yhdellä kerralla näkyy oikein ja toisella n‰kym‰ on jotain ihan ‰llôeƒ?

  6. Enhän mä enää muistanut, että kävin täälläkin höpöttämässä!

    Kysymykseesi: ei vaihtele samassa viestissä, eri viestejä ovat. Se on kaiken lisäksi niin pirsketin ovela, että kun pitkässä reply-ketjussa on välillä vastannut Safarilla, niin kaikki sen viestin jälkeiset skandit menee sekaisin, vaikka lopun aikaa pompottelis pelkästään pc-koneiden väillä!

    (Safarin asetuksista mulla on valittuna Länsimainen (ISO latin 1). Firman s-postin mikrotuki pyysi ottamaan käyttiksestä! pois kaikki outomaiset merkit ja selaimessa käski ottaa käyttöön ton ISO8859-1. Mutta mistä sen muka saa valittua? En minä löydä. Ja kun epäilin, että selitys “kaikki on macin vikaa” on hiukka liian suppea selitys, niin se lähetti tietohallintopäällikölle viestin, että mitäs sit tehdään, kun asiakas kieltäytyy noudattamasta ohjeistusta.

    Huh, helpotti purkaa höyryä, ei olis saanut, ensi kerralla olen ihmisiksi!

Comments are closed.