a.css

esbudellant estàndards


Operació neteja: Eliminar hacks CSS per l'IE

14/10/05

Al blog IEBlog dels desenvolupadors del navegador Internet Explorer alerten de que caldrà netejar els hacks CSS per l'IE 7 ja que estan arreglant uns quants bugs que s'usaven com a discriminador de propietats.

Tenint en compte la velocitat de canvi de navegador que s'ha dut en global fins ara, ens queda força temps de contemplar la versió 6 de l'IE.

Això vol dir que caldrà seguir mantenint certs hacks tot i que estiguin arreglats per les noves versions.

Una bona opció —aparentment— és l'ús dels comentaris condicionals per tal de discriminar versions d'IE sense afectar la resta de navegadors.

  1. Comentat per Martí el 28/10/05

    No deixa de sorprendre'm aquests debats que sorgeixen al voltant dels inconvenients de l'ús de hacks per corregir els problemes d'implementació CSS que (en major o menor mesura) pateixen tots els navegadors gràfics "standards-compilance".

    A veure, la meva manera d'entendre un hack és per poder esmenar una deficiència concreta d'una versió concreta de navegadors que ja existeixi, a partir del "joc" del "fet i amagar" de determinades regles CSS. Per tant, triaré un hack basat en una versió de navegador en concret i un problema concret.

    A partir d'aquí, ja que un hack utilitza errors de sintaxis CSS del navegador per "jugar" a mostrar o amagar una determinada regla CSS, entenc que això no tindria perquè condicionar una nova versió d'aquesta família de navegadors.

    Dit d'una altra manera, si jo vull fer un desenvolupament que sigui compatible amb IE5.x/Win, hauré d'utilitzar un hack per arreglar el problema del model de caixa (per posar un exemple). Encara que IE6/Win hagi arreglat el problema del model de caixa, jo segueixo tenint la necessitat de fer servir el hack per mantenir la compatibilitat amb IE5.x/Win.

    Per no extendre'm més, existeix una segona part d'aquest "problema" que la deixaré per si hi ha continuitat sobre aquests comentaris.

    Salutacions

  2. Comentat per Martí el 28/10/05

    Perdó, "standards-compliant" (no "compilance")... ;P

  3. Comentat per are el 28/10/05

    Té molt de sentit aquesta polèmica ja que els hacks no saps com reaccionaran amb el nou IE. N'hi ha molts que s'apliquen a IE 6, 5 .5 i 5.01 per tant no és tant simple com: hack A == tal navegador sinó que s'ha d'anar amb compte i mirar-s'ho amb compte.

    L'alerta dels desenvolupadors d'IE és, evidentment, promoció del nou "supernavegador". Però tot i ser-ho no deixen de tenir raó. S'haurà quina és la realitat de la nova versió i com es pot compaginar amb la resta (altres tipus i altres versions).

  4. Comentat per Martí el 31/10/05

    Completament d'acord amb el rerafons del debat, però d'aquí a fer-ne "alarmisme" crec que hi ha molta diferència. No ho dic per la teva reflexió, que la trobo completament lògica i (encara que no ho sembli) ja també me la faig, sinó per algunes reaccions mol desmesurades del tipus ...no solamente no es recomendable sino que NUNCA deberían usarse los hacks... recordo que em van increpar.
    Si la solució fos tan clara, experts com Tantek, Zeldman, Meyer, etc., no investigarien hacks, no els documentarien, no els utilitzarien, etc...
    En quant al raonament de no saber com es comportarien els hacks en noves versions, crec que es pot fer extensiu a qualsevol línia de codi de (x)HTML, CSS, JavaScript, etc... ¿Qui ens assegura que davant una nova release (del navegador que sigui) no tindrem un nou problema?
    Sempre estem exposats a revisar el codi, no només en pàgines web, sinó en qualsevol tipus d'aplicació.
    A més, podem minimitzar l'impacte de possibles problemes futurs (noves releases) en l'ús de hacks aprofitant la característica de "cascada" aïllant el hacks en fulls d'estil concrets.
    A més, jo vull recordar que els filtres HTML són codi propietari de Microsoft (no estàndard), per tant, només són compatibles per MSIE, i s'han d'escriure dintre del document font (per tant, té un impacte important en aplicacions dinàmiques si aquest s'hagués de modificar) i a més, em pregunto ¿la resta de browsers què? Perquè no existeix un sol browser que no tingui algun defecte d'implementació.
    Amb tots aquests arguments que exposo, no vull posicionar-me sobre si A és millor que B ni tan sols vull convèncer a ningú. Però això si, en termes generals, em decanto més pel hack que pel filtre MS.

  5. Comentat per Martí el 31/10/05

    Una pregunta, els responsables de Miscrosoft, han posat algun exemple sobre aquesta advertència referent als hacks?

    Ho dic perquè la segona part del problema que jo em referia en el primer comentari, anava sobre que el hack té dues parts:

    A) un hack s'utilitza a mode de filtre per definir unes propietats determinades per a un browser en concret que implementa una regla CSS de manera diferent a l'especificació estàndard.

    B) el mateix hack es basa en provocar un error en la regla CSS per jugar a "fet i amagar". A partir de l'error, s'espera que els browsers es comportin segons indica l'especificació, però aquí està la clau del hack. Que no totes les releases de navegadors es comporten segons indica l'especificació quan aquest es troba davant una regla no vàlida.

    Per tant, quan un fabricant de sofware anuncia que ha depurat determinats bugs o errors, concretament a què s'està referint, al problema A o al problema B?

    En principi, hom espera que a ambdues coses. Si això sempre fos així, no hi hauria motiu per a preocupar-se per la "compatibilitat futura" dels hacks.

  6. Comentat per are el 31/10/05

    Aquí està el risc més gran. Si, posem per exemple, el hack del subguió s'arregla en el nou IE però no s'arregla el problema que s'intenta solucionar amb aquest sorgirà un problema.
    En aquest cas només caldrà afegir un nou hack (encara per descobrir).

    Però si arreglen el bug que arreglavem amb el hack però aquest hack no l'arreglen (això passarà en molts casos) tindrem un hack que s'aplicarà a IE 5, 6 i 7 però que ens donarà problemes amb el darrer.

    Crec que cal preocupar-se i molt vista la trajectoria del navegador en qüestió :S


© Arnau Siches. a.css està sota Llicència Creative Commons.