2010-02-12 12 views
11

Acabo de empezar a considerar el uso de la API de HTML 5 para un proyecto de Rails/JQuery, así que puedo usar ese gran data- attribute para almacenar valores.Gráfico de compatibilidad de navegador HTML 5: ¿HTML 5 en navegadores antiguos?

Sin embargo, me preocupan los problemas de compatibilidad del navegador. Tengo dos preguntas (preguntas básicas):

  1. Para utilizar HTML 5, ¿las personas necesitan actualizar sus navegadores? ¿Cómo funciona?

  2. ¿Existe un gráfico actualizado de las características que admite cada motor de diseño de navegador, más actualizado que este Wikipedia article on comparing HTML layout engines y esta página When can I use... HTML 5?

¿Va a haber un problema con las personas que usan IE6, por ejemplo? Muchas de las personas no informáticas con las que he hablado que quieren obtener una presencia en Internet las usan, y las personas con las que hablan usan, ¡aún así, IE6!

Si no es un problema, y ​​puede usar HTML 5 en navegadores antiguos, ¿cómo lo hace? ¿O qué documentos debo ver :)? Gracias.

Actualización: Voy a publicar algunos enlaces interesantes ya que los encuentro a continuación.

FindMeByIP: "Una aplicación simple que revela el soporte de tus navegadores para las funciones de CSS3 y HTML5 en un formato fácil de leer usando Modernizr." - Browser Support for CSS3 and HTML5

+0

En los atributos 'data-', vea http://stackoverflow.com/questions/2412947/do-html5-custom-data-attributes-work-in-ie-6, http://stackoverflow.com/questions/5696464/are-html-data-attributes-safe-for-older-browsers-eg-ie-6 y otros duplicados. –

+0

En HTML5, consulte http://diveintohtml5.org/introduction.html –

+0

La URL de diveintohtml5 ha cambiado. Se ha duplicado en http://diveintohtml5.ep.io – DanBeale

Respuesta

12

No es útil considerar HTML5 como una entidad única, que los navegadores 'admiten' o 'no admiten'. HTML5 es:

  • un intento de codificar la práctica existente extendido más allá de los límites de lo que las anteriores normas W3 HTML y DOM habían cubierto, como extensiones de IE y Firefox que los otros navegadores han copiado y de larga data ' Comportamientos DOM Nivel 0 'que todos daban por sentado pero que antes no estaban escritos en ninguna especificación.

  • una selección aleatoria de nuevas extensiones que todavía no se utilizan ampliamente, y que se espera que los fabricantes de navegadores respalden. Algunos ya han tenido éxito, dirigiéndose a todos los navegadores nuevos; algunos se han dividido en sus propias especificaciones (que es mucho más manejable para todos), algunos son controvertidos y a nadie le importan en absoluto.

Ha sido, IMO, un error enorme tratar de cubrir estas dos bases a la vez. Hubiera preferido un estándar de "recuperación" del estilo HTML 3.2 más muchas especificaciones de extensión separadas. Pero no se puede hacer nada al respecto ahora.

HTML5 es también:

  • No acabado. La especificación es masiva, complicada, incompleta y es probable que cambie en los detalles (o tal vez más que eso) antes de que se convierta en un estándar adecuado. Nadie puede decir que 'admiten HTML5' todavía, porque nadie sabe aún qué 'HTML5' realmente va a ser.

En términos prácticos: hay algunas partes de HTML5 que han estado en uso durante mucho tiempo. Hay algunas partes que puede usar de forma segura en los navegadores modernos. Hay algunas partes que puede usar en navegadores nuevos, excepto en IE. Hay muchas partes que puede utilizar con soluciones alternativas o 'degradación elegante'. Hay algunas partes que quizás nunca puedas usar. Por ahora, tendrá que aprender cada uno por separado, porque no habrá un navegador que admita absolutamente todo en HTML5 durante muchos, muchos años. Si alguna vez. Agregue las características adicionales que le gustan gradualmente a medida que avanza y que cuenten con el respaldo de una mayor cantidad de navegadores; no habrá 'big bang' donde todos actualicen su navegador de una vez.

En cuanto a los atributos data-, bueno, sí, puedes salirte con la suya al usarlos, ya que la mayoría de los navegadores siempre permitieron que los atributos antiguos pasaran de todos modos. Esto es típico de varias extensiones HTML5, el navegador no necesita 'apoyarlo' explícitamente para que funcione.

Pero como hay otras formas de pasar datos (clases, comentarios, bloques de secuencias de comandos, etc.), no estoy del todo convencido de que valga la pena dejar caer (compatibilidad universal, validable con un estándar fijo) páginas HTML4/XHTML1 solo para esa característica aún.

10

Es posible que desee comprobar diveintohtml5.ep.io y modernizr.com.

Modernizr es un pequeño y sencillo biblioteca JavaScript que le ayuda a tomar ventaja de las nuevas tecnologías web (HTML CSS 3, 5), manteniendo un buen nivel de control sobre los navegadores más antiguos que aún no pueden apoyar estas nuevas tecnologías.


Aquí es un gráfico interactivo de soporte de las funciones HTML: http://a.deveria.com/caniuse/

Como se puede ver, hay una gran cantidad de navegadores que permiten un buen número de las características H5.

+0

+1 para obtener excelentes enlaces –

0

Mi respuesta podría no ser la que le gustaría pero le diría que no. No use HTML 5 por el momento.

+0

. Estaba pensando que:) gracias por la validación –

+0

El conjunto de características "prácticas" finales de HTML5 dependerá en gran medida de lo que sea compatible con Internet Explorer 9. Eso, a su vez, dependerá de cuántos sitios * se hayan * trasladado * a HTML5 (por ejemplo, si todos los sitios populares admiten video h5, IE9 también tendrá que admitirlo). Por lo tanto, cuantos más sitios hagan HTML5 lo antes posible, mejor a la larga. http://wiki.whatwg.org/wiki/What_you_can_do. – Seth

+2

Si esperaras hasta que CSS se finalizara, no habrías empezado a usarlo hasta hace 2 años. HTML5 no será definitivo hasta que haya dos implementaciones completas. Y esperar IE significa que nunca verás HTML5 implementado. Por lo tanto, utilice las partes del soporte de navegadores modernos HTML5 y permita que IE se degrade graciosamente. Aquellos de nosotros que nos llevamos nos llevamos bien. De lo contrario, salga del camino por 10 años más. – Rob

5

Si está utilizando jQuery, preocupado por la interoperabilidad y la única razón por la que está investigando HTML5 es utilizar el conjunto data-* atributo, entonces yo consideraría cambiar de nuevo a un tipo de documento compatible mejor, y utilizando el método de jQuery $().data(), lo que le permite vincular datos arbitrarios con nodos DOM, de forma similar a como lo hace el atributo data-.

Ejemplo:

<button id="set">Click me!</button> 

$('button#set').click(function(){ 
    if($(this).data('name')){ 
     alert('Clickin\' again so soon, ' + $(this).data('name') + '?'); 
    }else{ 
     $(this).data('name', prompt('Hey good lookin\', what\'s your name?', '')); 
    } 
}); 

Try it out!

+0

¿cómo se compara o se integra con los datos-? –

+0

Logra más o menos el mismo fin que los datos, excepto mediante el uso de JavaScript en lugar de HTML. En la demostración, notará que los resultados de prompt() se almacenan como $ ('button # set'). Data ('name'). Esto es más o menos el equivalente de

+2

En realidad, utiliza los atributos de los datos en los que están disponibles, que yo sepa. – Kzqai

0

Use Protovis. Utiliza javascript y HMTL5. Sin flash aquí. Más importante aún, Protovis tiene licencia BSD. Entonces puedes usarlo en proyectos comerciales. Aunque D3 es el proyecto más nuevo en el que los autores de Protovis están trabajando.

0

Aunque esta es una pregunta antigua (ish), el tema del soporte del navegador siempre será relevante. No hay una forma correcta o incorrecta de abordarlo, pero eche un vistazo a través de una de las muchas tablas de soporte de características del navegador que le muestran qué porcentaje de usuarios verán una determinada función y luego serán brutales.

No intente complacer a todos. No te mates para atrapar a un pequeño porcentaje de los luditas que todavía usan IE7. El próximo año, sustituya eso por IE8. Personalmente, me encantaría perder un 8% para dedicar ese tiempo a las prácticas de pensamiento avanzado en lugar de atender a aquellos que no saben qué es una actualización.

Tal vez su sitio haga que las personas se actualicen. Estas personas se darán la vuelta eventualmente.