Mode de compatibilitat

Un mode de compatibilitat és un mecanisme de programari en el qual un software emula una versió anterior del programari o imita un altre sistema operatiu per permetre que el programari o els fitxers antics o incompatibles siguin compatibles amb el maquinari o programari més recent de l'ordinador. Exemples de programari que utilitzen aquest mode són els sistemes operatius i Internet Explorer.

Sistemes operatius modifica

Un mode de compatibilitat en un sistema operatiu és un mecanisme de programari en què el sistema operatiu d'un ordinador emula un processador, un sistema operatiu i/o una plataforma de maquinari més antics per tal de permetre que el programari antic sigui compatible amb el maquinari o programari més recent de l'ordinador.

Això difereix d'un emulador de ple dret en què un emulador normalment crea una arquitectura de maquinari virtual sobre el sistema amfitrió, en lloc de simplement traduir les trucades de funció del sistema anteriors en trucades que el sistema amfitrió pot entendre.

Alguns exemples són el mode clàssic a Mac OS X i el mode de compatibilitat a Microsoft Windows, que permeten executar aplicacions dissenyades per a versions anteriors del sistema operatiu. Altres exemples inclouen Wine per executar programes de Windows en Linux/OS X i Mono per executar programes .NET en diversos sistemes semblants a Unix.

Internet Explorer modifica

La "Vista de compatibilitat" és una característica del mode de compatibilitat del navegador web Internet Explorer a la versió 8 i posteriors. Quan està activa, la vista de compatibilitat obliga a l'IE a mostrar la pàgina web en mode Quirks com si la pàgina es visualitzés a IE7.[1][2] Quan la vista de compatibilitat no està activada, es diu que IE s'està executant en mode nadiu. A IE11, un usuari pot activar el mode de compatibilitat per a un lloc web fent clic a la icona Gears i fent clic a Configuració de la visualització de compatibilitat.

IE8+ modifica

Internet Explorer 8 va ser promogut per Microsoft com un compliment més estricte dels estàndards web descrits pel W3C que els que tenia amb Internet Explorer 7. Com a resultat, com en totes les versions d'IE anteriors, hi hauria un percentatge de pàgines web codificades segons el comportament de les versions anteriors que per tant es trencaria en l'IE8. Això hauria estat una repetició de la situació amb l'IE7 que, tot i que ha corregit errors d'IE6, trencava pàgines que utilitzaven els hacks específics d'IE6 per evitar el seu incompliment. Això va ser especialment un problema pels documents HTML fora de línia, que potser no es podrien actualitzar (per exemple, emmagatzemats en un suport només de lectura, com ara un CD-ROM o un DVD-ROM).

Per evitar aquesta situació, IE8 va implementar una forma de "targeting" de versions per la qual es podia crear una pàgina en una versió específica d'un navegador mitjançant la declaració X-UA-Compatible ja fos com a etiqueta meta o a les capçaleres HTTP.[3]

Per tal de mantenir la retrocompatibilitat, els llocs web poden optar per una gestió del contingut semblant a IE7 inserint una etiqueta meta creada especialment a la pàgina web que activa el mode de compatibilitat al navegador, utilitzant:[4]

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Una versió més nova del navegador per a la qual es va codificar la pàgina emularia el comportament de la versió anterior, de manera que la pàgina assumiria que el comportament del navegador romandrien idèntic.

Microsoft va proposar que una pàgina amb un "doctype" que activa el mode estàndard (o gairebé el mode estàndard) a IE7, de manera predeterminada, desencadenaria un comportament semblant a IE7, anomenat "mode estàndard" (ara anomenat "mode estricte") a IE8 i futures versions de IE. Les noves funcions d'IE8 estan habilitades per activar el que Microsoft va anomenar "mode estàndards IE8" (ara anomenat "mode estàndards"). Els tipus de documents que desencadenen el mode Quirk a IE7 ho continuaran fent a IE8.

Peter Bright, d'Ars Technica, va afirmar que la idea d'utilitzar una etiqueta meta per triar un mode de representació específic perd fonamentalment el punt del desenvolupament basat en estàndards, però va posicionar el problema com un d'idealisme versus pragmatisme en el desenvolupament web, i va assenyalar que no tot sobre la xarxa web s'acaba mantenint, i que "exigir que els desenvolupadors web actualitzin els llocs per assegurar-se que segueixin funcionant correctament en qualsevol versió futura del navegador probablement sigui massa demanar".[5]

El resultat per l'IE 8 Beta 1 va ser que podia representar tres modes: "Quirks", "Estricte" i "Estàndard". Quan hi ha un DOCTYPE antic o quan no hi ha DOCTYPE, IE el representa com ho faria IE5 (mode Quirks). Quan s'inclou una etiqueta meta especial o la seva capçalera HTTP corresponent en una pàgina web, IE8 representarà aquesta pàgina com ho faria IE7 (mode estricte). En cas contrari, IE8 representa les pàgines amb el seu propi motor (mode estàndard). Els usuaris poden canviar entre els tres modes amb uns quants clics. El llançament d'Internet Explorer 8 Beta 1 va revelar que molts llocs web no funcionen en aquest nou mode estàndard.

Microsoft manté una llista de llocs web que s'ha informat que tenen problemes en el mode estàndard d'IE8, conegut com a llista de visualització de compatibilitat. Quan un usuari habilita aquesta llista, IE8 representarà els llocs web de la llista mitjançant el seu mode de visualització de compatibilitat.[6] La llista s'actualitza ocasionalment per afegir llocs web amb problemes recentment informats, així com per eliminar els llocs web els propietaris dels quals han sol·licitat l'eliminació. L'equip d'Internet Explorer també prova els llocs web de la llista per detectar problemes de compatibilitat i elimina aquells on no se'n troba cap.[7]

Referències modifica

  1. openspecs-ie. «[MS-IEDOCO: Compatibility View]» (en anglès americà). [Consulta: 13 desembre 2021].
  2. «Solucionar problemas de visualización de páginas web con la Vista de compatibilidad de Internet Explorer 11». [Consulta: 13 desembre 2021].
  3. Gustafson, Aaron. «Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8» (en anglès americà), 22-01-2008. [Consulta: 13 desembre 2021].
  4. «What's New in Internet Explorer 8» (en anglès americà). [Consulta: 13 desembre 2021].
  5. Staff, Ars. «Wisdom and folly: IE8's super standards mode cuts both ways» (en anglès americà), 25-01-2008. [Consulta: 13 desembre 2021].
  6. «Understanding the Compatibility View List» (en anglès americà). [Consulta: 13 desembre 2021].
  7. kexugit. «IEBlog» (en anglès americà). [Consulta: 13 desembre 2021].