AfterDawn logo

Vain WebKit-selaimille tehdyt sivustot tuovat IE6:n ongelmat takaisin

Teemu Laitila Teemu Laitila
7 kommenttia

Kun Internet Explorer 6 -selaimen muisto alkaa pikkuhiljaa himmentyä netinkäyttäjien ajatuksista, yhdelle selaimelle koodatut nettisivut ovat hiipimassa takaisin hajottamaan verkon yhtenäisyyttä. Tällä kertaa hallitsevaan asemaan ovat nousseet WebKit-selainmoottoriin perustuvat selaimet.

Webkit-pohjaisia selaimia ovat esimerkiksi Applen Safari ja Googlen Chrome sekä molempien yhtiöiden mobiiliselaimet, jotka yhdessä muodostavat jo leijonanosan selainmarkkinoista. Tällä kertaa kyseessä ei kuitenkaan ole selainvalmisajien kyvyttömyys noudattaa standardeja, vaan ongelmana ovat laiskat kehittäjät, jotka jättävät muut kuin WebKit-selaimet huomiotta.

Nettisivujen ulkoasu muodostetaan CSS-tekniikan avulla. CSS (Cascading Style Sheets) koostuu lyhyistä määritteistä, joiden perusteella selaimet esimerkiksi piirtävät reunoja, käyttävät värejä ja jakavat sivua eri alueisiin. CSS-standardin kehitystä johtaa W3C-järjestö, mutta uusien innovaatioiden saaminen standardin piiriin on perinteiseen tapaan tuskallisen hidasta.


Standardointityön hitaudesta johtuen selainvalmistajat ovat ottaneet käyttöön vielä (virallisen standardin kannalta) keskeneräisiä ominaisuuksia, joiden toiminta saattaa vaihdella hienoisesti eri selainten välillä. Vaikka samat perusominaisuudet löytyvät käytännössä kaikista moderneista selaimista, niiden toiminta odotetulla tavalla varmistetaan käyttämällä kullekin selainmoottorille omaa etuliitettä. Esimerkiksi Firefoxin kohdalla käytössä on -moz, WebKit-selainten kohdalla -webkit, Microsoftin Internet Explorer tottelee -ms-liitetä ja Opera -o-liitettä.

WebKit-pohjaisten selainten yleistymisen myötä monet kehittäjät tyytyvät varmistamaan sivustojensa toiminnan vain Webkit-selaimilla jättäen muiden selainten vastaavat etuliitteet lisäämättä. Kun CSS-käskystä löytyy pelkkä -webkit-liite, se toimii luotettavasti Chromella, Safarilla, Android-laitteiden selaimilla ja iOS-laitteilla. Muiden selainten käyttäjät saattavat saada puutteellisesti toimivan sivun, vaikka tarvittava ominaisuus sinänsä selaimesta löytyykin.

Ongelma on ajautunut siihen pisteeseen, että alkuviikosta järjestetyssä web-standardeja koskevassa tapaamisessa muut selainvalmistajat kertoivat aikeestaan lisätä selaimiinsa osittaisen tuen -webkit-päätteelle. Valmistajien mukaan se on täysin standardointityön vastaista, mutta nykytilanteessa ainut vaihtoehto nettisivujen toimivuuden varmistamiseksi.

Webkit-selainten ylivallasta huolestuneet Mozilla, Opera ja Microsoft eivät syytä Applea ja Googlea ongelmasta. "Mielestäni on hienoa, että Apple haluaa kehittää web-tekniikkaa niin nopeasti kuin mahdollista. En halua, että Apple hidastaisi innovointiaan ja uusien tekniikoiden kehittelyä. Se mahdollistaa webin kasvamisen ja kehityksen", kommentoi Mozillan Tantek Çelik.


Ratkaisu ongelmaan löytyy kehittäjien joukosta. Muille selaimille tuen lisääminen tarkoittaa käytännössä vain kolmea lisäriviä per -webkit-määre ja nykyisillä työkaluilla lisääminen tapahtuu jopa automaattisesti, kunhan kehittäjä vaivautuu niitä käyttämään.

7 KOMMENTTIA

superkick1/7

Kehittäjien pitäisi noudattaa yleisiä standardeja. Samat asiat saa tehtyä niidenkin avulla. Laiskuus ja ylimielisyys vie vain helposti mukanaan ja pitää käyttää oikoteitä.

ep_2/7

Vanha kunnon notepad käytössä joten mitään automaattista lisäystä ole. Olen joo huomannut tuon ongelman. Itellä usein ensin tulee tehtyä sivu joka toimii Webkitillä oikein ja sitten pitää jälkeenpäin viilata sivuja Geckolle (Firefox), Prestolle (Opera) ja Tridentille (vai mikä lie IE:n selainmoottori onkaan).


Lainaus, alkuperäisen viestin kirjoitti superkick:

Kehittäjien pitäisi noudattaa yleisiä standardeja. Samat asiat saa tehtyä niidenkin avulla. Laiskuus ja ylimielisyys vie vain helposti mukanaan ja pitää käyttää oikoteitä.


Oletko koskaan tehnyt nettisivua kirjoittamalla koodin itse? Jos vastaus on ei, niin on parempi olla sanomatta mitään sellaista jota juuri sanoit.

dRD3/7

Lainaus, alkuperäisen viestin kirjoitti superkick:

Kehittäjien pitäisi noudattaa yleisiä standardeja. Samat asiat saa tehtyä niidenkin avulla. Laiskuus ja ylimielisyys vie vain helposti mukanaan ja pitää käyttää oikoteitä.

Oikeastaan tosta ei ole kyse. Kysymys on siitä, että standardit menevät niin hitaasti eteenpäin, että uusia tekniikoita tulee selaimiin käyttöön paljon nopeampaa tahtia.

HTML 4.0.1 julkaistiin standardina toukokuussa 2000 ja HTML5 julkaistiin draftina - ei siis lopullisena versiona vieläkään - vuonna 2008.

Eli tässä tapauksessa kyse on siitä, että jotain juttua X varten tulee todennäköisesti tulemaan käyttöön standardimerkintä


--juttux

..mutta koska tuota ei ole vielä standardoitu, sitä voidaan käyttää webkit-selaimissa muodossa --webkit-juttux ja Operassa --o-juttux ja Mozillassa --moz-juttux. Ja sitten devaajat luistelevat tuosta ja käyttävät vain tuota --webkit-juttux:ää, joka tekee sen, että muut selaimet, joista myös löytyisi tuki tuolle ei-vielä-tuetulle -ominaisuudelle, eivät "osaakaan" rendata sitä, jos noudattavat ohjeita (eli "käytä standardeja aina, ja omia ratkaisuja vain, kun oma selaimesi on määritelty").

Ja sittenkun tuo juttux tuodaan HTML5 -standardin osaksi, niin noiden selainkohtaisten määritystenhän pitäisi lopettaa toimintansa kokonaan. Mutta muuttavatko saitit nuo kaikki --webkit-juttux:t pelkäksi --juttux:ksi ... tuskin. Joten selaimet joutuvat tukemaan myös ei-standardiin kuuluvia kilkkeitä, kun devaajat laiskottelevat.

c24564/7

Kyse voi olla sekä tietämättömyydestä että laiskuudesta. Oikein käytettynä epästandardien etuliitteiden käyttö voi olla hyvinkin suvaittavaa, jopa suotavaa.

Valitettavasti olen edelleen törmännyt käyttäjiin, jotka (pääsääntöisesti yrityksestä johtuen) eivät ole vieläkään siirtyneet IE 6 -selaimen käytöstä nykyaikaan. Uudempien IE-selainten yhteensopivuustilat eivät ratko kaikkia ongelmia. Esimerkiksi JavaScript koodi voi olla sillä tavoin (=huonosti) kirjoitettu, että se toimii vain natiivissa IE 6 -ympäristössä eikä yhteensopivuustilassa. Jos yrityksessä laajasti käytössä oleva softa ei toimi uudemmissa selainympäristöissä edes yhteensopivuustilassa, siirtyminen voi vaatia valtavasti resursseja. On siis ymmärrettävää, että IE 6 on vaikeasti kitkettävä selain.

Tästä johtuen joudun usein kirjoittamaan myös vanhempien (IE) selainten kanssa yhteensopivaa koodia. Tämä ei kuitenkaan tarkoita sitä, ettenkö voisi tehdä lopputuloksesta piirun verran nätimpää ja ehkä hieman käyttäjäystävällisempää uudempia selaimia käyttäville.

Jos jonkin vielä kehitteillä olevan CSS3 ominaisuuden (kuten reunojen pyöristyksen) käyttö kehittäjänä houkuttelee, kannattaa tutustua CSS3 Please! sivustoon. Näin saat ominaisuudelle mahdollisimman kattavan tuen. Pidä kuitenkin mielessä, että esimerkiksi IE < 9 version käyttäjät eivät tule näillä tekniikoilla pyöreitä reunoja näkemään.

Mielestäni on hieman kohtuutonta sanoa -webkit etuliitteen käytön tuovan IE6:n ongelmat takaisin. Ilmiö on toki siinä mielessä sama, että jotkut kehittäjät tekevät vain tietyllä selaimella toimivia ominaisuuksia. Silti vuosia vanhojen Internet Explorer versioiden sotkuja selvitelleenä en vertaisi näitä kahta tapausta ihan näin suoraan keskenään :)

dRD5/7

Lainaus, alkuperäisen viestin kirjoitti c2456:

Mielestäni on hieman kohtuutonta sanoa -webkit etuliitteen käytön tuovan IE6:n ongelmat takaisin. Ilmiö on toki siinä mielessä sama, että jotkut kehittäjät tekevät vain tietyllä selaimella toimivia ominaisuuksia. Silti vuosia vanhojen Internet Explorer versioiden sotkuja selvitelleenä en vertaisi näitä kahta tapausta ihan näin suoraan keskenään :)

Tavallaan totta, mutta jos oikeasti päädytään tilanteeseen, että sivut ovat ihan räjähtäneen näköiset, jos selain noudattaa standardeja eikä rendaa toiselle enginelle tehtyjä virityksiä (-webkit-), ollaan nopeasti vastaavassa tilanteessa. Eli siis siinä, että muut selaimet joutuvat tekemään epästandardeja purkkavirityksiä, että de facto -tapa tehdä sivuja on jotain muutakuin määritelty standardi. Ja tuo riippakivi tulee roikkumaan kaulassa taas .. kauanko? 10 vuotta niinkuin IE6-purkkaratkaisut?

cahva6/7

Näihin prefixeihin löytyy myös työkalu nimeltä Prefixr. Onhan se vähän vammaista että joutuu tällaisia käyttämään mutta ainakin vähän helpottaa. Asiaa ei myöskään helpota että aivan kaikkia määrityksiä ei tehdä aivan samalla syntaksilla.

readyEddy7/7

Aivan kuin artikkeli pohjaisi Peter-Paul Kochin QuirksBlogin viime torstain ja perjantain artikkeleihin mutta otsikko on harhaanjohtava.

webkit-etuliite ei muistuta millään tavoin IE6:n arvaamattomia ja dokumentoimattomia ominaisuuksia. Esim. Italic tekstityyppi aiheutti koko layoutin sekoamisen jos sillä aloitti tai lopetti rivin (sama vielä IE8:ssa). webkit-etuliitteen käyttö aiheuttaa huomattavasti paremmin dokumentoituja tai ainakin ennustettavia asioita.

TÄMÄN UUTISEN KOMMENTOINTI ON PÄÄTTYNYT