Journal HTML5, change pas de main

Posté par (page perso) . Licence CC by-sa
Tags :
21
22
déc.
2012

La proposition de Steve Faulkner de l'ajout d'un élément "main" au langage HTML5 a été acceptée et publiée lundi.

L'idée est de formaliser et standardiser une pratique quasi-systématique, celle de la définition par le développeur d'une "section principale" unique, généralement un

<div id="main">

Ce qui selon Steve (mais pas seulement) est une hérésie au plan de la micro-sémantique, donc une micro-hérésie au plan de la sémantique, donc une hérésie quand même.

Citation:

En cas de conflit, considérer ceux qui utilisent avant ceux qui produisent, avant ceux qui implémentent, avant ceux qui spécifient, avant la pureté théorique.

  • # Commentaire supprimé

    Posté par . Évalué à  4 .

    Ce commentaire a été supprimé par l'équipe de modération.

    • [^] # Re: Logique

      Posté par (page perso) . Évalué à  1 .

      En HTML5, on a déjà les tags header et footer, mais rien pour désigner ce qu'il y a entre les deux

      Je vais peut-être dire une grosse ânerie, mais le tag body ne sert pas à ça ??

    • [^] # Re: Logique

      Posté par (page perso) . Évalué à  1 .

      les tags header et footer font déjà plus référence à la position / la forme qu'à la sémantique de ce qu'ils contiennent

      Certes, mais le parser va automatiquement considérer ces éléments pour ce qu'il contiennent : Des infos destinées à être placées au-dessus pour le header, et au-dessous pour le footer, laissant au développeur la liberté de les placer vraiment où il veut : Matter over form, semantics.

      The Scooby Gang

      Au-dessus et en-dessous de quoi ? C'est toute l'idée de

      <main>contenu principal</main>
      
      

      Sans cet élément, le parser doit deviner, et même si la devinette n'est pas difficile - L'analogie utilisée par Bruce Lawson est celle de Scooby Doo : Tu sais que sous le masque du fantôme, c'est le concierge flippant du parc d'attractions surtout parce que c'est le seul personnage de l'épisode qui n'est ni Fred, ni Daphne, ni Velma, ni Shaggy, ni Scooby (ni personne d'autre) - c'est mieux de même pas avoir à deviner.

      • [^] # Re: Logique

        Posté par . Évalué à  2 . Dernière modification : le 23/12/12 à 14:00

        Au-dessus et en-dessous de quoi ?

        Pas besoin de la balise main pour répondre à cette question :

        <article>
            <header>
                <h1>Titre</h1>
                <p>Article posté le <time datetime="1901-01-01">01/01/1901</time></p>
            </header>
        
            <p>Paragraphe 1</p>
            <p>Paragraphe 2</p>
            <p>Paragraphe 3</p>
        
            <footer>Catégories : cat1, cat2, cat3</footer>
        </article>
        
        

        On comprend tout de suite non ?

        • [^] # Re: Logique

          Posté par . Évalué à  2 .

          en fait ca permettra d'ecrire des trucs crades comme

          <article>
          <main>
              <p>Paragraphe 1</p>
              <p>Paragraphe 2</p>
              <p>Paragraphe 3</p>
          </main>    
          <footer>Catégories : cat1, cat2, cat3</footer>
          <header><h1>Titre</h1><p>Article posté le <time datetime="1901-01-01">01/01/1901</time></p></header>
          </article>
          
          

          le parser se chargeant de remettre tout ca dans le bon ordre

          • [^] # Re: Logique

            Posté par (page perso) . Évalué à  3 .

            quand j'ai dit "laissant au développeur la liberté de les placer vraiment où il veut" je pensais au layout pas au code. Donc en fait, je voulais dire "laissant à l'utilisateur la liberté de les placer vraiment où il veut".

            Il se trouve que je viens de valider

            <!DOCTYPE html>
            <head>
            <title>plop</title>
            </head>
            <body>
                <footer>Catégories : cat1, cat2, cat3</footer>
                <header>
                    <h1>Titre</h1>
                    <p>Article posté le <time datetime="1901-01-01">01/01/1901</time></p>
                </header>
            
                <p>Paragraphe 1</p>
                <p>Paragraphe 2</p>
                <p>Paragraphe 3</p>
            </body>
            
            

            Sans même un warning et ça m'a fait bizarre (je fais des trucs pareils un dimanche ? Je vieillis, moi) mais bon, la liberté, c'est la liberté de faire n'importe quoi aussi.

            • [^] # Re: Logique

              Posté par . Évalué à  5 .

              Bah selon la spécification le pied n'est pas forcément en bas de quelque chose et peut être le pied d'une section (voir ces exemples).

          • [^] # Re: Logique

            Posté par (page perso) . Évalué à  2 .

            ce qui en ferait un html non valide, non ?
            Car dans les specs il y a, entre autre, notion de parents et enfants. Par exemple un <p> ne peux pas être contenu dans un <i> mais l'inverse oui.

          • [^] # Re: Logique

            Posté par . Évalué à  -2 . Dernière modification : le 26/12/12 à 20:52

            en fait ca permettra d'écrire des trucs crades comme (etc.)

            Pire ! Je crains que cela ne serve à certains de "conteneur" de la page principale… Genre pour le contenu centré. Bref, pire ou presque que ce que tu pointes.

            /coup de gueule/
            Qu'est-ce que j'ai été déçu par html 5 ! J'ai eu beau essayé, je n'ai pas réussi à faire de ma page un modèle (comprendre clair et précis).

            Et vu ce que je vois sur le net (tuto html 5 sur sites de vidéos en streaming par exemple), je me dis qu'on est pas sorti de l'auberge.

            Par exemple : "L'élément header représente l'en-tête d'une section ou d'une page." (alsacreations)

            Non mais : sérieux ?? Ou l'un ou l'autre ? Et moi qui rêvais déjà d'écrire :

            header, footer {visibility:none;}
            
            

            dans mes print.css.

            C'est vrai qu'il fallait un header pour les articles car personne n'a jamais rien compris aux balises h1, h2, hn pas vrai ??
            //coup de gueule/

            Bref, j'attends avec impatience la balise division pour remplacer la balise div…

            • [^] # Commentaire supprimé

              Posté par . Évalué à  1 .

              Ce commentaire a été supprimé par l'équipe de modération.

            • [^] # Re: Logique

              Posté par (page perso) . Évalué à  7 .

              C'est vrai qu'il fallait un header pour les articles car personne n'a jamais rien compris aux balises h1, h2, hn pas vrai ??

              T'es certains d'avoir bien compris ?

              Allez, prenons un exemple bidon, genre un article de linuxfr.
              Il s'agit d'une balise article qui contient un header.
              Le header contient naturellement le h1 ie le titre. Mais il contient également les méta données associées (auteur, date, etc). Et ça n'a rien d'un hn, ce serait totalement idiot d'utiliser un h pour ça. Le header est plutôt logique.
              bla bla contenu
              Et hop, on trouve une balise footer qui correspond au bas de notre article. En fait il s'agit des actions genre répondre, +/- etc.
              Encore une fois, tu voudrais quoi, un <div class="lebasdemonarticle"> ? Un h3 ? Autre chose ?

              Bref, le coup de gueule il tombe un peu à l'eau je trouve…

        • [^] # Re: Logique

          Posté par (page perso) . Évalué à  2 . Dernière modification : le 23/12/12 à 14:22

          Ben pour un humain, déjà, le niveau d'indentation change.
          Dans ton bout de code les éléments similaires ne sont pas indentés de la même façon, ce qui revient à la méthode Scooby Doo : Tout ce qui n'est pas indenté comme le header et le footer est le coupable sous le masque de fantôme. Moyen clair.
          Donc non, on ne comprend pas tout de suite.

      • [^] # Re: Logique

        Posté par . Évalué à  2 .

        Sans cet élément, le parser doit deviner, et même si la devinette n'est pas difficile - L'analogie utilisée par Bruce Lawson est celle de Scooby Doo : Tu sais que sous le masque du fantôme, c'est le concierge flippant du parc d'attractions surtout parce que c'est le seul personnage de l'épisode qui n'est ni Fred, ni Daphne, ni Velma, ni Shaggy, ni Scooby (ni personne d'autre) - c'est mieux de même pas avoir à deviner.

        Comme toute analogie elle est bien pourrie, mais celle-ci est charmante :)

        • [^] # Re: Logique

          Posté par (page perso) . Évalué à  1 .

          Oui hein ? Eh, pas si pourrie que ça, tu as déjà vu un épisode de Scooby Doo ? C'est clairement ça, le processus de déduction est toujours le même !

  • # suis je vraiment tout seul..

    Posté par . Évalué à  0 . Dernière modification : le 24/12/12 à 13:00

    … à penser que sa pue ?

    Autant je comprends bien le besoin historique pour démarrer la machine, pour le compilé aussi. Avoir un main à l'époque c'était nécessaire et logique.

    Autant pour une page html je suis sceptique, d'autant plus que je ne croit pas qu'une page web puisse résumer à un main.
    Au contraire, j'y vois plutôt un agencement de plusieurs blocs aux fonctionnalités éparses.
    Qui peuvent fonctionner ensemble ou indépendamment. Interagir les uns dans les autres. Indépendants et pourtant liés à priori ou à posteriori. Car tout peut être modifié JIT dans ces langages de la fonction js, la définition html, à la règle CSS.
    bref avoir un main pour un main, ça me fait vomir à priori.
    Ça va structurer le bordel qui vit si vient bien dans son foutoir et son laxisme le plus total.

    De ma petite expérience je n'ai jamais déclaré de main. La déclaration la plus ressemblante que j'ai pu faire est un main_content / container / appelles-le-comme-tu-veux, mais c'est du ressort de l'impact de la charte graphique sur l'implémentation. Ce n'est pas le résultat de la considération de l'espace HTML comme un produit fonctionnel à la tâche précise et considérée.
    Par contre j'ai beaucoup apprécié l'évènement document.ready, découvert avec JQuery.
    En tant que main c'est proprement géniale. Le tout sans lourdeur.

    Manquerait plus que javascript deviennent aussi fortement typé et strict que le C / java / mets-ce-que-détestes-le-plus-parce-que-ça-te-plait-toi-aussi-de-pourrir-ces-langages et ils en auraient fini de bousiller ces magnifiques outils si mal implémentés (ie html / js / css / svg / xml)..

    Alors qu'est ce que j'ai loupé ? Pourquoi trouvez vous cela si magnifique ?

    • [^] # Commentaire supprimé

      Posté par . Évalué à  0 .

      Ce commentaire a été supprimé par l'équipe de modération.

    • [^] # Re: suis je vraiment tout seul..

      Posté par (page perso) . Évalué à  3 . Dernière modification : le 24/12/12 à 14:35

      Ben moi j'ai compris, à part quelques fautes d’orthographe (typo.étourderie.class) c'est clair et sincère.

      J'allais répondre, et je me suis rendu compte de ce que j'avais déjà bu beaucoup de Champagne :)

      Joyeux Noël à tous !

    • [^] # Re: suis je vraiment tout seul..

      Posté par . Évalué à  8 .

      Je pense qu'il y a confusion. Le « main » ici ne correspond pas à un « point d'entrée » d'un « programme ». Il s'agit juste de marquer la partie principale de notre page web (ou d'un article dans celle-ci, je suppose). Ton « main_content » n'est pas la déclaration la plus ressemblante que tu aie pu faire. C'est exactement la déclaration qu'ils veulent remplacer.

      Ensuite, si cette declaration est une affaire de style ou de sémantique… C'est justement le débat ^^

      En ce qui me concerne, je pense que ce que nous appelons du « style » est aussi porteur de sens, et que ces déclarations « header », « footer » et « main », bien que liées à un aspect visuel, ont une utilité sémantique. Auparavant, un aveugle n'avait pas moyen de connaître l'architecture de la page. Il avait juste des « titres » (h1, h2, h3…) auxquels se référer. Maintenant, il a des « articles », avec des détails « à côté » (aside), chacun ayant un « entête » (header) et un « bas de page » (footer), ainsi qu'une « partie principale » (main) et, pourquoi pas, un « menu de navigation » (nav). Avant HTML5, tout ceci était indiqué, mais uniquement pour les voyant, par l'intermédiaire de divs et de CSS. En plus d'apporter ces précisions aux aveugles, il offre aux designers une manière standardisée d'indiquer ces parties, mais c'est du bonus. On peut aussi imaginer que les robots (moteurs de recherche, extracteurs sémantiques pour nourrir des ontologies, ou que sais-je ce qu'on va pouvoir encore imaginer) vont trouver une utilité à ces indicateurs.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.