2010-02-12 9 views
11

Je viens de commencer à envisager d'utiliser l'API 5 HTML pour un projet Rails/JQuery, donc je peux utiliser ce super data- attribute pour stocker des valeurs.HTML 5 Charte de compatibilité du navigateur - HTML 5 dans les anciens navigateurs?

Je suis inquiet au sujet des problèmes de compatibilité de navigateur. J'ai deux questions (questions de base):

  1. Pour utiliser HTML 5, les gens ont besoin de mettre à jour leurs navigateurs? Comment ça marche? Y at-il un tableau à jour des caractéristiques prises en charge par chaque moteur de mise en page du navigateur, plus à jour que le Wikipedia article on comparing HTML layout engines et la page When can I use... HTML 5?

Est-ce que ça va être un problème avec les gens qui utilisent IE6 par exemple? Beaucoup de personnes non informaticiennes avec qui j'ai parlé et qui veulent avoir une présence sur Internet utilisent elles-mêmes, et les personnes avec lesquelles elles parlent utilisent encore IE6!

Si ce n'est pas un problème, et vous pouvez utiliser HTML 5 sur les anciens navigateurs, comment allez-vous? Ou quels documents dois-je regarder :)? Merci.

Mise à jour: Je vais poster quelques liens intéressants comme je les trouve ci-dessous.

FindMeByIP: "Une application simple qui révèle le support de vos navigateurs pour les fonctionnalités CSS3 et HTML5 dans un format facile à lire avec Modernizr." - Browser Support for CSS3 and HTML5

+0

Pour les attributs 'data-', voir http://stackoverflow.com/questions/2412947/do-html5-custom-data-attributes-work-in-ie-6, http://stackoverflow.com/questions/5696464/are-html-données-attributs-safe-for-older-browsers-eg-ie-6 et autres doublons. –

+0

Sur HTML5, voir http://diveintohtml5.org/introduction.html –

+0

L'URL pour diveintohtml5 a changé - il est reflété à http://diveintohtml5.ep.io – DanBeale

Répondre

12

Il n'est pas utile de considérer le HTML5 comme une entité unique, que les navigateurs prennent en charge ou ne supportent pas. HTML5 est:

  • une tentative de codifier la pratique actuelle largement au-delà des limites de ce que les normes précédentes W3 HTML et DOM avaient couvert, tels que les extensions IE et Firefox que les autres navigateurs ont copiés, et de longue date ' DOM Niveau 0 'comportements que tout le monde a pris pour acquis, mais n'ont pas été écrits dans aucune spécification avant.

  • une sélection aléatoire de nouvelles extensions qui ne sont pas encore largement répandues, ce que les constructeurs de navigateurs espèrent. Certains ont déjà réussi, se dirigeant vers tous les nouveaux navigateurs déjà; certains ont été conçus selon leurs propres spécifications (ce qui est beaucoup plus facile à gérer pour tout le monde), certains sont controversés et d'autres ne le sont pas du tout.

Il a été, IMO, une énorme erreur d'essayer de couvrir ces deux bases à la fois. J'aurais préféré une norme de «rattrapage» de style HTML 3.2 et de nombreuses spécifications d'extension distinctes. Mais il n'y a rien à faire à ce sujet maintenant.

HTML5 est aussi:

  • Non terminé. La spécification est massive, compliquée, incomplète, et susceptible de changer dans les détails (ou peut-être plus que cela) avant de devenir une norme appropriée. Personne ne peut encore dire qu'ils «supportent HTML5», parce que personne ne sait encore ce que «HTML5» va réellement être.

En termes pratiques: certaines parties de HTML5 ont été utilisées depuis longtemps. Il existe certaines parties que vous pouvez utiliser en toute sécurité sur les navigateurs modernes. Il y a des parties que vous pouvez utiliser sur les nouveaux navigateurs sauf pour IE. Il existe de nombreuses parties que vous pouvez utiliser avec des solutions de contournement de secours ou une «dégradation gracieuse». Il y a des parties que vous ne pourrez peut-être jamais utiliser. Pour l'instant vous devrez apprendre chacun séparément, car il n'y aura pas un navigateur qui supporte absolument tout dans HTML5 depuis de nombreuses années. Si jamais. Ajoutez les fonctionnalités supplémentaires que vous aimez au fur et à mesure et qui sont supportées par une plus grande part de navigateurs; il n'y aura pas de 'big bang' où tout le monde mettra à jour son navigateur à la fois. Comme pour les attributs data-, vous pouvez en quelque sorte vous en passer, car la plupart des navigateurs ont toujours laissé passer les anciens attributs. Ceci est typique de plusieurs extensions HTML5, le navigateur n'a pas besoin de le "soutenir" explicitement pour que cela fonctionne. Mais comme il existe d'autres moyens de transmettre des données (classes, commentaires, blocs de script, etc.), je ne suis pas convaincu qu'il vaut la peine de supprimer (pages universellement supportées, validables par rapport à un standard fixe) les pages HTML4/XHTML1. cette fonctionnalité encore.

10

Vous voudrez peut-être vérifier diveintohtml5.ep.io et modernizr.com.

Modernizr est un petit et simple bibliothèque JavaScript qui vous aide à tirer parti des nouvelles technologies web (CSS3, HTML 5) tout en conservant un niveau bien de contrôle sur les anciens navigateurs qui ne peuvent pas soutenir encore ces nouvelles technologies.


Voici un tableau interactif de soutien fonction html: http://a.deveria.com/caniuse/

Comme vous pouvez le voir, il y a beaucoup de navigateurs qui prennent en charge un certain nombre des caractéristiques H5.

+0

+1 pour les grands liens –

0

Ma réponse pourrait ne pas être celle que vous aimeriez mais je dirais - ne pas. N'utilisez pas HTML 5 pour le moment.

+0

Je pensais plutôt que:) merci pour la validation –

+0

Le dernier ensemble de fonctionnalités "pratiques" de HTML5 dépendra en grande partie de ce qu'Internet Explorer 9 prend en charge. Cela dépendra à son tour du nombre de sites qui ont * déjà * migré vers HTML5 (par exemple, si tous les sites populaires supportent la vidéo h5, IE9 devra également le supporter). Ainsi, plus il y aura de sites faisant du HTML5 le plus tôt possible, mieux ce sera à long terme. http://wiki.whatwg.org/wiki/What_you_can_do. – Seth

+2

Si vous attendiez que CSS soit finalisé, vous ne l'auriez pas utilisé avant 2 ans. HTML5 ne deviendra définitif que lorsqu'il y aura deux implémentations complètes. Et en attendant IE signifie que vous ne verrez jamais HTML5 mis en œuvre. Donc, utilisez les parties du support des navigateurs HTML5 modernes et laissez IE se dégrader gracieusement. Ceux d'entre nous qui nous entendons s'entendent très bien. Sinon, éliminez-vous pendant 10 autres années. – Rob

5

Si vous utilisez jQuery, préoccupé par l'interopérabilité, et la seule raison que vous étudiez HTML5 est d'utiliser l'ensemble d'attributs data-*, alors j'envisager de passer de nouveau à un doctype mieux pris en charge et en utilisant la méthode $().data() jQuery, ce qui vous permet de lier des parties de données arbitraires aux noeuds DOM, de la même manière que le groupe d'attributs data-.

Exemple:

<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

Comment cela se compare-t-il ou s'intègre-t-il aux données? –

+0

Il accomplit à peu près la même fin que les données, sauf en utilisant JavaScript au lieu de HTML. Dans la démo, vous remarquerez que les résultats de prompt() sont stockés sous $ ('button # set'). Data ('nom'). C'est à peu près l'équivalent de

+2

En fait, il utilise les attributs de données là où ils sont disponibles, autant que je sache. – Kzqai

0

Utilisez Protovis. Il utilise javascript et HMTL5. Pas de Flash ici. Plus important, Protovis a une licence BSD. Vous pouvez donc l'utiliser dans des projets commerciaux. Bien que D3 est un projet plus récent sur lequel travaillent les auteurs de Protovis.

0

Bien qu'il s'agisse d'une ancienne question (ish), le support du navigateur sera toujours pertinent. Il n'y a pas de bonne ou de mauvaise façon de l'aborder, mais jetez un coup d'œil à l'une des nombreuses tables de support des fonctions du navigateur qui vous indiquent le pourcentage d'utilisateurs qui verront une certaine fonctionnalité et seront brutaux.

N'essayez pas de plaire à tout le monde. Ne vous tuez pas pour attraper quelques pour cent des Luddites qui utilisent encore IE7. L'année prochaine, remplacez cela par IE8. Personnellement, je serais heureux de perdre 8% afin de passer ce temps sur des pratiques avant-gardistes plutôt que de répondre aux besoins de ceux qui ne savent pas ce qu'est une mise à niveau.Peut-être que votre site incitera les gens à effectuer une mise à jour. Ces personnes viendront finalement.

Questions connexes