Mostrando entradas con la etiqueta Estandares Web. Mostrar todas las entradas
Mostrando entradas con la etiqueta Estandares Web. Mostrar todas las entradas

Test para soporte de estándar en navegadores web

En Google se pueden encontrar muchas herramientas para testear el soporte de estándares que tienen los diferentes navegadores web, estas herramientas son muy útiles para prevenir y solucionar errores de compatibilidad.


Uno de los mas destacados es Acid2, un test creado por Web Standards Project que expone los fallos que tienen los navegadores para cumplir los estándar, si el navegador interpreta correctamente HTML y CSS2 el resultado de la pagina es una cara sonriendo como esta:


Resultado satisfactorio del test Acid2

Este test se hizo tan popular que Microsoft se puso en campaña para que su próximo navegador IE8 pase satisfactoriamente la prueba (obviamente los resultados de IE6 y IE7 fueron desastrosos) pero como era de esperarse, IE8 necesitaría en la pagina un tag no estándar que active un modo especial del navegador denominado "modo estandar", de manera que IE8 en su funcionamiento normal no puede superar la prueba, no va a soportar estándares y los diseñadores vamos a tener que seguir usando codigo no estándar para solucionar sus errores.


Otro test bien destacado es CSS3 Selector test desarrollado por CSS3.info, que realiza un test del soporte de selectores del navegador, con esta herramienta no solo podemos saber que navegador nos dará problemas con los selectores, también podemos ver de que manera se prueba el selector en el navegador así que también sabemos como evitar dicho problema.


En W3C podemos encontrar los test mas recomendados en cuanto a HTML, CSS y estándares, todos pueden ser muy útiles según el navegador que nos este dando problemas.

Consejos para pasar del diseño con tablas al diseño sin tablas

Lo primero que yo hago al empezar a estructurar un HTML es definir la envoltura general de todo el diseño
En este caso la pagina esta alineada al centro y tiene 800px de ancho.


HTML

<body>
<div id=”wrapper”>
</div>
</body>


CSS

#wrapper {
width: 800px;
margin: 0 auto;
}


Estructura y formato del header

Existen muchas técnicas para armar un sitio web sin tablas, una de las mas usadas para estructurar el header y evitar problemas de compatibilidad entre navegadores es dar posición relativa (position: relative;) a la envoltura del header. Esto permite ubicar los elementos dentro del header con posición absoluta, tomando como punto de referencia la esquina superior izquierda de la envoltura y mantener todo el layout alineado.


Para presentar el logo o titulo se recomienda (W3C recomienda) el uso de la etiqueta de encabezado H1 (no confundir con <title> que es el titulo en la ventana del navegador), esta etiqueta hace referencia al titulo general de la pagina por lo que se debe usar al principio y una sola ves si queremos mantener la estructura semántica.


Dentro del encabezado H1 podemos usar tanto texto como imagen, pero teniendo en cuenta que es un titulo tiene mejores resultados en los motores de búsqueda si usamos texto, ponemos la imagen como fondo con CSS y hacemos desaparecer el texto (también con CSS) para que el logo se vea sin problemas.


La navegación de un sitio es una lista vínculos desordenados, por lo que se debe usar el elemento de listas desordenadas para su presentación.
Es un error muy común armar la navegación con DIVs, usando un DIV como envoltura y un DIV para cada vínculo presentado.


Si necesitamos presentar texto dentro del header podemos recurrir a la etiqueta de párrafo y darle una posición absoluta dentro de nuestro header, o armar un buscador dentro de un DIV y posicionarlo donde corresponde.


Estructura de Header

Ejemplos del codigo:


HTML

<body>
<div id=”wrapper”>
<div id=”header”>
<h1>Logo</h1>
<ul>
<li>Link 1</li>
<li>Link2</li>
<li>Link3</li>
</ul>
<div id=”buscador”></div>
</div>
</div>
</body>


CSS

#header {
position: relative;
width: 800px;
height: 150px;
}
h1 {
width: 150px;
height: 65px;
position: absolute;
left: 30px;
top: 20px;
background: url(logo.gif) no-repeat left top;
text-indent: -9999px; /*Esta propiedad es para sacar el texto de la pagina y visualisar solo la imagen de fondo*/
}
#header ul {
margin: 0;
padding: 0;
list-style: none;
width: 300px;
height: 30px;
position: absolute;
right: 30px;
bottom: 20px;
}
#header ul li {
float: left;
display: inline;
margin: 0 10px
}
#buscador {
width: 140px;
height: 40px;
position: absolute;
right: 30px;
top: 20px;
}


Contenido de la página.

La estructura de una pagina depende siempre del diseño, es casi imposible encontrar 2 paginas con la misma estructura HTML y los la misma hoja de estilos, sin embargo las técnicas para estructurar son siempre similares.


Supongamos que tenemos una columna izquierda con 3 menús y cada menú tiene un titulo de referencia, la manera mas correcta de estructurar el código seria usar una envoltura para posicionar la columna, encabezados para los títulos y listas para los menús.


Los encabezados que deberíamos usar serian H2 (otro titulo) que son los que vienen a continuación de H1 usado en el header, seria un error conceptual y rompería la estructura semántica si usamos un encabezado H3 ya que el encabezado H2 es considerado un titulo y H3 un subtitulo de H2 (Google considera mala practica saltearse los encabezados).


Estructura de columna izquierda

Ejemplos del codigo:


HTML

<body>
<div id=”wrapper”>
<div id=”header”></div>
<div id=”left”>
<h2>titulo</h2>
<ul>
<li>Link1</li>
<li>Link2</li>
<li>Link3</li>
</ul>
<h2>titulo</h2>
<ul>
<li>Link1</li>
<li>Link2</li>
<li>Link3</li>
</ul>
<h2>titulo</h2>
<ul>
<li>Link 1</li>
<li>Link2</li>
<li>Link3</li>
</ul>
</div>
</div>
</body>


CSS

#left {
width: 200px;
float: left;
display: inline;
padding: 10px;
}
#left h2 {
margin: 0 0 5px 0;
padding: 0 0 0 5px;
}
#left ul {
margin: 0 0 0 10px;
padding: 0;
list-style: none;
}
#left ul li {
margin: 0 0 5px 0;
}


Si tenemos una columna izquierda, una derecha, el contenido y un pie de pagina la estructura seria algo asi:


HTML

<div id=”left”></div>
<div id=”content”></div>
<div id=”right”></div>
<div id=”foot”></div>


CSS

#left {
width: 200px;
}
#content {
width: 400px;
}
#right {
width: 200px;
}
#left, #content, #right {
float: left;
display: inline;
}
#foot {
width: 800px;
clear: both;
}


De la misma manera que posicionamos los elementos dentro del header podemos hacerlo en el foot, si le damos una posicion relativa y posicion absoluta a los elementos dentro.


Solución de problemas


Explorer tiene incontables errores con CSS ya que soporta un poco mas del 50% (IE6 y IE7) de los estándares establecidos y recomendaciones del W3C.
Muchos de estos problemas se solucionan activando la propiedad haslayout de los elementos HTML que consiste en forzar a los elementos a que tengan un layout.


Cuando Explorer carga una página divide los elementos en 2 grupos. Por un lado los elementos que dependen de su elemento contenedor para definir su tamaño y posición, y por otro lado los elementos que tienen su propio tamaño y posición.


Los elementos del segundo tipo son los que activan la propiedad haslayout, los elementos del primer tipo dependen de su elemento padre que en la mayoría de los casos es <body>


Los elementos HTML que por defecto tienen haslayout son:


  • <html>, <body>

  • <table>, <tr>, <td>, <th>, <td>

  • <img>

  • <hr>

  • <input>, <button>, <select>, <textarea>, <fieldset>, <legend>

  • <iframe>, <embed>, <object>, <applet>

  • <marquee>

Todos los demás elementos HTML no activan la propiedad haslayout de IE por defecto, por lo que hay que cambiar las propiedades del elemento mediante CSS para que activen el haslayout.


Propiedades CSS que activan haslayout:


  • position: absolute, fixed

  • float: left, right

  • display: inline-block

  • width: cualquier valor que no sea auto

  • height: cualquier valor que no sea auto

  • min-width: cualquier valor (solo en IE7)

  • min-height: cualquier valor (solo en IE7)

  • max-width: cualquier valor (solo en IE7)

  • max-height: cualquier valor (solo en IE7)

  • zoom: cualquier valor que no sea normal (propiedad no estándar, solo valida para IE)

  • writing-mode: tb, rl (propiedad no estándar, solo valida para IE)

  • overflow: hidden, scroll, auto (solo en IE7)

Mas información sobre haslayout en:


satzansatz.de
Microsoft


Otras recomendaciones para evitar problemas


opacity: 0.99; en elementos de texto para limpiar el renderizado de Safari.


El tamaño del texto debería ser % en el BODY (100%) y em para el resto.


Display: inline; en todos los elementos flotantes para evitar que Explorer duplique los márgenes.


Una técnica que no siempre funciona para solucionar problemas de flotantes en Explorer es overflow: hidden; en los elementos flotantes y overflow: auto; en los contenedores, además los contenedores tienen que tener haslayout activado con width o height.


Las imágenes de fondo posicionadas pueden desaparecer o posicionarse mal en Explorer, esto se debe a que Explorer no calcula bien la altura de los elementos, si tenemos una imagen de fondo posicionada en el límite inferior del elemento (background-position: left bottom;) Explorer no sabría cual es el limite inferior y no posisiona la imagen, esto se puede resolver con height: 1%; (IE toma la altura como altura mínima) o position: relative; (el posicionamiento de un bloque con posición relativa depende de su ubicación original y los elementos adyacentes dependen de la posición de este, Explorer aplica una altura aunque no la tenga para saber donde colocar los elementos adyacentes)

Tableyes (diseñar con tablas)

Tableyes design es un blog que justifica el uso de tablas en el diseño de un sitio web

Segun el concepto tableyes:

  • Son mas rápidas (es de vago y de poco conocimiento).

  • Es mas simple (formatear los elementos HTML con CSS es simple, la compatibilidad con navegadores lo hace complicado).

  • Es mas flexible (mas flexible que diseñar con CSS???????????)

  • Combinadas con CSS dan exactamente los mismo resultados que los DIVs (solo resultados estéticos, un sitio web no es solo un diseño)


Las ventajas mas importantes que tiene el usar los elementos HTML para lo que fueron creados (ya sean etiquetas de división, encabezados, listas, párrafos, ext) es que la estructura del código es mas ordenado, mas fácil de actualizar y en el caso especifico de comparar DIVs con tablas, un sitio estructurado con DIVs y CSS lleva de 3 a 4 veces menos código (siempre y cuando se usen donde corresponde), lo que lo hace mas liviano de descargar, mas rápido de desarrollar y mas simple de estructurar.
CSS nos permite cambiar la naturaleza de los elementos, incluso simular tablas o celdas de ser necesario, esta característica de CSS hace tan o mas flexible el desarrollo de un sitio web sin tablas que con tablas.


Tablas vs DIVs


Las tablas no pueden compararse con los DIVs porque los DIVs no son el único elemento que se usa al desarrollar una pagina, si para esto usamos exclusivamente DIVs la cantidad de código puede ser igual que si lo hacemos con tablas.
Lo que se debería comparar es un sitio estructurado con tablas y uno sin tablas, en cuanto a facilidad de desarrollo pueden que ganen las tablas, en cuanto a semántica, facilidad para actualizar, velocidad de descarga, orden en las estructuras, menos tiempo de trabajo, ext, creo que las tablas no son la mejor opción, lo mejor es usar las tablas para lo que fueron creadas, presentar datos tabulados.

(Sin mencionar los estándares establecidos por W3C que deberíamos respetar, los mejores resultados que se consiguen en los motores de búsqueda, y todos los beneficios que tiene un cliente con un sitio web bien echo.)

La historia del error 404???

El error 404 es un código de estado? o fue herencia de los creadores de Internet?


Error 404 en Firefox

"La historia del error 404" un artículo muy curioso sobre el origen del error 404 que muestran los sitios web cuando no encuentra la pagina solicitada (404: not found).


En resumen la "historia" dice que el error 404 se origino las instalaciones CERN Suiza (Conseil Européen pour la Recherche Nucléaire o Consejo Europeo para la Investigación nuclear) cuando Internet era un conjunto de ordenadores conectadas a una base de datos establecida en la oficina 404, las solicitudes a esta base de datos eran respondidas por el personal encargado de buscar el archivo manualmente y mandarlo al solicitante. Cuando no encontraban un archivo o demoraban en responder mandaban un mensaje avisando que no encontraron el archivo con el 404 como identificación (file not found. 404).


Con el tiempo la base de datos y las solicitudes fueron creciendo y los sistemas se automatizaron pero el mensaje de error fue estandarizado


Me llamo la atención porque como dice el articulo tiene todo para ser creíble pero investigando un poco encontré artículos en los que desmienten esta historia no solo con las publicaciones de W3C sobre el código de estado HTTP como fundamentos, también afirman que el CERN no tiene una oficina 404 en el cuarto piso, en realidad no existe una oficina 404 porque la numeración de las oficinas por piso van de 10 en 10 (no se hace 30 años…).


Aquí el articulo, a pesar de todo es interesante la historia y recomiendo su lectura.

El W3C examina el El Papel de las Tecnologías Móviles en la Promoción del Desarrollo Social


Los participantes del taller debatirán sobre cómo desarrollar el potencial de los teléfonos móviles para la prestación de servicios electrónicos

Como parte de su misión de asegurar que la Web esté al alcance de todos, el W3C invita a asistir al Taller sobre El Papel de las Tecnologías Móviles en la Promoción del Desarrollo Social que tendrá lugar los días 2 y 3 de junio en São Paulo, Brasil. El objetivo del taller es identificar los retos que supone la prestación de servicios electrónicos en teléfonos móviles a las personas de países en desarrollo."Estamos siendo testigos de una explosión extraordinaria en el uso de teléfonos móviles en países en desarrollo", dice Stéphane Boyera, de la Iniciativa de Web Móvil del W3C. "Para las personas de las comunidades rurales es mucho más fácil conseguir un teléfono móvil que un dispositivo de sobremesa. Este taller del W3C investigará el potencial de varias tecnologías móviles para proporcionar servicios web que mejoren las vidas de las personas. Concretamente, tenemos pensado debatir sobre cómo las tecnologías web podrían tener un papel decisivo en la promoción del desarrollo social".El W3C espera que el taller sea un foro multidisciplinar donde expertos en tecnología web y móvil, especialistas de ONGs, y representantes de Administración Electrónica, se reúnan para obtener más información sobre las necesidades, expectativas y retos específicos que supone la prestación de servicios a poblaciones desfavorecidas. La información sobre cómo participar en el taller está disponible en la página principal del taller. El W3C desea dar las gracias al NIC.br (Centro de Información en Red), al CGI.br Comité Ejecutivo de Internet, y al Instituto CONIP por su colaboración en la organización del taller. El taller se llevará a cabo con el apoyo económico del Séptimo Programa Marco de la Unión Europea (FP7) dentro del proyecto Digital World Forum. Tecnologías móviles para el desarrollo sostenibleLas tecnologías de la información, como la Web e Internet, que han cambiado tanto el mundo también ofrecen una gran oportunidad para mantener el desarrollo en las comunidades rurales y las poblaciones desfavorecidas. Durante los dos últimos años, las historias de éxito, como la de cómo algunos pescadores de la India utilizan la tecnología móvil, sugieren formas prácticas para mejorar las vidas de las personas a través de la tecnología móvil. Pero todavía existe una brecha entre el desarrollo de unos cuantos servicios que demuestran la viabilidad del proyecto, y la disponibilidad de servicios críticos a gran escala. En este contexto, la reciente explosión de la telefonía móvil en los países en desarrollo, se ha convertido en una gran oportunidad. Según el GSMA e ITU (GSMA Informe2006, ITU Informe 2007), a finales de 2007 aproximadamente 2.700 millones de personas y el 80% de la población mundial contaba con la cobertura de red GSM. Estas cifras demuestran la conveniencia de usar los teléfonos móviles como plataforma para los servicios de salud, educación, negocios y administración en entornos rurales.Oportunidades de PatrocinioEl W3C invita a todos los agentes sociales que deseen colaborar en el evento, a convertirse en patrocinadores del taller. El programa de patrocinio ha sido diseñado para promover la participación de individuos y organizaciones expertas, que de otra manera no podrían asistir debido a gastos de desplazamiento u otros costes.Este taller público forma parte de la Iniciativa de Web Móvil del W3C, cuyo objetivo es identificar y resolver los desafíos que surgen al acceder a la Web desde dispositivos móviles.

 

Blogger Template 2007 - 2010 Designed By Nicolás Pereyra