Bug : ajout de <br> dans les listes

Le premier forum francophone sur l'éditeur de pages Web multiplateforme (Linux, Mac OS X, Windows) qui monte… KompoZer, héritier de Nvu, permet de créer vos pages Web graphiquement (wysiwyg) sans aucune connaissance du langage HTML.

Modérateur : chinon37

Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Bug : ajout de <br> dans les listes

Message par Kazé »

Bonjour,

je déterre un bug signalé notamment par chinon37 et que j’ai décrit comme « point bloquant » pour KompoZer 0.8. Il semblerait que la vérité soit plus complexe que je ne l’imaginais… petit résumé de la situation :
Collez le code suivant dans un fichier « menu.html » :

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
  <meta content="text/html; charset=UTF-8" http-equiv="content-type">
  <title>menu</title>
  <style type="text/css">
#menuDeroulant {
  border:  none;
  margin: 0 auto;
  padding: 0;
  width: 600px;
  text-align: center;
  list-style-type: none;
  position: relative;
}
#menuDeroulant li {
  border:  none;
  margin: 0;
  padding: 0;
  float: left;
}
#menuDeroulant .sousMenu {
  border:  none;
  margin: 0;
  padding: 0;
  display: none;
  list-style-type: none;
  background-color: #cccccc;
}
#menuDeroulant .sousMenu li {
  border:  none;
  margin: 0;
  padding: 0;
  float: none;
}
#menuDeroulant li {
  border:  none;
  margin: 0;
  padding: 0;
  float: left;
  width: 150px;
}
#menuDeroulant li a:link, #menuDeroulant li a:visited {
  border-right: 1px solid #ffffff;
  margin: 0;
  padding: 4px 8px;
  background: #3b4e77 none repeat scroll 0% 50%;
  display: block;
  height: 1%;
  color: #ffffff;
  text-decoration: none;
}
#menuDeroulant li a:hover {
  background-color: #f2462e;
}
#menuDeroulant li a:active {
  background-color: #5f879d;
}
#menuDeroulant .sousMenu li a:link, #menuDeroulant .sousMenu li a:visited {
  border:  none;
  margin: 0;
  background: transparent url(fondTR.png) repeat scroll 0% 50%;
  display: block;
  color: #ffffff;
  text-decoration: none;
}
#menuDeroulant .sousMenu li a:hover {
  background-image: none;
  background-color: #f2462e;
}
#menuDeroulant .sousMenu li {
  border-style: solid solid none none;
  border-color: transparent transparent -moz-use-text-color -moz-use-text-color;
  border-width: 1px 1px 0 0;
  margin: 0;
  padding: 0;
  float: none;
  width: 149px;
}
#menuDeroulant li:hover > .sousMenu {
  display: block;
}
  </style>
</head>
<body>
<ul id="menuDeroulant">
  <li> <a href="#">club</a>
	<ul class="sousMenu">
	  <li><a href="#">lien1</a></li>
	  <li><a href="#">lien2</a></li>
	  <li><a href="#">lien3</a></li>
	</ul>
  </li>
  <li> <a href="#">téléchargements</a>
	<ul class="sousMenu">
	  <li><a href="#">lien1</a></li>
	  <li><a href="#">lien2</a></li>
	  <li><a href="#">lien3</a></li>
	  <li><a href="#">lien4</a></li>
	  <li><a href="#">lien5</a></li>
	</ul>
  </li>
  <li> <a href="#">liens</a>
	<ul class="sousMenu">
	  <li><a href="#">lien1</a></li>
	  <li><a href="#">lien2</a></li>
	  <li><a href="#">lien3</a></li>
	</ul>
  </li>
  <li> <a href="#">album photos</a>
	<ul class="sousMenu">
	  <li><a href="#">lien1</a></li>
	  <li><a href="#">lien2</a></li>
	  <li><a href="#">lien3</a></li>
	  <li><a href="#">lien4</a></li>
	  <li><a href="#">lien5</a></li>
	</ul>
  </li>
</ul>
</body>
</html>
C’est un menu en listes imbriquées comme je les affectionne. Firefox l’affiche très bien, mais KompoZer ajoute des <br> dès le chargement du document, ce qui crée des espaces disgracieux dans les menus déroulants. Merci Gecko 1.8.1… (Gecko 1.9.1 n’est pas affecté).

Le nettoyeur de balises n’est pas capable de supprimer ces nœuds <br> ; pire, il en ajoute à chaque passage. Même chose quand on édite le contenu dans la vue splittée, de nouveaux <br> apparaissent à chaque fois.

Je n’ai aucune piste pour le résoudre pour l’instant. Néanmoins, je l’ajoute en « point bloquant », car c’est un vrai, gros problème de la version actuelle. La tuile…
Je n’ai pas vraiment progressé sur la question, mais j’ai fait quelques tests. Il en ressort que :
  • le problème ne se produit pas avec SeaMonkey Composer (v1.1.x et 2.0.x)
  • le problème se produit aussi avec KompoZer 0.7.10, du moins sur ma distro Linux (Ubuntu Hardy)
En d’autres termes : il ne s’agirait pas là d’une régression, mais d’un bug hérité de Nvu et toujours pas corrigé.

Pouvez-vous me confirmer ça sur vos machines Windows et Mac SVP ? Si vous me confirmez la nature de ce bug (= hérité de Nvu), je pourrai chercher plus précisément pourquoi il ne se produit pas dans SeaMonkey Composer, et peut-être le résoudre. Si ce bug n’est pas hérité de Nvu, alors il faudra que je cherche ailleurs. Enfin, il est possible que ce bug dépende des options utilisées…

Merci d’avance pour votre aide.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
atheo
Lézard vert
Messages : 181
Inscription : 03 févr. 2010, 15:45

Re: Bug : ajout de <br> dans les listes

Message par atheo »

bonjour

j'ai fait l'essai et tout se passe (mal) comme décrit ci-dessus
le nettoyeur de balise devient un générateur de Br


windows XP kompozer version 0.8a4 (20090512) et firefox

je n'ai pas éssayé sur une autre becane où la version kompozer est plus récente 08 B je crois...
Fabrice.Tres.Net
Tyrannosaurus Rex
Messages : 2390
Inscription : 26 juin 2006, 12:50

Re: Bug : ajout de <br> dans les listes

Message par Fabrice.Tres.Net »

Dans mes tests, il n'y a pas eu de br rajouté avec la version 0.7.10 sous XP.

Kompozer affiche étrangement des lignes vides en plus dans les menus, mais ces lignes vides n'apparaissent pas sous firefox 3.6, ni dans le code à priori (j'ai un petit doute car je les ai vu une fois dans le code ... mais incapable de reproduire le cas, mais de toute façon des lignes vides ne changent pas l'affichage.

Très curieux.
J'ai testé en mettant " reformatter le source" cela ne change pas le comportement, l'option un nouveau paragraphe pour un CR est validée dans les 2 cas.
Dernière modification par Fabrice.Tres.Net le 12 févr. 2010, 19:02, modifié 1 fois.
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Re: Bug : ajout de <br> dans les listes

Message par Kazé »

Bonjour Athéo,
le top serait de tester avec Nvu 1.0 et KompoZer 0.7.10 sur Windows ou Mac. Merci de ton aide !
Fabrice.Tres.Net a écrit :Dans mes tests, il n'y a pas eu de br rajouté avec la version 0.7.10 sous XP.
Kompozer affiche étrangement des lignes vides en plus dans les menus, mais ces lignes vides n'apparaissent pas sous firefox 3.6, ni dans le code à priori (j'ai un petit doute car je les ai vu une fois dans le code ... mais incapable de reproduire le cas, mais de toute façon des lignes vides ne changent pas l'affichage.
Si les <br> (ou les lignes vides) apparaissent au chargement du document par KompoZer, alors le bug est présent. Lance le nettoyeur de balises, tu devrais constater que le nombre de lignes vides va augmenter.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
Fabrice.Tres.Net
Tyrannosaurus Rex
Messages : 2390
Inscription : 26 juin 2006, 12:50

Re: Bug : ajout de <br> dans les listes

Message par Fabrice.Tres.Net »

DRIIIIINNNNNNNGGGGGG
Comme mon message précédent est arrivé juste avant celui de Kazé, pas sûr qu'il l'eut vu... et comme il doit surveiller le sujet, celui fait office de rappel
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Re: Bug : ajout de <br> dans les listes

Message par Ymai »

Je n'ai pas de Windows sous la main, mais ce comportement anormal m'aurait frappé à l'époque où j'utilisais cet OS avec KpZ 0.7.10
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Re: Bug : ajout de <br> dans les listes

Message par Kazé »

Ymai > oui, c’est ce qui me choque aussi. Je peux confirmer le bug dans la version Ubuntu Hardy (= KompoZer 0.7), mais je suis surpris qu’on ne l’ait pas constaté auparavant.

Un élément de réponse, peut-être : les <br> ne sont ajoutés que si la liste est cachée. À l’époque, je me moquais régulièrement de chinon37 qui utilisait du JavaScript plutôt que du CSS pour faire des menus déroulants… mais l’emploi du CSS est probablement de nature à faire apparaître ce bug, justement.

PS : https://bugzilla.mozilla.org/show_bug.cgi?id=309035
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
chinon37
Animal mythique
Messages : 5319
Inscription : 21 mars 2005, 10:17

Re: Bug : ajout de <br> dans les listes

Message par chinon37 »

Kazé a écrit : À l’époque, je me moquais régulièrement de chinon37 qui utilisait du JavaScript plutôt que du CSS pour faire des menus déroulants… mais l’emploi du CSS est probablement de nature à faire apparaître ce bug, justement.
J'en suis d'ailleurs toujours traumatisé :mrgreen:
2eme traumatisme et pas le moindre: je viens de réinstaller Nvu :evil: ben t'as quand même fait un sacré boulot, Kazé!!! Quand on voit l'étendue des dégâts! la feuille de styles n'est que partiellement reconnue (et je ne parle pas du doctype :lol: ). Mais à priori, pas de br à l'horizon. J'approfondirais mes tests dès que possible, mais il ne semble pas que de nouveaux <br> se créent à l'ouverture du fichier, ou plus tard....
Préferez Kompozer 0.8 à Nvu
Défendons nos valeurs, adhérons à l'APRIL
La Démocratie, c'est quand on frappe à votre porte à 6h00 du matin, et que c'est le laitier.
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Re: Bug : ajout de <br> dans les listes

Message par Kazé »

chinon37 > l’idéal serait de voir à quel moment la régression est apparue. Si ce n’est pas un bug hérité de Nvu, il faudrait voir s’il est apparu avec KompoZer 0.7.10… et si tel est le cas, il faudrait vérifier avec les autres versions 0.7.x pour déterminer aussi précisément que possible à quel moment j’ai introduit ce bug dans KompoZer.

Dans l’état actuel de mes recherches, je suis sûr à 99.9% que le bug ne provient pas du noyau Gecko, comme je l’avais supposé. Mais ça ne me donne pas plus de pistes pour le corriger : est-ce une ânerie dans les chromes, voire dans les prefs par défaut ? Reste donc à comprendre à quel moment le bug est apparu, et je ferai des « diffs » pour essayer de déterminer l’origine précise du bug.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Re: Bug : ajout de <br> dans les listes

Message par Kazé »

Rhaaa, je multiplie les tests et j’ai un mal de chien à comprendre ce qui se passe. Je suis nul pour les tests.
Voilà quand même une petite mise à jour…

Je viens d’installer Nvu 1.0 sur mon poste de travail (Ubuntu Hardy). Je constate les mêmes problèmes qu’avec KompoZer 0.8, à savoir :
  • quand je charge le fichier de Chinon37, les menus déroulants montrent des lignes vides — j’obtiens le même comportement avec SeaMonkey Composer 1.0 (Gecko 1.7) et 1.1 (Gecko 1.8.1) ;
  • quand je lance le nettoyeur de balises, le nombre de lignes vides augmente dans les menus déroulants.
Cependant, bien qu’il y ait des lignes vides dans les menus déroulants, aucun <br> n’est réellement ajouté dans le code source quand on sauvegarde le document. J’obtiens le même résultat avec KompoZer 0.7.10 sous Linux (version officielle Ubuntu Hardy). Cela est probablement dû au fait que le noyau Gecko 1.7 de Nvu 1.0 et KompoZer 0.7 était patché pour supprimer certains <br> intempestifs.

Il faut donc distinguer les deux problèmes :
  1. apparition de lignes vides en vue « design » (qui n’apparaissent pas dans le navigateur)
    ce bug est hérité de Nvu 1.0 ; il est gênant mais pas critique (aucune perte de données)
  2. création de <br> intempestifs dans le code HTML, notamment quand on lance le nettoyeur de balises
    ce bug est apparu avec KompoZer 0.8.x ; je le juge bloquant pour KompoZer 0.8.
Nota : aucun de ces deux bugs ne se produit avec SeaMonkey Composer 2.0 (Gecko 1.9.1). Le problème serait donc bel et bien lié au noyau Gecko utilisé, mais la régression (ajout de <br> dans le code source) est spécifique à KompoZer 0.8.

J’ai fait ces tests sous Ubuntu Hardy : vous obtiendrez peut-être des résultats différents sous Windows ou Mac. Par ailleurs, je suis un très mauvais testeur, donc j’ai pu me mélanger les pinceaux — voilà pourquoi j’en appelle à votre aide.

Si, contrairement à moi, vous constatez que ce problème est apparu avec KompoZer 0.7.10, merci de me le signaler. Attention, il faut bien partir du fichier "menu.html" d’origine (cf. premier message de ce fil de discussion), i.e. celui qui ne contient aucun <br> dans le code source : si vous voulez vérifier le code source dans un éditeur texte, il faut sauvegarder le document sous un autre nom depuis Nvu ou KompoZer.
KompoZer lead dev
Ubuntu 10.04 Lucid Lynx — « L'erreur est humaine, mais vraiment foutre la merde nécessite le mot de passe root. »
chinon37
Animal mythique
Messages : 5319
Inscription : 21 mars 2005, 10:17

Re: Bug : ajout de <br> dans les listes

Message par chinon37 »

je confirme: Nvu n'ajoute pas de <br> là où KpZ en ajoute à chaque ouverture de la page (test sur KpZ 0.8... seulement) mais il y a bien des lignes vides !!?? (windows 7)
Je charge 0.7.1 et je teste...
Préferez Kompozer 0.8 à Nvu
Défendons nos valeurs, adhérons à l'APRIL
La Démocratie, c'est quand on frappe à votre porte à 6h00 du matin, et que c'est le laitier.
Fabrice.Tres.Net
Tyrannosaurus Rex
Messages : 2390
Inscription : 26 juin 2006, 12:50

Re: Bug : ajout de <br> dans les listes

Message par Fabrice.Tres.Net »

Donc, je confirme les trouvailles de Kazé sur XP avec kpz 0.7.10, avec une petite différence, je n'ai pas pu faire apparaître de <br> dans le code, que ce soit avec kpz configuré pour créer ou non un nouveau paragraphe sur la touche Entrée.
Je surveille le code en // sous notepad++ pendant les manips.
Il y juste des lignes vides qui apparaissent: 1 seule.

Le nettoyeur de balises arrive à compter 16 <br> fantomatiques... systématiquement, et à chaque appel une fausse ligne vierge apparaît sous kpz... mais heureusement rien dans le code. Bref, juste un effet visuel.

Le point intéressant est que, si on supprime le CSS, le nettoyeur de balises ne voit plus ces fantômes <br>.

C'est clair au niveau h te me le, moins avec le css!
Fabrice.Tres.Net
Tyrannosaurus Rex
Messages : 2390
Inscription : 26 juin 2006, 12:50

Re: Bug : ajout de <br> dans les listes

Message par Fabrice.Tres.Net »

Le nettoyeur de balises cesse de voir des br si on retire le "display : none " du code css
chinon37
Animal mythique
Messages : 5319
Inscription : 21 mars 2005, 10:17

Re: Bug : ajout de <br> dans les listes

Message par chinon37 »

A noter que les <br> ajoutés ne sont pas reconnus comme une modification d code puisque KpZ ne demande pas un enregistrement de la page...
Préferez Kompozer 0.8 à Nvu
Défendons nos valeurs, adhérons à l'APRIL
La Démocratie, c'est quand on frappe à votre porte à 6h00 du matin, et que c'est le laitier.
Kazé
Varan
Messages : 1743
Inscription : 10 févr. 2005, 10:26

Re: Bug : ajout de <br> dans les listes

Message par Kazé »

Fabrice.Tres.Net a écrit :Le nettoyeur de balises cesse de voir des br si on retire le "display : none " du code css
Exactement. J'ai trouvé le ticket correspondant dans Bugzilla : https://bugzilla.mozilla.org/show_bug.cgi?id=309035
Une façon de contourner le problème serait de désactiver les feuilles de styles quand on lance le nettoyeur de balises… mais ça serait quand même assez crado.
chinon37 a écrit :A noter que les <br> ajoutés ne sont pas reconnus comme une modification d code puisque KpZ ne demande pas un enregistrement de la page...
Oui. Je crois que c’est un corollaire du bug sus-cité : les <br> sont ajoutés à cause du « display: none », mais pas par l’éditeur lui-même. Idéalement, il faudrait que je trouve le responsable de ces ajouts…
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités