IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Validation W3C.. 2-3 petites questions aux gourous


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut Validation W3C.. 2-3 petites questions aux gourous
    Bonjour à tous...

    Quelques petites questions concernant la validation w3c...

    • Dans ma page, j'ai des "alt" dans des images ou bien des boutons dans lesquels j'ai mis un "& # 1 3 ;" pour forcer un retour à la ligne... Ce qui est un caractère HTML valide (ce qui d'ailleurs me force à mettre des espaces entre les lettres ci-dessus pour pas que ce soit interprété dans ce message ) ... Or les validateurs me mettent : "A numeric character reference expanded to carriage return." en me le signalant comme erreur !!! Quelqu'un peut-il me dire qu'est-ce qui cloche ??

      Par exemple :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      title="International 
       Association"
      PS: si je mets un <br> ça ne marche pas au runtime sur le site...


    • D'autre part, j'ai des images incluses en URI (base 64). Les validateurs me mettent soit directement : Fatal Error "Sorry, I am unable to validate this document because on line 2 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication. The error was: utf8 "\xE9" does not map to Unicode", soit "Error: Malformed byte sequence: e9". Les images sous cette forme ne font pas partie du HTML5 ?? Sinon comment les déclarer pour que ça passe ?? C'est poussé par la plupart des SEO....

    • Enfin, les validateurs rejettent mes directives http-equiv : <meta http-equiv=Pragma content="no-cache must-revalidate"> <meta http-equiv=Expires content="Sat, 26 Jul 1997 05:00:00 GMT"> <meta http-equiv="window-target" content="_top"> en me mettant : "Error: Bad value xxxx for attribute http-equiv on element meta" (le xxxx étant Expires, Pragma, ou window-target). Pourquoi ? C'est pas (plus) reconnu ??



    Merci...

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    pour le retour chariot il te faut mettre &#10 ; (sans espace avant le point virgule).

    Pour les autres ce serait mieux avec une page en ligne pour aller y regarder.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    pour le retour chariot il te faut mettre &#10 ; (sans espace avant le point virgule).
    Super merci pour le retour charriot !!!

    Ca marche !!! et le validateur valide....

    (mais je ne comprends pas pourquoi il ne valide pas 13... qui est correct me semble-t-il)



    Pour le reste, l'adresse du site est : mon site

    • Si je fais valider par https://html5.validator.nu/ il ne reste plus que ces 2 choses, principalement les URI qu'il semble ne pas interpréter correctement...


      • J'ai par exemple :

        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        3
        4
        5
        <a class=imgfr onclick='toggle("fr")' title=Fran&ccedil;ais>
        <img class=imfr 
        src="data:image/png base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAIAAAAVyRqTAAAAjklEQVQ4jWM4cupJy7Qz2NGsM0+evfny6QsIfcMgHz15MqnnTV8LdnTqCEPLrCMsRnNwoSv33vz59wc7unbljpIIGPFgkkDTGYCuo8xoLOYCSaCHRl09VFytNurqUVcPpKuxG00VV2MPkGHpah4zylwNqsBmHQFXV5gkuAL79gU7glVgQPIJuNJCZgArMAD4cQgh3IjAhAAAAABJRU5ErkJggg==" 
        title=Francais alt=Fran&ccedil;ais>
        </a>
        Quant au validateur le plus récent (https://validator.w3.org/) il n'analyse rien car il s'arrête tout de suite à cause des URI images avec le diagnostic cité "sorry..Unable to analyze because some characters were not utf8"

        Il faut dire que dans le head j'ai aussi :
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <meta content="text/html; charset=utf-8" http-equiv=Content-Type>
        Peut-être faut-il que je le supprime ???


      • https://html5.validator.nu/ me dit aussi les erreurs sur les http-equiv, qui sont les suivants :

        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        3
        4
        5
        <head>.....
        <meta http-equiv="window-target" content="_top">
        <meta http-equiv=Expires content="Sat, 26 Jul 1997 05:00:00 GMT">
        <meta http-equiv=Pragma content="no-cache must-revalidate">
        ....



    • Il signale aussi un "stray tag </head>", mais c'est parce que je voudrais détecter automatiquement si quelqu'un n'a pas Javascript activé. Mais comme avec Javascript j'ai un "onload" et un "onunload", plus un curseur d'attente, ce que je n'ai pas sans js... Je fais comme ceci :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      <script type=text/javascript>
      document.write('</head><body id="mybod" class="bod1" onload="StartInit();" onunload="CloseSess();">')
      </script>
      <noscript>
      </head><body class=bod2 id=mybod>
      </noscript>
      Si je mets le </head> avant, ce même validateur me dit que j'ai un script entre le head et le body.... Donc c'est la seule manière que j'ai trouvé.. Il y en a peut-être une autre ?



    Un gros merci pour l'aide ...

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    il ne reste plus que ces 2 choses
    non il t'en reste bien plus

    • La première chose à faire est de séparer le CSS de ton HTML et de le valider, il y a des erreurs comme par exemple
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .divami {
        width: 92.5%;
        left-margin: 2.5%;   /* n'existe pas */
        right-margin: 2.5%;  /* n'existe pas */
        padding-right: 2.5%
    }
    • Concernant le code il est préférable qu'il soit indenté pour la validation, ce qui n'est pas ton cas, en indentant je n'ai pas d'erreur sur les images type data:image/png;base64.

    • Pour les balises <meta> elle ne sont tout simplement pas valides en HTML5.

    • Pour le script sur le body il est préférable de changer la class/id en fin de document, par exemple, pour ne pas créer de doublon
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var oBody = document.querySelector('BODY');
    oBody.id = "js-actif";
    oBody.className = "js-class";
    si le javascript est actif cela sera pris en compte.

    • Remarque générale, même si c'est acceptable, autant mettre la valeur des attributs entre "..." cela peut éviter les soucis.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Un gros merci pour ton aide...


    Citation Envoyé par NoSmoking Voir le message
    non il t'en reste bien plus
    ouaip....


    Citation Envoyé par NoSmoking Voir le message
    • La première chose à faire est de séparer le CSS de ton HTML et de le valider, il y a des erreurs comme par exemple
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .divami {
        width: 92.5%;
        left-margin: 2.5%;   /* n'existe pas */
        right-margin: 2.5%;  /* n'existe pas */
        padding-right: 2.5%
    }
    Oooopsss j'avais modifié mais j'avais oublié de renvoyer le fichier....


    Citation Envoyé par NoSmoking Voir le message
    • Concernant le code il est préférable qu'il soit indenté pour la validation, ce qui n'est pas ton cas, en indentant je n'ai pas d'erreur sur les images type data:image/png;base64.
    Que veux-tu dire par indenté ??

    (mais voir dernier point plus bas....Si c'est indenté pour la validation et compressé pour les SEO, peut-on alors dire qu'on satisfait aux 2 critères ????? Car du coup si on satisfait les critères de compression des SEO et qu'on était ok pour le w3c si indenté mais pas si pas indenté, on ne devrait plus être valable w3c, non ?? )




    Citation Envoyé par NoSmoking Voir le message
    • Pour les balises <meta> elle ne sont tout simplement pas valides en HTML5.
    ok... c'est ce que j'avais cru comprendre...

    Mais pourquoi alors partout on recommande de les mettre ?????

    Y compris dans des publications récentes comme :
    http://cristian.sulea.net/blog.php?p...meta-html-tags
    ou https://wp-mix.com/disable-caching-html/


    Citation Envoyé par NoSmoking Voir le message
    • Pour le script sur le body il est préférable de changer la class/id en fin de document, par exemple, pour ne pas créer de doublon
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var oBody = document.querySelector('BODY');
    oBody.id = "js-actif";
    oBody.className = "js-class";
    si le javascript est actif cela sera pris en compte.
    ok je vais regarder dans cette direction...


    Citation Envoyé par NoSmoking Voir le message
    • Remarque générale, même si c'est acceptable, autant mettre la valeur des attributs entre "..." cela peut éviter les soucis.
    Ben tous les évaluateurs de SEO demandent de compresser les fichiers html et css, et lorsqu'on utilise les compresseurs , ça enlève les "" (de même que les CR, d'où les "image uri" non alignés) !!!




    Excusez-moi de toutes ces remarques..... Ce n'était pas ma spécialité de départ - voir ma signature - et il me semble que c'est très compliqué de trouver les bonnes infos (voir les points ci-dessus....) : des choses semblent devenir obsolètes très vite, d'autres semblent dans des drafts ou acceptés par les navigateurs mais pas par les définisseurs du w3c... (comme le coup des http-equiv).. J'aime comprendre ce que je fais et ne dois pas faire ou faire... D'habitude en info c'est clair.. Là ça a l'air assez....... étrange...



    Je suis à 99% de ok pour Pagespeed, et 97% pour Webgrader, etc etc... Je trouve que je me débrouille pas trop mal mais ce truc-là me dérange un peu....

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    • Pour le script sur le body il est préférable de changer la class/id en fin de document, par exemple, pour ne pas créer de doublon
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var oBody = document.querySelector('BODY');
    oBody.id = "js-actif";
    oBody.className = "js-class";
    si le javascript est actif cela sera pris en compte.
    Si j'écris ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    </head><body class=bod2 id=mybod>
    <script type=text/javascript>var b=document.querySelector('BODY');b.onload="StartInit()";b.onunload="CloseSess()";b.className="bod1";</script>
    Il change bien la classe mais n'exécute pas - ou ne termine pas - le onload.... Il reste suspendu je ne sais pas où....

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    • Pour le script sur le body il est préférable de changer la class/id en fin de document,
    cela signifie que ton document est chargé donc inutile d'ajouter une fonction sur le onload, il suffit de l’exécuter directement.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var oBody = document.querySelector('BODY');
    oBody.id = "js-actif";
    oBody.className = "js-class";
    // appel fonction tout de suite
    StartInit();
    // ajout événement sur onunload
    // ICI on affecte la référence à la fonction
    oBody.onunload = CloseSess;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petite question sur les validations
    Par chris81 dans le forum Silverlight
    Réponses: 2
    Dernier message: 10/09/2010, 17h29
  2. [W3C] balise <!DOCTYPE > petite question
    Par junior68 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 13/08/2008, 08h46
  3. Quelques petites questions par rapport aux textures
    Par kev42100 dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 21/02/2008, 21h37
  4. Petite question liée aux structures
    Par progfou dans le forum C++
    Réponses: 9
    Dernier message: 24/04/2007, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo