Desarrollo compatible entre navegadores
Todos los que desarrollamos sitios web, en algun momento de nuestras vidas, nos encontramos con el mismo problema: la incompatibilidad entre navegadores. Algunas sugerencias respecto a este problema.
"Advertencia: El siguiente sitio se ve mejor con…"
Así es, el famoso mensaje que nos recuerda una y otra vez que alguien no tuvo el tiempo ni las ganas de desarrollar un sitio compatible con nuestro navegador. Y como si eso fuese poco, nos recomiendan que descarguemos otro navegador y cambiemos la resolución de nuestro monitor. ¡Una locura!
Todos los que desarrollamos sitios web, en algún momento de nuestras vidas, nos encontramos con el mismo problema: la incompatibilidad entre navegadores. Una incompatibilidad que refleja, no solo la calidad de nuestro trabajo, sino también la interminable lucha de la W3C por establecer normas y estándares. Como todos ya saben, los navegadores se encuentran en constante desarrollo. Las empresas que los fabrican lanzan nuevas y mejores versiones con el fin de cumplir con ciertas reglas y aportar nuevas características. Ahora, ¿qué navegador utilizan las personas que visitan nuestro sitio? ¿Internet Explorer, Netscape, Opera, Safari o Konqueror? ¿Qué versión? ¿Con qué frecuencia los actualizan? ¿Qué preferencias tienen configuradas? ¿Qué plugins tienen instalados? ¿Qué plataforma de trabajo utilizan? ¿Windows, Mac, Linux, WebTV? ¿Bajo qué restricciones? Estas son algunas de las tantas preguntas que, como desarrolladores, nos debemos hacer a la hora de desarrollar un sitio web.
"No es una cuestión de piel, es una cuestión de navegadores"
Los navegadores actúan como traductores, traducen los documentos HTML en páginas web formateadas. Las reglas básicas para traducir estos documentos son establecidas por la World Wide Web Consortium (W3C), que se encarga de publicar los estándares oficiales del HTML en su sitio web. Ahora, esto es todo un tema, por no decir problema, ya que no todos los navegadores se rigen en base a estas normas, como así tampoco las interpretan de la misma manera. Por ejemplo, W3C establece que el tag TABLE debe soportar el atributo CELLSPACING para que uno pueda definir el espacio entre celdas. Pero los estándares no definen que valor lleva ese atributo por defecto, por lo tanto, si no especificamos un valor, los navegadores lo hacen por nosotros.
¿Qué navegadores debemos tener en cuenta a la hora de desarrollar un sitio? Fácil. Los más populares. Siempre es bueno tener en cuenta las dos últimas versiones de los mismos. O sea, tampoco vamos a retrasar el avance tecnológico por un loco que sigue usando Netscape 3.
Para aquellos que no estudiaron "Historia del Navegador" en
la universidad de Google, les cuento que la rivalidad entre Microsoft y Netscape
lo único que dejo fue una gran incompatibilidad entre navegadores, nada
mas. De ahí vienen los famosos tags LAYER e IFRAME, por nombrar algunos.
Por suerte, la época en que los navegadores inventaban sus propios tags
forma parte del pasado. Hoy en día muchos de estos tags se encuentran
en vías de extinción. Aunque esto no quita que la rivalidad entre
estas dos empresas haya terminado. Basta con ingresar a Hotmail utilizando el
navegador Netscape para ver lo que sucede.
Navegadores vs Desarrolladores
A partir de la llegada de Netscape 6, por fin podemos manejar capas con el mismo código para los navegadores Internet Explorer y Netscape:
<div id="capa" style="position:static; width:300; height:300;"> Funciona en Netscape 6+ e Internet Explorer 5+ </div>
Las versiones 4.x y anteriores de Internet Explorer y Netscape no reconocen el tag DIV, por lo tanto proceden a ignorarlo. Pero esto no significa que ignoren lo de adentro, lo cual nos permite sacar una ventaja muy importante a la hora de desarrollar un sitio compatible. Nunca se preguntaron para qué existen ciertos tags y atributos? Como por ejemplo el tag NOSCRIPT o el atributo ALT del tag IMG. No se inventaron para que el manual de HTML contenga más páginas, se inventaron para que podamos desarrollar sitios más compatibles. Algunas personas no permiten o no tienen permitido ejecutar rutinas de JS en su navegador, otras no quieren o no pueden ver imágenes. Y el tag NOSCRIPT y el atributo ALT están justamente para eso, para ajustar nuestro sitio a las preferencias y/o restricciones del visitante.
Ahora, cuando se trata de una incompatibilidad, ¿cómo le pedimos a un navegador que traduzca algo que no entiende? Por suerte, los navegadores poseen el maravilloso don de la indiferencia. Cuando no reconocen un tag, lo ignoran. Es muy importante destacar que los navegadores ignoran los tags que no reconocen, pero no lo de adentro.
Por ejemplo:
Si el tag DIV es reconocido por el navegador, creamos una capa de 300×300. Si no es reconocido por el navegador, utilizamos el tag LAYER para crear una capa de 300×300.
<html> <head> <style> #capa {position: absolute; width: 300; height: 300;} </style> </head> <body> <div id="capa" style="position: absolute; width:300; height:300;"> <layer id="capa" position="absolute" width="300" height="300"> Funciona en Netscape 4.x, 6+ e Internet Explorer 4.x, 5+ </layer> </div> </body> </html>
Fácil, no? Ahora, incorporemos dos tags más a este ejemplo, SCRIPT y NOSCRIPT. Este ultimo es un tag muy valioso, que muchos desarrolladores olvidan de utilizar a la hora de trabajar con JS.
<html> <head> <style> #capa {position: absolute; width: 300; height: 300;} </style> </head> <body> <div id="capa" style="position: absolute; width:300; height:300;"> <layer id="capa" position="absolute" width="300" height="300"> <script languaje="javascript"> document.write("Bienvenidos a mi sitio web..."); </script> <noscript> Bienvenidos a mi sitio web... </noscript> </layer> </div> </body> </html>
Este es el verdadero uso que se le debe dar al tag NOSCRIPT, de lo contrario caemos nuevamente en el error de los mensajes sin sentido, como por ejemplo: "Lo siento, su navegador no soporta JS". Y que sentido tiene informarle al usuario que su navegador no soporta JS? Como si se fuese a descargar otro navegador. Hay que pensar un poco más en el usuario, como solucionarle los problemas. De lo contrario, lo único que estamos haciendo con este tipo de mensajes, es crearle otro problema más.
Fallas en los navegadores
El navegador mas popular, ya sea para PC o Mac, sigue siendo Internet Explorer, seguido por Netscape y Opera. Aunque Safari, el navegador que incluye por defecto Mac en su sistema operativo, esta realizando un excelente trabajo. Es muy importante aclarar que cuando hablamos de Internet Explorer para PC, no estamos hablando de Internet Explorer para Mac. Por más hijos del mismo padre que sean, uno es rubio y el otro es morocho. Dicho en otras palabras, los dos tienen diferentes fallas e incompatibilidades. Otro navegador que se utiliza mucho a la hora de revisar sitios es el Konqueror, que corre bajo Linux.
Las fallas o "bugs" que contienen los navegadores, son las termitas de internet. Se comen todo lo que encuentran en el camino. Todos los navegadores contienen fallas y cometen errores, sobre todo a la hora de interpretar hojas de estilo y/o scripts.
La mejor forma de lidiar con esto es:
- Descargando e instalando la mayor cantidad de navegadores posibles. Nunca viene mal tener a mano unos cuantos navegadores de colección .
- Validando los documentos HTML y archivos CSS utilizando herramientas on-line: W3C’s CSS Validator o algún software dedicado: Top Style Pro .
- Visitando los sitios de las empresas que fabrican navegadores. Generalmente ahí publican las fallas de sus navegadores: Bugzilla .
- Conociendo las principales fallas de los navegadores más populares: Microsoft
Por ejemplo, sabían que:
.capa { font-size: 10pt; width: 300px; height: 300px; overflow: auto; /* overflow auto fix for Mac IE 5 */ padding: 0px 16px 0px 0px; }
a. Netscape 4.x (PC) no reconoce la propiedad "height".
b. Opera 4.x / 5.x y Netscape 4.x (PC y Mac) no reconocen la propiedad "overflow".
c. Internet Explorer 5 (Mac) genera dentro de las capas un margen imaginario de -15px.
d. El valor "px" le permite al usuario cambiar el tamaño de las fuentes, mientras que "pt" no.
Y, otra falla muy conocida que muchos desarrolladores parecen ignorar:
function mostrar(capa){ if (document.getElementById){ // innerHTML bug fix for NS 6 objeto.style.top = '1px'; objeto.style.top = '0px'; objeto.innerHTML='hola mundo'; } }
e. Netscape 6 (PC) contiene una falla al escribir dentro de una capa. Dicha falla se puede solucionar posicionando nuevamente la capa.
El siguiente sitio nos permite realizar una excelente prueba de compatibilidad: Site viewer
Conclusión final
Tenemos que aprender a ver nuestro sitio con los ojos de nuestros visitantes. Esto implica verlo con el mismo navegador, las mismas preferencias, el mismo sistema operativo, las mismas restricciones, el mismo monitor y hasta la misma resolución. Hasta el día de hoy, el método de prueba y error sigue siendo el mas efectivo a la hora de combatir la incompatibilidad.
No se olviden que existen dos tipos de mensajes en internet, "lo siento, tiene un problema" y "no se preocupe, ya esta solucionado". Como así también existen dos tipos de sitios, los que "se ven mejor con…" y los que se ven igual con todos.
Un saludo muy grande a toda la comunidad de Maestros del Web!
Aun sigue siendo un dolor de cabeza para muchos desarrolladores el hecho de que los navegadores interpreten de diferente manera muchas etiquetas. Sin embargo aun hay quienes pensamos que esto seguira por un buen periodo tiempo, a menos que las empresas desarrolladoras de Navegadores se pongan de acuerdo y establezcan Normas o Estandares que permitan en cualquier navegador visualizar una web sin ninguna diferencia a la hora de visualizarla.
Por lo pronto nos queda Probar a Ensayo y Error.
Me preocupa que no mencionas mucho a Mozilla que está teniendo gran éxito en el mercado de los navegadores. Te recomiendo que pruebes la versión Firebird que ha reemplazado a el IE en mi pc 😉
Por otro lado, el tip para hacer las páginas compatibles suena bien, pero que recomendarias para que no se hagan más pesadas debido a que básicamente estamos triplicando el código?
mmm… para empezar las capas como tu señalas no son compatibles con todos los navegadores y por eso es que ni siquiera me gusto tu ejemplo, hablas de navegadores, pero te falto incluir que las pcs de los usuarios a veces son lentas y si le metes un div a su navegador(que no lo reconozca) a veces lo ralentizará de tal forma que bloqueara todo el sistema y quizá hasta tenga que apagar y prender el equipo(porque se congelaria su sistema, hablo de win95, win98) y me ha pasado dando soporte? asi que no hablo a la ligera…
segundo punto lo del javascript?
propones entonces que para los lunaticos que no tengan el javascript activado cree una version completa en texto o HTML… ¿o que no le pase valores necesarios a, por ejemplo mysql, para llevar a cabo su consulta y su retorno de información al cliente(que eso si es importante)… porque el señor o señora que consulta mi sitio no le da la gana poner el javascript…?????????? a la larga aunque hagas una version de puro HTML para los que no soportan javascript o des una solucion al problema, encontraras que tu sitio, maravilloso con flash, o simple con mysql y facilidad de uso se va por el drenaje por tanto, CONCLUYO diciendo que lo mas sano es eso, poner una pagina para que sepan que el javascript es indispensable?(criticas esas paginas que dicen que el navegador no soporta javascript aunque no propones solucion integral), y no creo que la haya, creo que por eso existe javascript ?. JAVASCRIPT ES UNA SOLUCION? no hay que encontrarle mas solucion que ACTIVARLO en el navegador? o es que hay que encontrarle SOLUCION a la SOLUCION????? …. no hay mas?
excelente artículo, y excelentes herramientas para quienes tenemos en cuenta a nuestros navegantes…
Con relación a lo del JavaScript… creo que depende de tu audiencia…
Si es un sitio de una empresa que pretende vender un producto/servicio, atraer clientes… ni hablar: La página debe estar preparada para navegantes con y sin javascript. Si yo quiero comprar algo, y no me da la gana activar el JavaScript… y la página me lo exige.. joder! lo compro en la competencia, y listo.
Ahora… si es un sitio corporativo, donde entrarán proveedores/clientes internos de una empresa, que les permite consultar bases de datos, ingresar pedidos, reclamos, etc… oye… pues la audiencia está bajo tu control. Exigiles cookies, javascript, navegadores actualizados… vos tenes el control. Al final de cuentas o los usuarios se ajustan a tus requerimientos (hay que ser razonables también) o se quedan sin la información o servicios que les son vitales…
Siempre es cuestión de puntos de vista… y siempre depende.. dijo Pepito. 😀
Hasta luego.
😎
Ningun comentario sobre SAFARI?
Creo que en elarticulo deberia mencionar la existencia de varias librerias javascript que te proporcionan funcionalidades compatiblescon todos los navegadores.
Yo conozco 2 :
1.- http://www.cross-browser.com : La he integrado en un servidor de aplicaciones orientado a objetos en PHP (soporte de “salida” en html y gtk, y en el futuro con flash) que estoy desarrollando para mi proyecto de fin de carrera.
2.- XPDOM (esta en sourceforge), y esta creada por un español.
¿alguien conoce alguna otra?
Cuando hablo sobre los navegadores mas populares me baso en la cantidad de descargas reportadas por las empresas. Hay una lista por ahi dando vuelta.
Que programen por el lado del servidor. Muchos, al leer este articulo, se agarraron de javascript y de los layers como si este articulo fuese sobre eso, pero no, no es sobre eso. La idea principal es que tomen conciencia sobre los problemas que genera la incompatibilidad, ya sea cuando se trabaja con javascript, html, css o lo que sea.
Y ya que hablamos sobre Javascript, para mi es una herramienta mas de desarrollo, obviamente que no hay que abusar, porque todo abuso es malo. Lo interesante de JS es cuando se utiliza en conjunto con otro lenguaje, como PHP, ASP, etc. Se puede hacer mucho, muy bueno y muy compatible.
Si, esta por ahi… en el atriculo
Me gustaría sugerirles un sitio: http://www.csszengarden.com. Un sitio completamente crossbrowser, orientado a manejar estilos únicamente con CSS, y dejar tranquilo el html con la estructura de la página… dénle un vistazo, en serio, y si alguno de ustedes se anima, éntrenle a participar en ésa iniciativa
Yo creo que la mención de Mozilla no es 100% necesaria (aunque hubiera sido cortés de su parte). Sobre todo teniendo en cuenta que Netscape 6.0 (que si trata) y Mozilla son primos hermanos.
Por otra parte, depende siempre del target del publico. Para una empresa generalista esto puede ser importante pero para una empresa que se dedique a servir a webmasters y este tipo de gente, esto no es necesario. Se supone que tienen un navegador que es cumple con los estandares. Y si no lo tienen, que les den.
Exigir a los visitantes un minimo de IE5 y NS6 no es en absoluto una locura. Hablamos de navegadores con mas de tres años de antigüedad y, por tanto, navegadores que ya existían cuando la mayor parte de la gente empezó a entrar en Internet.
El problema, por mi parte no es tanto diseñar para los 4.0 sino tener en cuenta las singularidades (que suena mejor que fallos) de los navegadores que se supone tienen en cuenta los estandares (y en eso el 5.0 de Microsoft es alumno aventajado)
el articulo es bastante bueno, pero añadiría mas links con una lista de fallos, o de comparativas entre navegadores. Gracias
Muy bueno y acertable
Creo que se deberian hacer unas librerias Standard por un periodo de tiempo, que cuando se abra una pagina ésta determine el navegador y vaya automáticamente a la libreria y tome las funciones específicas de ése navegador.
Estas librerias se actualizarian cada año por lo menos haciendo una equivalencia de funciones entre uno y otro navegador.
Ufff me he liado..
he intentado hacerlo tal y como indicas, pero me hallo en un pozo..
consigo hacer que se vea bien(igual totalmente no) en netscape e internet explorer, pero con Opera y Konqueros se va todo al carajo.
Solucion ??
Gracias por todo.
Una solucion podria ser dejar de lado opera y konqueror, ya que muchas veces hacer un sitio compatible con todos los navegadore implica no utilizar muchos tags que mejoran la funcionalidad de nuestro sitio. Y realmente muchas veces no vale la pena sacrificar tanto por tan poco.
Una alternativa podría ser la de diseñar dos modelos de web, una compatible entre NN4+ 6+ y IE4+ …(con toda la complicacion de fondo que ello conlleva) y luego otro diseño mas simple para estos otros navegadores.
ME PARECIO QUE DEBERIAN TENER MAS INFORMACIÓN SOBRE LO QUE ES UN NEVGADOR Y PARA QUE SIRVE
tengo problemas con hotmail, messenger por no ser compatible javascript para estos programas y no tengo idea como resolverlo
arredonegozi http://27.mioautore.com/chirurgiadellamano/ suoneriacellularelgg3000 produzioneserramentiinlegno http://76.medegna.com/interfree/ pronosticoschedina cremebellezza http://180.grandiserto.com/casesavona/ condizionatorepompacalore venditaonlinelibri http://61.mioautore.com/cassarurale/ pavimentazioneporfido inurlbbsmessages149html http://166.pocoqueta.com/negozidianimali/ calciofemminilebocconi muccaallariscossa http://134.mioautore.com/venditapastabiologica/ lesbianpic saragozza http://43.masapienza.com/donnamatureporno/ accessorioautoalfa fornituraarredamentoufficio http://17.medegna.com/albergoatene/ blockhauscasalegno f4dd026ac39b9e2fa576404ae93f215c
// http://75.prestamolto.com/rosadennyoutletrosadennyspaccio/ //
Excelente articulo, en lo personal me preocupa lo del javascript, en cuanto al tema de los estilos, el TopoStyle aliviana harto el trabajo con sus herramientas de validacion tanto en linea como en la aplicacion misma.
Ahora en cuanto a Konqueror, la verdad que no me preocupa mucho, la mayoria de las distros linux incluyen Mozilla Firefox, el cual esta bastante standarizado.
Saludos.
Yo digo que yo no sé
jugando al tenis con tu hermana
campicalcetto http://3.diquestomonte.com/scaricoshark/ integratorisport offertapadova http://18.nonsofferse.com/vacanzaeconomicheitalia/ motocrossusata significatocoloriwebdesign http://17.raccoglie.com/spagnacampeggio/ milanoshopping emailsearch http://16.diquestomonte.com/canadesi/ giococomputer envelope http://8.sovragiunto.com/agriturismocostarei/ giocopctotalmentegratis dominiquesimone http://4.raccoglie.com/programmaelettorale2006/ clubpriveroma ragazzomontelupofiorentino http://3.raccoglie.com/lavorooffertabergamo/ bigclit miditomp3 http://5.raccoglie.com/tortanocciola/ albergodilussocannes 70fcdb09b8b18b50874603a6c99fcbcb
// http://8.diquestomonte.com/volobassocostothailandia/ //
spanked.html http://20.altvideos.org/blowjob.html foursome.html naughty.html http://12.amateurworld.org/hentai.html amatuer.html mature.html http://4.hotpassion.org/erotic.html pissing.html anime.html http://18.altvideos.org/cocksucking.html strapon.html messy.html http://8.thepassione.org/strap-on.html sexual.html fetish.html http://3.altvideos.org/squirting.html titty.html spanking.html http://17.thepassione.org/fuck.html cheerleader.html masturbate.html http://4.altvideos.org/blonde.html girl.html 71b0d16f90c6ef289fb9e0b08b44fd7c
// http://18.hotpassion.org/foursome.html //
Lo de javaScript que poponen no me parece, ya estamos bastantes avanzados con esto, y no creo que sea necesario escribir un codigo en html puro para los que lo tienen desactivado, habra que activarlo y listo, los mismo pasa con las resoluciones, no podemos pensar en resoluciones viejas como 640×480, uno ya sabe qeu eso quedo en el pasado, bueno l,o mismo con JS, hoy en dia se hace casi imprecindible.
Saludos.
cuantos navegadores existen??
cuantos navegadores existen??
para mi tiene q haber mas sitios para buscar información y sacar los sitios que tienes resumen se libros y otra cosas mas…yo puse esto para firmar en algun lado
la verdad que empeze a probar mozilla y me olvide del explorer 6 ahh cierto que salio el siete pero arranco con fallas bye
creo que hay mucho que hacer cuando se trata de desarrolla sitios compatibles, en parte hagamos cómo líneas arriba mencionan…ver el criterio y no ser tan especial en lo que respecta a navegadores al fin y al cabo…quienes desarrollamos webs nos debemos a los visitantes de las mismas y no al revés…:adios:
hola por lo que he leido ud dan respuestas tecnicas del asunto los que no sabemos de tecnicas , entre comillas , somos los nuevos usuarios , ejemplo que pasa si coloco mi navegador de internet exploret y mozilla, , creo que la respuesta deveria ser nor mal para gente que esta aprendiendo . ejemplo no se puede , es mas lento . o si se puede es mas rapido ….. en la web ya hay mas experiencia en el tema , por lo tanto sean sencillos para enceñar . hay que cambiar la manera de llegar a algunos ciber nautas , un poco mas cencilla ud pueden . no fueron ud los que dijieron ¿ quienes nos desarrollamos en la web , nos debemos alos visitantes , cuando ud vaya a mi casa yo lo voy a atender bien haga ud , lo ¡¡¡¡¡¡¡¡ lo mismo por favor
ay aldo parece un guindo usuario como muchos otros aqui , reitero,una pc es para trabajar y hay que saber usarla.
sobre el tema, desarrolle un menu para la web de venenux y en todos los navegadores se ve (konqueror, opera, firefox, mozilla, netscape, nautilus) pero en el MS CAGADA-explorer 5 6 o en nuevo 7 no funciona, conclusion es ovbia…
Gente todo lo que exolican y aportan es invalorable, porque es importante pensar en los usuarios en la web, pero creo que deberia mos nosotros, los desarrolladores, comenzar a pensar un poco en nosotros tambien, somos reenes de cuanto loca empresa largue un navegadorl, y cada vez nos complican mas nuestro trabajo cuando es nuestro trabajo el que le da vida a la red. Por eso no veo muy descabellado que cada vez aparezca mas el tan mal visto mensajito “Es mejor utilizar…. ” porque si las empresas no se ponen de acurdo en standarizar la cosa es momento que lo hagamos nosotros. Bueno este comentario quedó como una proclama!.. y tan solo son ideas de un desarrollador con mucho sueño.. hasta pronto
hola… tengo un problemita… lo que pasa es que estoy creando una pagina de web en el visual 2008… quisiera saber si ustedes saben como poder utilizar la pagina sin tener que utilizar la compatibilidad del explorer 8, porque se me descentra todo… se va todo hacia el lado izquierdo y pierde el centrado, algun codigo que pueda teclear dentro de mi pagina para poder desactivar,o no se si sea, activar, para quitar ese problema??
gracias…
[…] la incompatibilidad entre navegadores, es uno de los que complican la vida de los diseñadores web. Descargar este archivo Red de portales: ConocimientosWeb – Cursos online – Diario Tecnológico – Zips del […]
Exelente trabajo felicitaciones a su investigacion..
Me ha servido de mucho..
Gracias…