html5

The future is near

La balise <progress> en HTML5

Comme vous le savez, plusieurs nouvelles balises sont présentes en HTML5. En voici une autre qui est un peu moins connue/populaire.

Quelle est l’utilité de la balise <progress> ?

La balise <progress> permet d’indiquer la progression d’une tâche quelconque. Elle pourrait très bien être intégrée à des applications en ligne comme Basecamp ou toute autre application de gestion de projets. Nous pouvons facilement imaginer son utilité pour des barres de progression en nous indiquant le status d’une tâche (peu avancée, moindrement avancée, complétée, etc).

Les attributs de la balise <progress>

Cette balise peut contenir deux attributs : value et max.

L’attribut value détermine la progression d’une tâche jusqu’à maintenant tandis que l’attribut max va servir à déterminer la valeur maximale qu’une tâche peut avoir avant d’être complétée.  À noter que la valeur des deux attributs se doit d’être un float et ne doit pas dépasser 1.

Voici un exemple de l’utilisation de la balise <progress> avec une interaction Javascript :

<p>Progression de ma tâche: <progress value="0" max="1">
<span id="p"></span>%</progress></p>

<script>
    var progressBar = document.getElementById('p');
    progressBar.textContent = 0;
    function updateProgress(newValue) {
        progressBar.textContent = (newValue * 100);
    }
</script>

<p><a href="#" onclick="updateProgress(1);" title="Update progress bar">
J'ai terminé cette tâche</a></p>

Pour en savoir plus sur la balise <progress>, je vous invite à lire la description complète se trouvant dans la spécification d’HTML5 du W3.

Télécharger l’exemple sur la balise progress.

Post to Twitter Tweet This Post

Construire une simple interface de blog en HTML5

Vous voulez savoir par où commencer pour vous créer une simple interface en HTML5? Vous voulez qu’elle ait un look de blog et qu’en plus elle soit liquide? Quelle chance que vous soyez tombé sur ce blog..!

Je vais vous expliquer ci-dessous comment je m’y suis pris pour construire ma propre interface de blog en HTML5 (que j’ai par la suite adaptée pour Wordpress, mais que je ne décrirai pas dans ce billet).

Tout d’abord, il nous faut notre en-tête principal qui contiendra le titre, le slogan et la navigation principale du site.

L’utilisation de la nouvelle balise <header> est parfaite pour nos besoins mentionnés plus haut. Nous utiliserons cette balise qui elle-même contiendra la balise <hgroup> (voir mon billet la nouvelle balise hgroup) qui elle s’occupera de contenir le titre (<h1>) et slogan du site (<h2>).

Voici le code jusqu’à maintenant :

<header>
    <hgroup>
        <h1><a href="http://www.blog-html5.com" title="Blog HTML5">
        html<span>5</span></a></h1>
        <h2>The future is near</h2>
    </hgroup>
</header>

Nous avons donc en place notre en-tête qui contient le titre et slogan du site. Il nous faut maintenant y intégrer notre navigation principale.

<nav>
    <ul>
        <li><a href="http://www.blog-html5.com" title="Blog HTML5 - html5">
        HTML 5</a></li>
        <li><a href="http://www.blog-html5.com" title="Blog HTML5 - html5">
        HTML 5</a></li>
        <li><a href="http://www.blog-html5.com" title="Blog HTML5 - html5">
        HTML 5</a></li>
        <li><a href="http://www.blog-html5.com" title="Blog HTML5 - html5">
        HTML 5</a></li>
    </ul>
</nav>

À noter que nous utilisons maintenant la balise <nav> pour contenir notre navigation principale. Cette balise a été créé pour aider la sémantique du code en HTML5 afin que l’on repère plus facilement les zones navigables d’un site web. Il faut par contre faire attention de ne pas surutiliser cette balise qui ne doit pas être utilisée à chaque fois que l’on a une série de liens.

Jusqu’à maintenant, rien de trop complexe, seulement la mise en place des nouvelles balises à leurs endroits respectifs. Nous pouvons déjà remarquer que la sémantique est améliorée et que l’on ne retrouve pas de div=” header” ou ul=”nav”.

Une fois l’en-tête créé, on s’attaque au contenu même de l’interface. Le contenu contient évidemment nos articles de blog. Nous avons donc besoin d’une section qui contiendra plusieurs articles. Comme si c’était arrangé avec le gars des vues, la balise <section> ainsi que la balise <article> vont s’occuper de tout ça.

La balise <section> parle assez d’elle-même. Elle sert à définir une section quelconque d’un site Web. Dans notre cas, c’est la section qui contient nos articles de blog.

Voici le code qui va répondre à nos besoins :

<section>
    <article>
        <header>
            <h3>Mon blog sur HTML5</h3>
            <p class="articleDate"><time>12 octobre 2009</time></p>
        </header>
        <p>HTML5 est pour bientôt. Blablabla.</p>
        <footer>
            <ul>
                <li>Auteur Simon Guérin</li>
            </ul>
        </footer>
    </article>
</section>

Encore une fois ici, la sémantique parle d’elle-même. Nous avons une section qui contient un article qui lui-même contient un en-tête (titre du blog + sa date de publication), le texte de l’article et finalement un pied de page (auteur de l’article).

Rien de très sorcier mise à part de comprendre la mise en place des nouvelles balises HTML5. Un article a toujours un titre et une date de publication. Il est donc logique de placer le tout dans l’en-tête de l’article (<header>). Nous retrouvons également le pied de page défini par la nouvelle balise <footer> qui est parfaite pour définir l’auteur de l’article. L’approche utilisée ici peut s’appliquer à beaucoup d’autres scénarios. Il suffit de prendre le temps d’analyser chacune des sections d’un site web.

Nous avons un en-tête, nos articles, mais il manque quelque chose non? L’affichage de nos tweets! Nous allons placer à la droite de nos articles, nos derniers tweets provenant de Twitter. Pour ce faire, je vais utiliser la balise <aside> qui a pour définition de représenter une section qui est reliée au contenu tout près de cette même balise. Elle peut également servir pour représenter une « sidebar ». Je crois que cette nouvelle balise va fortement être utilisée pour souvent représenter le contenu à droite dans un blog (Twitter, tags clouds, derniers billets, etc).

Le code à rajouter est le suivant :

<aside id="twitter_div">
    <h2>My Twitter feed</h2>
    <ul id="twitter_update_list">
        <li></li>
    </ul>
</aside>

Vous devez également rajouter les 2 lignes suivantes avant la fermeture de la balise </body>. Ces 2 lignes permettent de synchroniser le tout avec Twitter. À noter que vous devrez changer mon nom americanwhore par votre Twitter username.

<script type="text/javascript" src="http://twitter.com/javascripts/
blogger.js"></script>
<script type="text/javascript" src="http://twitter.com/statuses/
user_timeline/americanwhore.json?callback=twitterCallback2&amp;
amp;count=10"></script>

En somme, les nouvelles balises HTML5 vues dans ce billet n’ont pas été créé par hasard. HTML5 va grandement améliorer la sémantique des pages Web et il deviendra plus simple d’interpréter le contenu de chaque page.

Télécharger l’exemple complet pour créer une simple interface de blog en HTML5.

Vous pouvez également voir un autre exemple que j’ai fait en gardant le même code HTML5, mais arrangé différemment avec CSS.

Post to Twitter Tweet This Post

Vignettes Valide HTML5

Mon côté designer avait envi de créer des vignettes pour indiquer qu’une page est valide HTML5 par le W3C. Elles sont faites par plaisir d’avoir mes propres vignettes HTML5 d’ici à ce que le W3C en crée à leur tour.

Vous pouvez les utiliser sans problème sur vos sites. It’s free!

PS : Ne sachant pas parler français, elles sont en anglais.

Blog HTML5 - Valid Icons HTML5

Post to Twitter Tweet This Post

HTML5 Hack pour Internet Explorer (Partie 2)

Comme mentionné dans un billet antérieur, HTML5 n’est pas encore pris en compte par Internet Explorer.

Il existe par contre un fichier Javascript permettant de « contourner » le problème. Il suffit de placer les quelques lignes de code ci-dessous dans votre balise <head> pour que votre HTML5 soit rendu sous Internet Explorer.

<!–[if lte IE 8]>

<script type=”text/javascript” src=”js/html5.js”></script>

<![endif]–>

Télécharger le fichier html5.js

Voir aussi cet article d’HTML5 Doctor qui explique comment utiliser HTML5 sous Firefox 2 et Camino

Post to Twitter Tweet This Post

Thème Wordpress HTML5

Ayant un blog traitant principalement d’HTML5, j’ai eu l’idée de créer mon propre thème Wordpress (qui est mon thème actuel) roulant sous HTML5.

Le thème est encore en beta, mais il est tout à fait fonctionnel. Il vous faudra, par contre, légèrement l’adapter selon vos besoins et avoir quelque peu de connaissance en HTML pour pouvoir l’éditer.

Le nom du thème est Inspire qui fait évidemment référence au nom de domaine de mon portfolio, soit  http://www.ins.pire.me.

Je vous invite donc à l’essayer et de me tenir informé si vous l’utilisez.

Dans un billet que je vais écrire sous peu, j’expliquerai comment construire une interface simple de blog en HTML5. Vous pourrez donc créer votre propre interface facilement.

Télécharger le thème Wordpress Inspire fait en HTML5 par Simon Guérin

Cheers.

Note pour les programmeurs/intégrateurs : Vous remarquerez peut-être plusieurs erreurs reliées aux “html entities”. En effet, il semble avoir encore un problème de ce côté avec HTML5. J’y reviendrai dans un autre billet…

Post to Twitter Tweet This Post

La nouvelle balise <hgroup>

Voilà une balise intéressante à utiliser dès maintenant pour ceux qui utilise déjà HTML5.

Si je reprends la définition du W3C :

The hgroup element represents the heading of a section. The element is used to group a set of h1–h6 elements when the heading has multiple levels, such as subheadings, alternative titles, or taglines.

Donc en gros, la balise <hgroup> permet de regrouper plusieurs éléments décrivant un en-tête de section. (ex : titre avec un sous-titre ou titre avec un slogan, etc)

Imaginons par exemple un site web corporatif qui à son logo et un slogan en dessous.

Blog HTML5 - hgroup tag

Le code approprié serait :

<header>
    <hgroup>
        <h1 id="logo">Budget en ligne</h1>
        <h2>Planifier son budget intelligemment</h2>
    </hgroup>
</header>

C’est simple, efficace et on comprend plus facilement l’intention en analysant le code source.

Post to Twitter Tweet This Post

Hack Internet Explorer 8 pour s’amuser avec HTML5

Comme mentionné dans un billet antérieur, HTML5 n’est pas encore supporté par Internet Explorer 8. Pour au moins avoir un quelconque rendu dans ce navigateur, vous devrez rajouter les lignes de code suivantes à vos pages HTML :

<!--[if IE]>
<script>
document.createElement("header");
document.createElement("footer");
document.createElement("nav");
document.createElement("article");
document.createElement("section");
</script>
<![endif]-->

En ajoutant cela, Internet Explorer 8 prendra au moins en compte les nouvelles balises header, footer, nav, article et section. On est loin de pouvoir pratiquement tout faire comme dans Firefox ou Safari, mais c’est un début…

Post to Twitter Tweet This Post

Utilisation de la vidéo avec HTML5

Une des grandes nouveautés avec HTML5 est la possibilité d’intégrer de la vidéo sans passer par la technologie Flash. En effet, encore aujourd’hui sous HTML4 ou XHTML, nous devons “embedder” (oui oui le verbe embedder) nos vidéos en Flash. Cela implique donc beaucoup de code inutile et souvent pas conforme au W3C. De plus, il faut également s’assurer que l’utilisateur possède Flash Player pour être en mesure de jouer la vidéo en question. Vous me direz : “Oui, mais qui n’a pas Flash Player de nos jours?”… Admettons que mon grand-père ne l’a pas et que je veux lui faire plaisir, je vais utiliser HTML5 et la balise <video>.

Voici un exemple de l’utilisation de la vidéo avec HTML5 :

<video width=”450″ height=”400″ poster=”images/bla.jpeg” controls=”controls”>

<source src=”http://tinyvid.tv/vfe/big_buck_bunny.ogv” type=”video/ogg” />

</video>

Simple n’est-ce pas? En ayant moindrement des connaissances en HTML, vous devriez être en mesure de comprendre le fonctionnement général de cette ligne de code. Je vais par contre vous expliquez l’essentiel plus en profondeur ci-dessous.

La balise peut comprendre 8 attributs (voir mon billet “Bien démarrer avec HTML5” pour y consulter la HTML5 Cheat Sheet).

Vous connaissez sans aucun doute les attributs width, height et src qui sont également utilisés pour les images. Ce qui nous intéresse est plutôt l’attribut poster, control, autoplay(qui n’est pas dans l’exemple) ainsi que la balise <video>.

L’attribut poster permet de choisir une image qui apparaîtra si la vidéo prend du temps avant de charger ou si la vidéo n’existe plus. Dans mon exemple, mon image par défaut est placée sous le répertoire images.

L’attribut controls indique au navigateur que vous voulez les contrôles par défaut. Il est également possible de créer ses propres contrôles, mais j’y reviendrai dans un autre billet.

L’attribut autoplay s’assure de jouer automatiquement la vidéo (ce que je ne suggère en aucun cas sur un site Web à moins que ce soit vraiment pertinent..).

La balise <source> me sert à déterminer l’emplacement de la vidéo ainsi que son format.

Vous pouvez donc maintenant facilement intégrer vos vidéos dans vos pages en utilisant HTML5. Bien entendu, HTML5 n’est pas encore totalement au point et la balise <video> n’est pas encore supportée par tous les navigateurs . Firefox 3.5, Chrome 3 Beta, Safari 4 et iPhone OS3 supportent assez bien la balise <video>. Est-ce que cette nouvelle méthode va remplacer l’utilisation de Flash pour insérer de la vidéo dans nos pages? Seul le temps nous le dira. Une chose est sûre, il est intéressant d’avoir une alternative à Flash.

Voici également un exemple intéressant de l’utilisation de la vidéo en HTML5. Si votre navigateur ne supporte pas HTML5, la vidéo sera lue par Flash.
http://camendesign.com/code/video_for_everybody/test.html

Post to Twitter Tweet This Post

Bien démarrer avec HTML5

Je ne sais pas pour vous, mais lorsque je fais un projet en XHTML/CSS, je réutilise toujours les mêmes choses. Je crois que tous les codeurs se doivent d’avoir leurs gabarits qu’ils peuvent réutiliser pour leur faire gagner beaucoup de temps. Une des choses donc je ne peux pas me passer, c’est ma feuille de style « reset.css »  que j’ai légèrement modifiée et qui a été créé par Éric Meyer (http://meyerweb.com/eric/tools/css/reset/). Plusieurs d’entres vous doivent déjà l’utiliser, mais pour les autres, je vous conseille fortement d’y jeter un coup d’œil. Ce « reset.css » permet un meilleur rendu pour tous les navigateurs puisqu’il « reset » certaines propriétés qui ne sont pas interprétées de la même façon par exemple sous Firefox, IE, Safari, etc…

Où est le rapport avec HTML5? Et bien c’est simple, il existe également un petit fichier CSS inspiré de celui d’Eric Meyer pour améliorer le rendu d’HTML5 sur tous les navigateurs. Ce HTML5 Reset Stylesheet a été créé par Richard Clark.

Il y a entre autre l’ajout suivant :

article, aside, dialog, figure, footer, header, hgroup, nav, section {
display:block;
}

qui initialise les nouvelles balises pour qu’elles soient vues comme des éléments en block.

Voici le lien pour le HTML5 Reset Stylesheet :

http://html5.pire.me/css/html5-reset-1.4.css

Et si vous pensiez vous en sortir, voici un autre lien fort intéressant qui vous permettra de valider votre code HTML5 :

http://html5.validator.nu/

En bonus, un PDF contenant HTML5 Cheat Sheet qui contient toutes les balises avec leur description. Il est de plus indiqué dans quelle version la balise peut être utilisée.

http://html5.pire.me/doc/html5-cheat-sheet.pdf

Post to Twitter Tweet This Post

HTML5 vs XHTML vs XHTML2 vs XHTML5

Ne traitant pas de l’histoire et de la courte durée de vie d’XHTML2 ici, je me dois de faire une légère parenthèse.

Voir XHTML2 is DEAD — http://www.webdirections.org/blog/xhtml2-is-dead-long-live-html5/

Blog HTML5 - Mieux comprendre l'histoire d'XHTML2 vs HTML5

Comme vous le savez sans doute, certains développeurs décident de bâtir leurs pages en XHTML et d’autre en HTML. Pour ma part, je programme toujours en XHTML (strict) pour m’assurer d’être le plus conforme aux standards du W3C et m’obliger à écrire du code qui a de l’allure.

Nous pouvons déjà utiliser HTML5 et dans quelques temps, il sera de plus en plus utilisé par les développeurs web. Cette nouvelle version promet un bel avenir au futur du web, mais qu’arrivera t-il à ceux qui programmait en XHTML?

Sachant que la nouvelle version d’XHTML est « abandonnée » et sachant que nous devrons bientôt passer à HTML5, je vois alors encore une fois une occasion de mal programmer. Je m’explique…

Oui HTML5 va changer beaucoup de trucs, mais un des désavantages est qu’il est encore beaucoup trop permissif tout comme l’est HTML4 en ce moment. Pourquoi ne pas obliger les gens à certaines règles toutes simples pour s’assurer d’avoir des pages contenant du code plus clair?

Avec HTML5, il sera encore possible de :

  • - ne pas fermer certaines balises
  • - mettre les balises et/ou propriétés en MAJUSCULES
  • - etc…

Je suis peut-être un peu perfectionniste, mais il me semble que ça fait plus de 10 ans qu’on a beaucoup de sites web mal programmés. Il reste par contre une option…

XHTML5. Ce n’est pas un nouveau langage. Ce n’est pas « officiel » non plus, mais je crois que les gens qui passent d’XHTML à HTML5 vont plutôt faire du XHTML5. La recette est simple, tu prends les bonnes pratiques d’XHTML et tu les mélanges avec HTML5. Le résultat va s’avérer succulent et vos clients ne vont qu’en bénéficier.

Post to Twitter Tweet This Post