Balise cause de problèmes de sélection de texte sous IE6

IE6 est un navigateur ancien, il devrait passer à la trappe, être brûlé sur l'autel des logiciels qui ont fait leur temps ; IE6 doit mourir, IE6 must die comme nous le préconise David Walsh. Il serait, désormais, presque moins coûteux pour une agence ne plus accepter de clients qui utilisent ce navigateur en interne tellement le prix est élevé par rapport au nombre d'utilisateurs concernés ; les utilisateurs de IE6 sont en sérieuse baisse : statistique de l'usage des navigateurs.

Pourtant ce navigateur est encore utilisé au sein de nombreuses entreprises qui ne veulent pas se moderniser. Parmi les nombreux bugs rencontrés, avez-vous déjà eu des problèmes, pour certains sites, à sélectionner du texte sous IE6 ? Vous essayer de sélectionner un bout de texte et tout le paragraphe est surligné, impossible de réaliser un copié/collé. Ce dysfonctionnement est dû à un problème avec la balise <base> qui est déclarée dans l'entête de la page.

debug IE6

Sur ce billet du blog 456 BereaStreet, Base elements cause text selection problems in IE, l'auteur expose ce douloureux problème. Les visiteurs tentent de lui venir en aide en lui conseillant deux solutions :

  • Convertir <base href="http://www.yoururl.com/"> en <base href="http://www.yoururl.com/"></base>
  • Mettre une position relative sur le body dans le fichier CSS : body {position:relative;}

Oui, mais <base href="http://www.yoururl.com/"></base> ne passe pas au validateur et on voudrait pourvoir indiquer body {position:absolute;}, si nécessaire. Que faire ?

Suivre les recommandations de Fredrick Kylander dans solving the base href dilemma ; déclarer <base href="http://www.yoururl.com/"></base> seulement pour IE6.

<!--[if IE]><base href="http://www.yoururl.com/"></base><![endif]-->
<!--[if !IE]>--><base href="http://www.yoururl.com/" /><!--<![endif]-->

Pour les utilisateurs de TYPO3, de SWFObject, Internet Explorer 6 and TYPO3: Can't We All Just Get Along?, déclarer les lignes suivantes dans votre configuration TypoScript :

[browser= msie6]
config.headerComment (
This is to allow IE6 to see Flash
-->
<base href="http://www.yoururl.com/"></base>
<!--
)</p>

[ELSE]
config.baseURL = www.yoururl.com/

[GLOBAL]</code>

C'est pas très beau, je l'accorde, mais tout ça c'est à cause de IE6, c'est lui le coupable.