Plan de site Navigation
Blog & Blues Techniques et Standards de la Qualité Web

Accueil > weblog


- Lire le billet précédent - Lire le billet suivant -

Des guillements inopinés dans Mozilla et FireFox

Par Laurent Denis, le 16 septembre 2004.

Un lecteur agacé me fait remarquer que les guillemets apparaissant avant et après [mes] blocs de citation (blockquote) sont particulièrement disgracieux, que je pourrais au moins utiliser des guillemets français, ou mieux, pas de guillemets du tout. En fait, ce n'est qu'un petit bug des navigateurs Gecko sur la propriété CSS clip :

A la différence d'une citation en ligne, un bloc de citation n'a en effet aucun besoin de guillemets dans un navigateur graphique. Ceux-ci ne sont destinés en fait qu'aux navigateurs vocaux, autrement dit à l'heure actuelle à Opera 7.60 : la vocalisation des guillemets indique alors sans ambiguïté la présence d'une citation en l'absence d'effets visuels (indentation, bordure, etc).

Des guillemets sont donc insérés avec :

blockquote:before {
content: "\0022";
position: absolute;
clip: rect(1px 1px 1px 1px);
}
blockquote:after {
content: "\0022";
position: absolute;
clip: rect(1px 1px 1px 1px);
}

Pour masquer ces guillemets dans les navigateurs graphiques, on utilise logiquement la propriété de rognage visuel clip, sachant que display: none ferait disparaître ces guillemets dans les navigateurs vocaux (display n'est pas propre aux medias oraux), et que visibility:hidden fait de même dans les lecteurs d'écran (mais cette fois en raisons de bugs de ceux-ci).

Dans Opera et dans Internet Explorer Windows, tout se passe comme prévu : pas de guillemets visuels, mais ils sont bel et bien lus par Opera 7.60. Dans Mozilla ou FifeFox en revanche, la propriété clip est ignorée, alors qu'elle est habituellement bien supportée par ces navigateurs :

  • Sans avoir eu le temps de creuser la question, le bug est probablement lié aux pseudo-sélecteurs :before et :after.
  • Que faire ? Rien. C'est une dégradation mineure de la présentation de ces pages, liée à un bug mineur d'un navigateur, et qui n'entrave en rien l'accès au contenu. Pas de quoi fouetter un chat smiley clin d'oeil

PS : un autre lecteur particulièrement observateur me demande pourquoi des liens étranges apparaissent au survol des abréviations et de certains mots ou expressions, sans être signalés visuellement. C'est une essai en cours dans la lignée de la génération de liens sur les citations. Je vous en parlerai dès que j'aurais un peu plus de temps...

Trackbacks

Les trackbacks pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.

Commentaires

mat, le 16 septembre 2004

Je ne suis pas sur du tout que ca soit un bug.

La recommandation CSS2 dit que pour les generated content, on ne doit pas generer de node dans le DOM. Hors, c'est ce que entre autres opera et safari semblent faire, et donc on en arrive a des choses de ce style.

Le passage interessant de la spec:
"User agents must ignore the following properties with :before and :after pseudo-elements: 'position', 'float', list properties, and table properties."

Laurent Denis, le 16 septembre 2004

C'est effectivement un petit peu plus compliqué que cela : le passage de CSS2 que tu cites ( www.w3.org/TR/REC-CSS2/ge... ) a disparu avec CSS2.1 ( www.w3.org/TR/CSS21/gener... )

mat, le 17 septembre 2004

Oui mais:
- CSS2.1 n'est pas encore une recommandation
- CSS2.1 continue a dire que ca doit pas faire partie du document tree.

Donc mozilla a raison sur le coup smiley sourire

Laurent Denis, le 17 septembre 2004

<soupir>
Mat, remplace "bug" par "implémentation divergente sur un point où CSS2 est problématique" dans le billet ci-dessus, si cela peut t'éviter d'ergoter sans fin afin de prouver à tout prix que tel ou tel navigateur a raison sur un point où les spécifications sont en train d'évoluer.

Ce n'était franchement pas le propos de mon billet ni de mon commentaire, malgré l'emploi du mot "bug".

Ce type de réaction finira par me décourager totalement de dire quoi que ce soit à propos de navigateurs Web de Mozilla-FireFox.

mat, le 17 septembre 2004

Huh ? Je maintiens que en CSS2, ici, c'est toi qui a tord de vouloir appliquer position et tout. On en est pas encore a CSS2.1, donc voila. CSS2 est pas problématique sur ce point, il est tres clair: il faut pas faire ca.

Le fait que ca soit mozilla qui ait raison, je m'en fous, d'ailleurs je n'en parlais meme pas dans mon premier commentaire, je t'ai donné une réponse expliquant le comportement des divers navigateurs dessus, parceque j'ai deja creusé la question longuement (en rencontrant le probleme inverse dans opera si tu veux tout savoir smiley sourire et c'est tout.
Mon deuxieme commentaire comportait un smiley, ce qui devait indiquer que cette derniere partie était de l'humour.

Accessoirement, c'est comme ca en CSS 2.1 justement parceque opera et les autres se sont mis d'accord, étant donné leurs implementations divergentes, pour simplifier tout ca (le but de css 2.1 etant justement d'avoir un truc interoperable, et donc fatalement simplifié). Mais CSS 2.1 n'est pas finalisé encore...

Gloom, le 18 septembre 2004

"C'est une dégradation mineure de la présentation de ces pages"

Même pas, ce n'est pas choquant. Si j'envois un mail en texte brut et que je site un ou plusieurs paragraphe(s) qui n'est pas extrait d'un autre mail (auquel cas, j'utiliserais les "> "), j'écrit comme suit:

"
Bla bla bla.
Bla bla.
"

Par contre, pourquoi mettre le code CSS ajoutant ces guillemet dans la feuille de style principale. Pourquoi ne pas la mettre dans une feuille de style pour navigateur aural ?

Les commentaires pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.