Exposé du problème
En Accessibilité, il y a un critère majeur :
Critère 8.3 [Bronze] Accessiweb
Dans chaque page Web, la langue par défaut est-elle présente ?
Correspondances WCAG 2.0 et RGAA? : Critère(s) de succès WCAG 2.0 : 3.1.1? - Technique(s) suffisante(s) et/ou échec(s) WCAG 2.0 : H57? - Test RGAA : 9.8
Bonne nouvelle par rapport à la 3.2, avec uPortal 4, le serveur renvoie l'en-tête HTTP Content-Language correctement. Et même quand on change la langue du portail, l'en-tête HTTP change.
Vous pouvez le vérifier avec Firebug, dans le panneau "réseau".
L'en-tête HTTP indique le ou les langues des pages.(plusieurs possible)
Malheureusement, la langue de traitement de la page est -elle- indiqué en dur dans la page. A savoir les attributs de la balise <html> "lang" et xml:lang".
dans uportal-war/src/main/resources/layout/theme/universality/page.xsl
86. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
La langue de traitement indique la langue principale de la page (une seule possible)
Résolution du problème
il faudrait pouvoir changer dynamiquement la langue principale dans la XSL,
à savoir, avoir en français :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
avoir en anglais :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
et ainsi de suite...
Avantages
Cela nous permettrai de patcher et de surcharger proprement en css (sans toucher aux css anglaises) le thèmes graphiques "uportal3", "ivy", "coal" et "hight contrast" en français, par le moyen de sélecteurs css qui ne s'appliqueraient qu'en français du type :
html[lang=fr] .up .myclass { property:value-in-french; }