[Alku]
Testaa CSS-oppaan navigoinnin toimivuutta!
 
 Etsi sivuiltani: [Apua]

Ohjelmistokohtainen koodi

Aiheet

Yleistä

Sen lisäksi, että selaimet tukevat epästandardia CSS:ää tai epästandardeja elementtimerkkauksia, tietyt ohjelmistot tukevat epästandardeja piirteitä. Osa piirteistä voi olla jonkun selaimen tukemia mutta osa on vain ohjelmiston omaan käyttöön.

Tarkastelen kahta tuntemaani tapausta. Ensimmäinen liittyy sekä HTML että CSS-koodaukseen. Jälkimmäisessä on kyse vain HTML-koodauksesta, joten sen mainitseminen menee hieman tämän sivun asian vierestä. Joissakin suhteissa toinen tapaus muistuttaa ensimmäistä. Asian vähäisyyden vuoksi en uhraa sille omaa liitesivua. Kyse on lähinnä jälkimmäisen tapauksen vertaamisesta edellisen kanssa.

MSHTML ja "FPHTML"

Microsoft kirjoittaa MSHTML:stä. Sitä tuottaa MS Office 2000 sovellukset. MSHTML:ssä on tavanomaisten HTML-merkkausten lisäksi ns. XML-saarekkeita (<xml> ... </xml>) ja Office-ohjelmille suunnattua epästandardia CSS:ää (monissa tapauksissa epästandin CSS:n etuliitteenä käytetään -mso- saamaan tapaan kuin Mozilla Gecko -selaimet käyttävät -moz- etuliitettä). Pääideana näyttää olevan se, että Office-tuoteilla luotu MSHTML voidaan muuttaa takaisin lähtöformaattiin, kuten esim. Word 2000 ja Exel 2000 -dokumenteiksi siten että muotoilut säilyvät paremmin kuin standardia HTML:ää käytettäessä.

MS Office 2000:n tuottama MSHTML oli itse asiassa Microsoftin ehdotus HTML 5.0 spesifikaatioksi. Siitä keskusteltiin W3C parissa, mutta ehdotus hylättiin.

W3C: XML in HTML Meeting Report (W3C Note 11 May 1998).

Tapa jolla MS Office 2000 yhdistää HTML:n ja XML:n on siten nykyisin täysin epästandardi. Jos käytetään XML:ää koko dokumentin tulee olla XML:ää, ei vain saarekkeet. MS Office XP:n tuottaa samanlaista MSHTML-koodia, joka ei täytä muodollisesti XML-kriteerejä.

Office 11:n tulee tietynasteinen XHTML-tuki myös Wordille InfoPath-sovelluksen kautta.

Cover Pages: Microsoft Office 11 and InfoPath [XDocs]; InfoWorld: Exploring XML in Office 11.

MS IE 5.x+ ymmärtänee osan MSHTML:stä, mutta ei kaikkea. MS:n ajattelutapa näkyy CSS:n osalta siinä, että MS IE ei tue kunnolla sivutettua mediaa (kyse on käytännössä sivukatkojen tekemisestä tulostettaessa) mutta kun MSHTML otetaan Word 2000:een ja tulostetaan sillä, sivukatkot toimivat MS IE:tä paremmin erityisesti MS Office-sovelluksille tehdyn epästandardin CSS:n vuoksi. MSHTML-dokumentit on nimenomaisesti tarkoitettu tulostettavaksi MS Office tuotteilla.

MSHTML:ssä on erittäin suuri määrä pelkästään MS Office -ohjelmien sisäiseen käyttöön liittyviä merkkauksia. Poistin kerran puolet Word 2000:n luomasta kokonaiskoodimäärästä. Kun ottaa huomioon, että mukana oli tekstiä arviolta n. 70-80% merkkausten ja CSS-määritysten kokonaismäärästä oli erityistä MSHTML:ää.

MSHTML:n käyttö rasittaa Web-palvelimia syöttämällä internetiin selaimia ajatellen turhaa koodia. Jos Office tuotteilla tuotetaan MSHTML:ää ja tuotos lähetetään internetiin, internetiä käytetään tällöin ikään kuin MS Office tuotteiden intranetinä. Mielestäni MSHTML ei sellaisenaan kuulu internetiin vaan intranetiin. Saamani s-postin mukaan on olemassa ohjelmia, jotka muuntavat MSHTML:n tavalliseksi HTML:ksi, ainakin Microsoft Office HTML Filter 2.0.

Microsoft: Microsoft Office HTML Filter 2.0.

Word 97 yrittää luoda lähes standardia HTML:ää. Mikäli on käytetty lihavointeja tms. muotoiluja lopputulos on yleensä virheellinen, mutta helposti jollakin standardia HTML:ää tuottavalla ja HTML-koodausvirheitä korjaavalla ohjelmalla asianmukaiseksi saatettavissa.

Koska millään Office-tuotteella ei saa suoraan standardia XHTML:ää Office-ohjelmien sijaan internetiin tarkoitettu (X)HTML tulisi mielestäni tehdä asianmukaisia (X)HTML editoreilla. FrontPage 2000 ei ole asianmukainen HTML-editori, sillä se ei käyttää Windows-merkistöä eikä koodaa ääkkösiä internetiin soveltuvalla tavalla (esim. "ä" pitäisi koodata &auml; jne.), jolloin teksti ei näy oikein Mac-selaimissa. Saamani s-postin mukaan FP 2002:ssa on kohtalainen entiteettituki.

Ainakin jotkin FrontPagen versiot toimivat muussakin mielessä epäasiallisesti. Löysin eräältä Web-sivulta alla olevan koodin:

<style fprolloverstyle>
A:hover {color: red; font-weight: bold}
</style>

Kyseessä on aivan normaali a:hover efekti. Fprolloverstyle-attribuutti on täysin tarpeeton epästandardi "FPHTML" koodaus. Kyse ei ole jollekin selaimelle tarkoitettu koodaus, sillä informaatio on relevanttia vain sivuteko-ohjelmalle. Tällainen tieto pitäisi olla kuitenkin kommenttien sisällä. Koodista puuttui puolestaan type="text/css", joka olisi asiallista laittaa STYLE elementille. Tietyn tyylin mainitsemisen voisi määritellä täysin standardisti, esim. alla olevalla tavalla:

<!-- fprolloverstyle -->
<style type="text/css">
A:hover {color: red; font-weight: bold;}
</style>

Yleensä informatiivisesta lisäkoodista ei ole haittaa vaan kyse on vain epäasiallisesta koodauksesta. On huomattava, että fprolloverstyle ei ole edes HTML 4.01 spesifikaation näkökulmasta asianmukainen attribuuttisyntaksi. Jotkin vanhat HTML-spesifikaatiot käyttivät yksiosaisia attribuutteja, esim. <DL compact>, mutta HTML 4.x lätien syntaksin tulee olla aina muotoa attribuutti="arvo" (lainausmerkit eivä ole aina välttämättömiä). Muoto <style fpstyle="rolloverstyle"> olisi jo vähän asiallisempi. Sivulla, jolla tällaisen attribuutin löysin, Mozilla 0.9 näytti sivun alun väärin. Kyse on todennäköisesti siitä, että uudet Mozilla Gecko -selaimet toisinaan sekoavat elementtien päätösmerkkauksien kohdasta. Ne näyttävät edellyttävän, että attribuutit ovat kaksiosaisia. Tosin kun vierailin sivulla uudestaan, ongelmaa ei ollut, joten selaimen ongelmakäytös saattoi johtua muista syistä.

En voi kuitenkaan suositella FrontPage 2002 vanhempien Microsoftin HTML-editorien käyttämistä. Uusimmilla FrontPage ja Macromedia Dreamweaver edutoreilla saa XHTML:ää, joten niitä voinee pitää erittäin suositeltavana WYSIWYG-editorina. Käyttämälläni HTML-Kit -koodieditorilla saa myös standardia HTML 4.0/HTML 4.01 tai XHTML 1.0 koodia.

Adobe GoLive

Samaan tapaan ohjelmiston sisäiseen käyttöön tarkoitetua koodia luo Adobe GoLive. Erona vain se, että mikään selain ei ymmärrä Adoben koodia vaan koodi on pelkästään editorin omaan käyttöön. Mainitsen Adoben koodeja[S] eräässä englanninkielisessä kommentissa.

Olen löytänyt Adobe GoLiven tuottamia Web-sivuja, joissa n. 60% koodista oli selaimille turhaa - internetiä ajatellen turhan koodin määrä on suurusluokaltaan samaa luokkaa kuin MS Office sovellusten tuottama erityiskoodi. Olisi fiksua, jos Adoben tuotteissa olisi toiminto, jossa koodista siivostaan editorikohtainen koodi pois ennen kuin sivu lähetetään internetiin. En pidä GoLivea asianmukaisena HTML-editorina.

Osaakohan mikään softa poistaa Adobe GoLiven tuottaman turhan koodin ja luoda em. softan tuottamista epästandardista merkkauskielistä tavallista HTML:ää or XHTML:ää?

[Alku]
   
Copyright Tapio Markula 1999-2003, Salo (kotisivu, s-posti - lisää s-postiosoiteeseen pisteellä erotettuna nimeni, Tapio Markula) (@dnainternet.net) - ei julkiskäyttöön ilman sopimusta.
Get Expression!
Editori, jolla saa luotua standardit täyttäviä HTML ja XML dokumentteja. Tämän sivuston sivut on useimmissa tapauksissa tarkastettu Dave Raggetin (W3C) tekemällä HTML-Tidy apuohjelmalla ja satunnaisesti W3C-organisaation virallisella koodintarkastusohjelmalla. Useimpien sivujen syntaksin pitäisi olla sopusoinnussa W3C:n XHTML 1.0 spesifikaation kanssa. Testaa tämä sivu!
Informaatiota selaimista, jotka näyttävät tai tulostavat tämän sivuston parhaiten.
[Hae Opera] [Hae Mozilla!]
CSS-opasta on viimeksi muutettu 20.12.2004