PRATIQUE CLIENTS WEB 
Indiquer visuellement la langue d'une ressource
 
C'est en faisant intervenir les pseudo-attributs du langage CSS que l'on peut préciser ainsi à l'internaute la langue d'une page liée. (16/03/2005)
  Forum

Réagissez dans les forums de JDN Développeurs

Un site Web peut contenir toutes sortes de liens, envoyant le lecteur intéressé vers d'autres sites, sans que celui-ci puisse connaître par avance la langue de site lié. La balise A, marquant le lien, dispose d'un attribut hreflang, mais celui-ci n'est généralement visible qu'en se plongeant dans le code source.

Les pseudo attributs de CSS permettent cependant de résoudre de manière graphique cette situation. Plus précisément, il est possible d'afficher, via CSS, le contenu de l'attribut hreflang après le lien, sans pour autant devoir modifier le code HTML ni gêner l'accessibilité... bien au contraire.

Un lien vers JDN Développeurs pourrait ainsi prendre cette forme :
<a href="http://www.journaldunet.com/developpeur/" hreflang="fr-FR">JDN Développeurs</a>

Les codes de langues sont expliqués en ligne, et sont le plus souvent composés de quatre lettres : les deux premières correspondent à la langue, la deux dernières au pays d'application. "pt-BR" indiquera ainsi la langue portugaise telle que parlé au Brésil, "en-UK" l'anglais parlé en Angleterre. La seconde partie est facultative pour certaines langues.

La CSS permettant d'afficher la langue pourrait être ainsi :

a[hreflang]:after { content: " [" attr(hreflang) "] "; }

ce qui donnera

JDN Développeurs [fr-FR]

On pourra même préciser le tout :

a[hreflang='fr-FR']:after { content: " [page en français (France)] "; }

Pour obtenir :

JDN Développeurs [page en français (France)]

Notez bien que comme de nombreuses techniques avancées CSS, celle-ci n'est accessible qu'aux navigateurs modernes, ce qui met malheureusement souvent IE6 hors-jeu.


Les meilleures astuces CSS sur le JDN :
- Comment appliquer les CSS d'une page web au contenu d'une iframe ?
- Comment centrer horizontalement une DIV dans une autre en CSS ?
- Comment créer un arrière-plan (backgroud) CSS extensible et adaptable ?
- Comment définir les cellpadding et cellspacing en CSS ?
- Comment modifier l'image d'un bouton input en CSS ?
- Comment rendre l'arrière-plan d'un élément semi-transparent en conservant le texte de cet élément opaque en CSS ?
- Internet Explorer supporte-t-il l'attribut CSS border-radius
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page