Mon site en maquette

Dans ce cours on va se baser sur une maquette Figma pour apprendre à bien organiser son code HTML. On apprendra aussi les bonnes pratiques en HTML.

Auteur :
Jonathan Marco
Difficulté :
Initiation au rêve (débutant)

Bienvenue les cadettes et le cadets ! Sur ce chapitre, on va voir l'utilisation d'une maquette dans le découpage de notre HTML, et comment organiser dès le début notre code pour qu'il soit propre.

Vous allez voir au fur et à mesure de votre utilisation de HTML, que c'est un langage qui est facile à maîtriser, mais difficile à utiliser. La plus grosse difficulté dans son emploi est de bien organiser son code et trouver les balises qui feront sens.

Le maquettage

Présentation de Figma

Avant toute chose, je vous donne rendez-vous sur la maquette de ce projet construite avec Figma.

Quand on commence un projet, il est toujours bien de jeter ses idées sur "papier". Il est conseillé de faire au moins ce qu'on appelle un Wireframe [wikipedia].

Ça vous aidera à formaliser les différentes parties que vous souhaitez voir apparaître sur votre site. Pour ce projet, nous allons plutôt utiliser une maquette informatisée créée avec l'outil en ligne Figma, qui a plusieurs avantages :

  • il est gratuit ;
  • il est facile à prendre en main ;
  • il vous permettra de faire un partage de votre travail avec d'autres, en mode écriture ou lecture ;
  • il vous permet d'intégrer votre maquette au sein d'un HTML, comme on peut le voir ci-dessous.

Les deux derniers points sont particulièrement intéressants. En effet, si vous travaillez pour un client, il est bien de pouvoir lui partager la maquette en mode lecture afin de la valider avant de commencer à coder ou de la partager en écriture avec un collègue pour qu'il participe à la construction.

wireframe

Si vous utilisez ce genre d'outils dans ce cadre, je vous conseille de commencer par un wireframe très basique qui décrira les différentes parties (rendez-vous sur la page Wireframe de Figma en utilisant le navigateur = bouton tout en haut à gauche).

Vous pouvez interagir avec l'iframe ci-dessous.

Pour le site qu'on est en train de créer ensemble, j'ai fait plusieurs validations avec notre client zombie pour arriver au wireframe final (la maquette de gauche). Ce genre de résultat intermédiaire est rapide à faire et permet donc de faire des ajustements, bien plus vite que sur une maquette "haute fidélité".

Une fois que notre client m'a donné le feu vert pour le wireframe, j'ai commencé la réalisation de la maquette "haute fidélité" (à droite), il est alors important de valider chaque étape avec celui-ci, pour vous éviter de travailler pour rien sur quelque chose qui, de base, n'est pas ce à quoi il pensait. On a validé ensemble les couleurs, les réseaux sociaux qu'il avait, le logo...

Balises pour englober

Dans la partie ci-dessous, on va utiliser des balises qui vont nous servir à englober d'autres balises. Elles sont de deux types :

Balises structurantes

<header></header>
<nav></nav>
<section></section>
<article></article>
<aside></aside>
<footer></footer>
<main></main>
  • header : l'en-tête d'une page ou d'un élément ;
  • nav : les éléments englobés servent à la navigation sur le site ;
  • section : la partie cohérente d'une page, qui commence souvent par un titre ;
  • article : un ensemble cohérent qui représente un contenu autonome ;
  • aside : un ensemble qui est "à-côté" du flux global de la page, mais qui apporte du contexte à ce flux tout en ne faisant pas parti totalement de ce contenu ;
  • footer : le pied de page d'une page ou d'un élément.
  • main : pour l'accessibilité, obligatoire d'en avoir un et un seul sur le site. Il va englober le contenu pour lequel la page a été créé.
Plus de précisions dans la vidéo du cours dans la partie dédiée.

Balises neutres

<div></div>
<span></span>

Élément neutre = sans sens particulier. Elles permettent d'englober plusieurs éléments qui vont être traités ensemble (au niveau CSS et/ou JS), mais qui n'ont pas un sens en soi.

  • div : est de type bloc
  • span : est de type inline
Comme ces balises n'apportent pas de sens particulier, on doit les éviter au maximum !

Découper la maquette

Si vous vous rendez sur la page decoupage sur Figma (ci-dessus), vous pouvez voir un exemple de découpage possible de la page principale. Pour la diviser, vous partez de l'ensemble pour aller vers le plus précis, en morcelant chaque élément itérativement.

Dans notre exemple, vous avez la page principale...

Impression écran montrant la maquette du site Recettes Zombies

...qui peut être découpée en trois parties :

  • header : l'en-tête de la page
  • main : le contenu principal de la page. Pour l'accessibilité, il est obligatoire une balise main qui permettra de cibler le contenu principal pour les lecteurs d'écran. Sans ça, cette partie aurait pu être une section.
  • footer : le pied de page

Impression écran montrant un exemple de découpage de la page principale pour le site Recettes Zombies avec un header, une section et un footer

Si on se concentre sur le header, on peut également le découper en deux parties :

  • nav : la barre de navigation
  • div : une partie qui va contenir les deux images avec la viande et l'autre avec le logo. Ici pour mettre les images l'une sur l'autre, il sera nécessaire d'englober ces deux items dans une même balise parente. Comme on ne fait ça que pour mettre du style dessus, et que ce parent n'a alors pas de sens dans la page HTML, la div est alors une bonne option.

Impression écran montrant un exemple de découpage pour le header entre une div et une nav

Puis chaque partie peut être découpée en des éléments plus petits. Pour la nav :

  • le fond qui sera la nav qui va tout englober
  • le logo à gauche
  • une liste avec les liens à droite

Impression écran montrant un exemple de découpage pour la nav en une image à gauche et une liste à droite

...pour la div :

  • l'image avec la viande
  • l'image avec le logo

Impression écran montrant un exemple de découpage de la div dans le header entre l'image de fond montrant de la viande et l'image qui représente le logo par dessus

Ce qui nous donne comme code final :

<header>
    <nav>
        <img src="url" alt="Texte alternatif"/>

        <ul>
            <li>lien</li>
            <li>lien</li>
            <li>lien</li>
            <li>lien</li>
        </ul>
    </nav>

    <div>
        <img src="url" alt="Texte alternatif"/>
        <img src="url" alt="Texte alternatif"/>
    </div>
</header>

Puis, on fait la même chose au niveau de main et du footer.

Les images

Les images ont un attribut spécifique alt. Cet attribut doit-il tout le temps être présent ? Que doit-on mettre dedans ?

Les images de sens

Pour qu'une soit dites "de sens", il faut que si on l'enlève du site, on perde de l'information. Par exemple une image dans un bouton ou un lien, si elle n'est pas accompagnée de texte, sera de ce type-là. En effet, si on l'enlève, le bouton ou le lien sera vide.

Pour ces images, le texte doit être rempli avec le sens qu'on souhaite donner à cette item. Par exemple, si vous prenez le logo qui nous sert de retour à l'accueil sur la maquette.

Cette image nous permet de retourner à la page d'accueil, donc quand le lecteur d'écran arrivera au niveau de cette dernière, ce qu'on souhaite c'est qu'il explique que le lien permet d'aller à l'accueil. On va donc mettre le code suivant :

<img src="url" alt="Accueil"/>

On ne met pas "logo" ou "illustration", c'est pas le sens qu'on donne à cette image, le alt doit être utilitaire et expliquer à la personne qui va cliquer sur ce lien ce qu'il va faire en cliquant !

Les images décoratives

Toutes les autres images seront dans cette catégorie. On retrouve alors :

  • Les images qui servent juste à décorer, comme la photo de viande ou le logo de notre page.
  • Les images qui servent à illustrer ce que le texte explique déjà. Par exemple, toutes les images que j'utilise dans ces cours sont là pour appuyer une information que vous avez déjà dans le texte du cours. Donc, elles sont toutes décoratives.

Dans ce cas là, le alt doit être présent et doit être vide !

 Si vous mettez un texte dans alt les lecteurs vont le lire et juste embrouiller la personne qui navigue sur votre site ! En effet, si par exemple je mets un texte alternatif de type "Photo de viande" sur la page d'accueil, ça va apporter quoi à la personne qui va sur votre site de savoir ça ? Sachant qu'elle va devoir déjà s'imaginer tous les éléments importants de la page, lui rajouter ce type de "bruit" sera inutile !

De l'autre côté, si vous ne mettez pas le alt le lecteur va lire l'URL dans src ce qui sera encore plus du bruit ! 

Pour que l'image soit ignorée, vous dont mettre alt et le laisser vide ! Pour plus d'info vous pouvez regarder les points 1.1 et 1.2 des RGAA (Règlement qui décrit les bonnes pratiques en accessibilités) et les définitions d'images porteuses de sens et décoratives :

Code final

Cliquez ici pour télécharger le code final.

  • Cours
  • Tutoriels
  • Aide
  • À Propos