source: spip-zone/_plugins_/_stable_/w3c_go_home/validateur/apinc.php @ 8636

Last change on this file since 8636 was 8636, checked in by cedric@…, 13 years ago

"i18n du plugin, qq details d'interface
reste a gerer le js pour :
soumettre un nombre maxi de page a la fois et relancer quand on a fini
annuler les validations en cours"

File size: 40.4 KB
Line 
1<?php
2
3function validateur_apinc_dist($action, $url= ""){
4        global $erreur1,$erreur2,$erreur3;
5       
6        switch ($action){
7                case 'infos':
8                        return "<a href='http://validateur-accessibilite.apinc.org/'>Validateur Accessibili&eacute; apinc</a>";
9                        break;
10                case 'test':
11                        // validation accessibilite
12                        $_GET['urlAVerif']=$url;
13                        ob_start();
14                        test_apinc();
15                        ob_end_clean();
16                        $erreurs = $erreur1+$erreur2+$erreur3;
17                        if($erreurs==0){
18                                $ok = true;
19                                $texte = _T("w3cgh:page_valide");
20                        }
21                        else {
22                                $ok = false;
23                                if ($erreurs>1)
24                                        $texte = _T("w3cgh:erreurs",array('erreurs'=>$erreurs));
25                                else
26                                        $texte = _T("w3cgh:une_erreur");
27                                $texte .= " ($erreur1/$erreur2/$erreur3)";
28                        }
29                        return array($ok,$erreurs,$texte);
30                        break;
31                case 'visu':
32                        $_GET['urlAVerif']=$url;
33                        ob_start();
34                        test_apinc();
35                        $texte = ob_get_contents();
36                        ob_end_clean();
37                        return $texte;
38        }
39        return false;
40}
41
42function getmicrotime(){
43 list($usec, $sec) = explode(" ", microtime());
44 return ((float)$usec + (float)$sec);
45}
46
47function test_apinc(){
48        global $erreur1,$erreur2,$erreur3;
49        $css = find_in_path('validateur.css');
50echo <<<html1
51
52<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
53        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
54<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
55<head>
56<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
57<link rel="stylesheet" type="text/css" media="screen" href="$css" />
58<title>Validateur d'accessibilité</title>
59<script type="text/javascript">
60<!--
61function validation() {
62    if (document.getElementById('urlAVerif').value.length < 1) {
63            window.alert("Vous devez indiquer une adresse valide.");
64                return false;
65}
66    if (document.getElementById('urlAVerif').value == "http://") {
67            window.alert("Vous devez indiquer une adresse valide.");
68                return false;
69        }
70        return true;
71}
72-->
73</script>
74</head>
75<body>
76<p>
77Validateur
78&nbsp;|&nbsp;
79<a href="http://validateur-accessibilite.apinc.org/valider_site.htm">Points à vérifier manuellement</a>
80&nbsp;|&nbsp;
81<a href="http://validateur-accessibilite.apinc.org/wiki/">Fiches techniques</a>
82&nbsp;|&nbsp;
83<a href="http://validateur-accessibilite.apinc.org/mode_emploi_validateur.htm">Mode d'emploi</a>
84&nbsp;|&nbsp;
85<a href="http://validateur-accessibilite.apinc.org/licence/index.htm">Licence</a>
86&nbsp;|&nbsp;
87<a href="http://validateur-accessibilite.apinc.org/validateur.zip">Téléchargement</a>
88</p>
89<h1>Vérification des règles d'accessibilité version 1</h1>
90html1;
91
92//$formulaire=0;
93$logo='';
94$h6='';
95$h5='';
96$h4='';
97$h2='';
98$toto='';
99$toto1='';
100$toto2='';
101$toto42='';
102$framesetSansNoframes='';
103$embedSansnoembed='';
104$tableth='';
105$lien_alerte='';
106$css='';
107$doctype='';
108$charset='';
109$title='';
110$h='';
111$label='';
112$css='';
113$accesskey='';
114$lang='';
115$tabindexPasPartout='';
116
117$tab="1";
118$time_start = getmicrotime();
119
120/*     
121Formulaire de saisie
122*/
123if($_POST['urlAVerif'])
124        $_GET['urlAVerif']=$_POST['urlAVerif'];
125
126if($_GET['urlAVerif']=='' && !isSet($_POST['verifLocale']) && !isSet($_GET['logo'])){
127$formulaire="necessaire";
128}
129//endif;
130if($_GET['urlAVerif']=='http://' && !isSet($_POST['verifLocale']) && !isSet($_GET['logo'])){
131$formulaire="necessaire";
132}
133//endif;
134if($_GET['urlAVerif']!='' && $_GET['urlAVerif']!='http://'){
135        $urlValide = @file ($_GET['urlAVerif']);
136                if($urlValide==FALSE){
137                        $formulaire="necessaire";
138                }
139}
140//endif;
141$urlAverif = $_GET['urlAVerif'];
142$urlValide = @file ($_GET[urlAVerif]);
143if($formulaire=="necessaire"){
144
145        echo "<form id=\"langdecla\" action=\"".generer_url_ecrire("valide_access")."\" method=\"post\" onsubmit=\"return validation();\">";
146        echo "<h2><label for=\"urlAVerif\">URL de la page à vérifier : </label></h2>";
147        echo "<p>";
148        echo "<input type=\"text\" id=\"urlAVerif\" name=\"urlAVerif\" size=\"80\" value=\"http://\" />";
149        echo "</p>";
150        echo "<p>";
151        echo "<input type=\"submit\" name=\"Submit\" value=\"Soumettre\" />";
152        echo "</p>";
153        echo "</form>";
154}
155else{
156/*
157Récupération et préparation du fichier
158*/
159
160if($_GET['urlAVerif']!=''){
161$adresse_base=$_GET['urlAVerif'];
162}
163//endif;
164if($_GET['logo']=="valide"){
165$adresse_base=$_SERVER['HTTP_REFERER'];
166}
167//endif;
168
169
170if(isSet($_POST['verifLocale'])){
171$html=$_POST['verifLocale'];
172}
173else{
174$html=implode ('', file ($adresse_base));
175}
176        $htp=$html;
177        $html=htmlentities($html);
178        $html=stripslashes($html);
179
180
181/*
182Contrôles à effectuer sur le fichier complet
183*/
184/*
185Vérification de la présence d'une feuille de style externe
186*/
187        if(!preg_match("`type\s?=\s?('text/css'|&quot;text/css&quot;)`i",$html)){
188        $css='yenapa';
189        }
190/*
191Vérification de la présence d'accesskey
192*/
193        if(!preg_match('`accesskey`i',$html)){
194        $accesskey='yenapa';
195        }
196/*
197Est-ce que la langue du document est déclarée
198*/
199        if(!preg_match("`[^href]lang\s?=\s?`i",$html)){
200        $lang='yenapa';
201        }
202/*
203Est-ce que les entêtes <h1> à <h6> sont utilisés
204*/
205        if(!preg_match("`&lt;h[1-6]`i",$html)){
206        $h='yenapa';
207        }
208/*
209Est-ce que la balise <h1> est utilisée
210*/
211        if(preg_match('`&lt;h1`i',$html)){
212        $h1='yena';
213        }
214/*
215Est-ce que la balise <h2> est utilisée
216*/
217        if(preg_match('`&lt;h2`i',$html)){
218        $h2='yena';
219        }
220/*
221Est-ce que la balise <h3> est utilisée
222*/
223        if(preg_match('`&lt;h3`i',$html)){
224        $h3='yena';
225        }
226/*
227Est-ce que la balise <h4> est utilisée
228*/
229        if(preg_match('`&lt;h4`i',$html)){
230        $h4='yena';
231        }
232/*
233Est-ce que la balise <h5> est utilisée
234*/
235        if(preg_match('`&lt;h5`i',$html)){
236        $h5='yena';
237        }
238/*
239Est-ce que la balise <h6> est utilisée
240*/
241        if(preg_match('`&lt;h6`i',$html)){
242        $h6='yena';
243        }
244/*
245Est-ce que la balise <h6> est utilisée alors qu'il manque une balise précédente
246*/
247        if($h6=='yena' && ($h5!='yena' or $h4!='yena' or $h3!='yena' or $h2!='yena' or $h1!='yena')){
248        $hdes='vrai';
249        $mess="Vous avez un &lt;h6&gt; alors qu'il manque un entête plus petit (&lt;h1&gt; à &lt;/h5&gt;";
250        }
251/*
252Est-ce que la balise <h5> est utilisée alors qu'il manque une balise précédente
253*/
254        elseif($h5=='yena' && ($h4!='yena' or $h3!='yena' or $h2!='yena' or $h1!='yena')){
255        $hdes='vrai';
256        $mess="Vous avez un &lt;h5&gt; alors qu'il manque un entête plus petit (&lt;h1&gt; à &lt;/h4&gt;";
257        }
258/*
259Est-ce que la balise <h4> est utilisée alors qu'il manque une balise précédente
260*/
261        elseif($h4=='yena' && ($h3!='yena' or $h2!='yena' or $h1!='yena')){
262        $hdes='vrai';
263        $mess="Vous avez un &lt;h4&gt; alors qu'il manque un entête plus petit (&lt;h1&gt; à &lt;/h3&gt;";
264        }
265/*
266Est-ce que la balise <h3> est utilisée aors qu'il manque une balise précédente
267*/
268        elseif($h3=='yena' && ($h2!='yena' or $h1!='yena')){
269        $hdes='vrai';
270        $mess="Vous avez un &lt;h3&gt; alors qu'il manque un entête plus petit (&lt;h1&gt; à &lt;/h2&gt;";
271        }
272/*
273Est-ce que la balise <h2> est utilisée aors qu'il manque une balise précédente
274*/
275        elseif($h2=='yena' && $h1!='yena'){
276        $hdes='vrai';
277        $mess="Vous avez un &lt;h2&gt; alors qu'il n'y a pas de &lt;h1&gt;";
278        }
279/*
280Si il n'y a pas d'erreur détectée dans les entêtes, on n'affiche pas de message d'alerte
281*/
282        else{
283        $hdes='faux';
284        }
285/*
286Est-ce que le doctype est déclaré
287*/
288        if(!preg_match('`&lt;!DOCTYPE`i',$html)){
289        $doctype='yenapa';
290        }
291/*
292Est-ce qu'il y a un tableau alors que les <th> ne sont présents
293*/
294        if(preg_match('`&lt;table`i',$html) && !preg_match('`&lt;th`i',$html)){
295        $tableth='yenapa';
296        }
297/*
298Est-ce que le jeu de caractères est déclaré
299*/
300        if(!preg_match('`charset=`i',$html)){
301        $charset='yenapa';
302        }
303/*
304Est-ce que le titre de la page est déclaré
305*/
306        if(!preg_match('`&lt;title&gt;(.*)?&lt;/title&gt;`is',$html)){
307        $title='yenapa';
308        }
309/*
310Est-ce qu'au moins un formulaire de la page utilise le javascript
311*/
312$cha='`&lt;form(.*?)onsubmit(.*?)&gt;`i';
313preg_match_all($cha,$html,$sortie);
314$nb=count($sortie[0]);
315for($i=0;$i<$nb;$i++){
316$toto=eregi_replace("&lt;form","&lt;form marqueur=&quot;invalide&quot;",$sortie[0][$i]);
317//echo $toto."<br><br><br>";
318} 
319$html=preg_replace($cha,$toto,$html);
320
321/*
322Détection des balises noframe et présence d'un lien vers le menu ou un plan du site
323*/
324//$detect='`&lt;frameset(.*?)&gt;&lt;/frameset&gt;&lt;noframes(.*?)&gt;&lt;a(.*?)&gt;(.*?)&lt;/a&gt;`is';
325$detect='`&lt;noframes(.*?)&gt;(.*?)&lt;a(.*?)&gt;(.*?)&lt;/noframes(.*?)&gt;`is';
326preg_match_all($detect,$html,$nofram);
327$nomb=count($nofram[0]);
328if($nomb==0){
329$noframesSansLien="yena";
330}
331/*
332detection de frameset sans noframes.
333*/
334if(preg_match('`&lt;frameset(.*)&gt;`is',$html) && !preg_match('`&lt;noframes(.*?)&gt;`is',$html)){
335$framesetSansNoframes="yena";
336}
337/*
338detection de <embed> sans <noembed>.
339*/
340if(preg_match('`&lt;embed(.*)&gt;`is',$html) && !preg_match('`&lt;noembed(.*?)&gt;`is',$html)){
341$embedSansnoembed="yena";
342}
343
344
345$chai='`&lt;select(.*?)onchange(.*?)&gt;`i';
346preg_match_all($chai,$html,$sortie1);
347$nb1=count($sortie1[0]);
348for($i=0;$i<$nb1;$i++){
349$toto1=eregi_replace("&lt;select","&lt;select marqueur=&quot;invalide&quot;",$sortie1[0][$i]);
350//echo $toto1."<br><br><br>";
351} 
352$html=preg_replace($chai,$toto1,$html);
353
354$chain='`&lt;input(.*?)type=&quot;submit&quot;(.*?)onclick(.*?)&gt;`i';
355preg_match_all($chain,$html,$sortie2);
356$nb2=count($sortie2[0]);
357for($i=0;$i<$nb2;$i++){
358$toto2=eregi_replace("&lt;input","&lt;input marqueur=&quot;invalide&quot;",$sortie2[0][$i]);
359//echo $toto2."<br><br><br>";
360} 
361$html=preg_replace($chain,$toto2,$html);
362
363
364$lienPasClair='`&lt;a(.*?)&gt;(cliquez ici|click|ici|lire|lire la suite)&lt;/a&gt;`is';
365preg_match_all($lienPasClair,$html,$sortie42);
366$nb42=count($sortie42[0]);
367for($i=0;$i<$nb42;$i++){
368$toto42=eregi_replace("&lt;/a&gt;","&lt;/a marqueur=&quot;invalide&quot;&gt;",$sortie2[0][$i]);
369//echo $toto2."<br><br><br>";
370} 
371$html=preg_replace($lienPasClair,$toto42,$html);
372
373
374/*
375Est-ce que les <label> sont présent là où il faut
376*/
377        if(preg_match('`&lt;[^/](input|select|textarea)`i',$html) && !preg_match('`&lt;label`i',$html)){
378        $label='yenapa';
379        }
380/*
381Est-ce qu'il y a un ou plusieurs <textarea> vides
382*/
383        if(preg_match('`&lt;textarea(.*)?&gt;&lt;/textarea&gt;`is',$html) or preg_match('`&lt;textarea(.*)?&gt;(\r|\n|\r\n|\n\r)&lt;/textarea&gt;`is',$html)){
384        $textareaVide='yena';
385        }
386       
387/*
388        $chaine='`&lt;textarea(.*)&gt;&lt;/textarea&gt;`i';
389preg_match_all($chaine,$html,$sortie4);
390$nb4=count($sortie4[0]);
391for($i=0;$i<$nb4;$i++){
392$toto4=eregi_replace("&lt;textarea","&lt;textarea marqueur=&quot;invalide&quot;",$sortie4[0][$i]);
393echo $toto4."<br><br><br>";
394}
395
396$html=preg_replace($chaine,$toto4,$html);
397*/
398       
399/*
400Déterminer le nb de textarea présent
401*/
402        preg_match_all('`&lt;textarea`i',$html,$output);
403        $nbtextarea=count($output[0]); 
404/*
405Est-ce que des tabindex sont déclarés
406*/
407        $motif="`(tabindex=)`";
408        preg_match_all($motif,$html,$out);
409        $nbtab=count($out[0]); 
410        if($nbtab==0){
411        $tabindex='yenapa';
412        }
413        else{
414        $tabindex='yena';
415        }
416
417
418
419
420
421
422/*
423Compter le nb de <table> présent sur la page
424*/
425        $motif2="`&lt;table`i";
426        preg_match_all($motif2,$html,$out2);
427        $nbtable=count($out2[0]);
428if($nbtable=='1'){
429$messageTable="le tableau présent";
430}
431else{
432$messageTable="les $nbtable tableaux présents";
433}
434/*
435Vérifier le doublement des liens d'une image map
436*/
437        $motif989="`&lt;map(.*?)&gt;(.*?)&lt;a(.*?)href=&quot;(.*?)&quot;(.*?)&gt;(.*?)&lt;/map&gt;`is";
438        preg_match_all($motif989,$html,$outkl);
439        $mapliens=count($outkl[0]);
440                $lienParMap="`href=&quot;(.*?)&quot;`";
441                for($i=0;$i<$mapliens;$i++){
442                        preg_match_all($lienParMap,$outkl[0][$i],$out1442);
443                        $nbliens=count($out1442[0]);
444                        for($ii=0;$ii<$nbliens;$ii++){
445                                $motif5858='`'.$out1442[0][$ii].'`';
446                                preg_match_all($motif5858,$html,$sortie114);
447                                $nb_sortie=count($sortie114[0]);
448                                        if($nb_sortie<2){
449                                        $bebebe=eregi_replace('href','hrefpasbon',$out1442[0][$ii]);
450                                        $html=preg_replace($motif5858,$bebebe,$html);
451                                        }
452                                        else{
453                                        }
454                        }
455                }
456/*
457Vérifier que tous les liens ayant le même nom pointent au même endroit
458
459$motif="`&lt;a (.*?)href=&quot;(.*?)&quot(.*?)&gt;(.*?)&lt;/a&gt;`i";
460preg_match_all($motif,$html,$outputlien);
461$nbLiens=count($outputlien[0]);
462        for($i=0;$i<$nbLiens;$i++){
463        echo $outputlien[4][$i]."<br />";
464                $motif2='`&lt;a (.*?)href=&quot;(.*?)&quot(.*?)&gt;'.$outputlien[4][$i].'&lt;/a&gt;`is';
465                preg_match_all($motif2,$html,$outputlien2);
466                echo $outputlien2[0][$i]."<br />";
467               
468        }
469*/
470
471/*
472Préparation du fichier pour l'analyse ligne par ligne
473*/
474        $html=str_replace('&gt;',"&gt;<br />",$html);
475        if(!eregi('^(&lt;/)',$html)){
476        $html=str_replace('&lt;/',"<br />&lt;/",$html);
477        }
478       
479        $html=preg_replace('(\r|\n|\r\n|\n\r)',"",$html);
480        //$html=str_replace('',"",$html);
481        $html=explode('<br />',$html);
482        $nb=count($html);
483        $resultat="";
484        global $erreur1;
485        global $erreur2;
486        global $erreur3;
487        $avertissement1=0;
488        $erreur1=0;
489        $avertissement2=0;
490        $erreur2=0;
491        $avertissement3=0;
492        $erreur3=0;
493        $stycss=0;
494        $citation='2';
495        $table="3";
496        echo "<h2>Url de la page : $adresse_base</h2>";
497        echo "<p class=\"gauche\">";
498       
499       
500       
501       
502       
503        for($i=0;$i<$nb;$i++){
504        if(!preg_match('`(.*)?(&lt;/)`',$html[$i])){
505        $html[$i]=str_replace('&lt;/',"<br />&lt;/",$html[$i]);
506        }
507        else{
508        }
509                        if($html[$i]!=""){
510                        $resultat.="$html[$i]<br />\r\n";
511                        }
512                       
513
514                       
515                       
516/*Règles de priorité 1*/
517                if($_GET['niveau']=='niveau1' or $_GET['niveau']=='niveau2' or $_GET['niveau']=='niveau3' or $_GET['niveau']==''){
518/*Règles de priorité 1*/
519
520/*
521On vérifie que la ligne contienne une balise frame ou frameset
522et qu'elle ne contient pas d'attribut title ou seulement un
523attribut title vide.
524*/
525                        if(preg_match('`&lt;frame`i',$html[$i]) && (!eregi('title',$html[$i]) or preg_match('`title\s?=\s?&quot;&quot;`',$html[$i]) or preg_match("`title\s?=\s?''`",$html[$i]))){
526                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/12_1_frame_nom\" tabindex=\"$tab\" title=\"lien vers la page sur les frames\">Priorité 1 - Vous devez nommer vos frames et votre frameset.</a></div><p>";
527                        $erreur1++;
528                        $tab++;
529                        }
530                        else{}
531
532/*
533On vérifie que la ligne contient une balise </frameset> et on affiche un message
534d'erreur si il n'y a pas de balises <noframes></noframes>
535*/
536                        if($framesetSansNoframes=="yena" && preg_match('`&lt;/frameset`i',$html[$i])){
537                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/12_2_frameset_sans_noframes\" tabindex=\"$tab\" title=\"lien vers la page sur les frames\">Priorité 1 - Vous devez mettre en place les balises &lt;noframes&gt; et rendre votre site accessible à ceux qui ne peuvent pas afficher les frames.</a></div><p>";
538                        $erreur1++;
539                        $tab++;
540                        }
541                        else{}
542
543/*
544On vérifie que la ligne contient une balise </embed> et on affiche un message
545d'erreur si il n'y a pas de balises <noembed></noembed>
546*/
547                        if($embedSansnoembed=="yena" && preg_match('`&lt;/embed`i',$html[$i])){
548                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/06_3_embed_sans_noembed\" tabindex=\"$tab\" title=\"lien vers la page sur le multimedia\">Priorité 1 - Vous devez mettre en place les balises &lt;noembed&gt; et offrir une alternative pour ceux qui utilisent un navigateur ne supportant pas l'inclusion d'objets multimedia.</a></div><p>";
549                        $erreur1++;
550                        $tab++;
551                        }
552                        else{}
553
554/*
555On vérifie que la ligne contient une balise </noframe> et on affiche un message
556d'erreur si il n'y a pas de lien d'indiqué entre <noframes> et </noframes>
557*/
558                        if($noframesSansLien=="yena" && preg_match('`&lt;/noframes`i',$html[$i])){
559                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/12_2_noframes_sans_lien\" tabindex=\"$tab\" title=\"lien vers la page sur les frames\">Priorité 1 - utilisez les balises &lt;noframes&gt; pour mettre en place un lien vers une page contenant les liens vers toutes les pages de votre site.</a></div><p>";
560                        $erreur1++;
561                        $tab++;
562                        }
563                        else{}
564
565
566
567/*
568On vérifie que la ligne contienne une balise appelant une zone d'image map
569et qu'il n'y ai pas d'attribut alt ou que celui-ci soit vide.
570*/
571                        if(preg_match('`shape\s?=`i',$html[$i]) && preg_match('`area`i',$html[$i]) && (!preg_match('`alt`i',$html[$i]) or preg_match("`alt\s?=\s?(''|&quot;&quot;)`i",$html[$i]))){
572                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/01_1_map_alt\" tabindex=\"$tab\" title=\"lien vers la page sur les images map\">Priorité 1 - Vous devez mettre un attribut alt avec toutes les zones de votre image réactive.</a></div><p>";
573                        $erreur1++;
574                        $tab++;
575                        }
576                        else{}
577/*
578On vérifie que la ligne contienne une balise img
579et qu'il n'y ai pas d'attribut alt.
580*/
581                        if(preg_match('`&lt;img`i',$html[$i]) && !preg_match('`alt`i',$html[$i])){
582                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/01_1_image_alt\" tabindex=\"$tab\" title=\"lien vers la page sur les images\">Priorité 1 - Vous devez mettre un attribut alt avec toutes vos images.</a></div><p>";
583                        $erreur1++;
584                        $tab++;
585                        }
586                        else{}
587/*
588On vérifie que la ligne contienne une balise <table>
589et si il n'y a pas de <th> déclaré, on affiche 1 fois
590le message d'alerte.
591*/
592                        if($tableth=='yenapa' && $table=="3" && preg_match('`&lt;table(.*?)&gt;`i',$html[$i])){
593                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Difficile ! </span><a href=\"wiki/wiki/05_1_tableau_th\" tabindex=\"$tab\" title=\"lien vers la page sur les tableaux\">Priorité 1 - Identifiez les entêtes &lt;th&gt; des tableaux de données. Vérifiez que vous n'utilisez pas $messageTable sur votre page à des fins de présentation.</a></div><p>";
594                        $erreur1++;
595                        $table++;
596                        $tab++;
597                        }
598                        else{}
599/*
600On vérifie que la ligne contienne un lien
601et si celui-ci mêne nulle part, on affiche une alerte.
602*/
603                        if(preg_match("`&lt;a(.*?)href\s?=\s?(&quot;#&quot;|'#')(.*?)&gt;`i",$html[$i])){
604                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/06_3_lien_javascript\" tabindex=\"$tab\" title=\"lien vers la page sur les liens\">Priorité 1 - Ce type de lien ne fonctionne pas si le javascrit est désactivé.</a></div><p>";
605                        $erreur1++;
606                        $tab++;
607                        $lien_alerte="invalide";
608                        }
609                        else{}
610/*
611On vérifie si une image bmp est utilisée.
612*/
613                        if(preg_match('`&lt;img(.*)src=&quot;(.*).bmp&quot;(.*)&gt;`i',$html[$i])){
614                        $resultat.="</p><div class=\"rouge\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/11_1_image_bmp\" tabindex=\"$tab\" title=\"lien vers la page sur les images\">Priorité 1 - Le format bmp n'est pas destiné au web, utilisez png, jpg ou gif.</a></div><p>";
615                        $avertissement1++;
616                        $tab++;
617                        }
618                        else{}
619                       
620                if($_GET['avert']!='pasAvertissement'){
621               
622/*
623On vérifie que la ligne contienne une balise appelant un script
624*/
625                        if(preg_match('`&lt;(object|script|embed|applet)`i',$html[$i])){
626                        $resultat.="</p><div class=\"orange\"><span class=\"facile\">Variable </span><a href=\"wiki/wiki/06_5_script_texte\" tabindex=\"$tab\" title=\"lien vers la page sur les script\">Priorité 1 - Assurez-vous que la page est consultable sans ce script et/ou que le contenu soit doublé d'une version accessible sans l'utilisation de langage de script.</a></div><p>";
627                        $avertissement1++;
628                        $tab++;
629                        }
630                        else{}
631/*
632On vérifie que la ligne contienne une balise appelant
633une image map côté serveur.
634*/
635                        if(preg_match('`ismap`i',$html[$i])){
636                        $resultat.="</p><div class=\"orange\"><a href=\"wiki/wiki/09_1_map_serveur\" tabindex=\"$tab\" title=\"lien vers la page sur les images map\">Priorité 1 - Vous devriez utiliser de préférence une image map côté client.</a></div><p>";
637                        $resultat.="</p><div class=\"orange\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/01_2_map_lien\" tabindex=\"$tab\" title=\"lien vers la page sur les images map\">Priorité 1 - Assurez-vous que l'ensemble des liens soient repris sous forme de texte.</a></div><p>";
638                        $avertissement1=$avertissement1+2;
639                        $tab++;
640                        }
641                        else{}
642/*
643On vérifie que la ligne contienne un lien
644et que celui-ci fasse appel à du javascript.
645*/
646                        if($lien_alerte!="invalide" && preg_match('`onclick`i',$html[$i]) && preg_match('`&lt;a`i',$html[$i]) && preg_match('`#`i',$html[$i])){
647                        $resultat.="</p><div class=\"orange\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/06_3_lien_javascript\" tabindex=\"$tab\" title=\"lien vers la page sur les liens\">Priorité 1 - Assurez-vous que ce lien fonctionne sans le javascript.</a></div><p>";
648                        $avertissement1++;
649                        $tab++;
650                        }
651                        else{}
652/*
653On vérifie que la ligne contienne une balise <form>
654et si on a détecté précédemment l'usage de javascript
655sur un formulaire de la page, on affiche une alerte.
656*/
657                        if(preg_match('`&lt;form marqueur=&quot;invalide&quot;`i',$html[$i])){
658                        $resultat.="</p><div class=\"orange\"><span class=\"facile\">Variable </span><a href=\"wiki/wiki/06_3_formulaire_javascript\" tabindex=\"$tab\" title=\"lien vers la page sur les formulaire\">Priorité 1 - Assurez-vous que ce formulaire fonctionne si le javascrit est désactivé.</a></div><p>";
659                        $avertissement1++;
660                        $tab++;
661                        }
662                        else{}
663                       
664/*
665On vérifie que la ligne contienne une balise <select>
666et si on a détecté précédemment l'usage de javascript
667sur un formulaire de la page, on affiche une alerte.
668*/
669                        if(preg_match('`&lt;select marqueur=&quot;invalide&quot;`i',$html[$i])){
670                        $resultat.="</p><div class=\"orange\"><span class=\"facile\">Variable </span><a href=\"wiki/wiki/06_3_formulaire_javascript\" tabindex=\"$tab\" title=\"lien vers la page sur les formulaire\">Priorité 1 - Assurez-vous que ce formulaire fonctionne si le javascrit est désactivé.</a></div><p>";
671                        $avertissement1++;
672                        $tab++;
673                        }
674                        else{}
675                       
676/*
677On vérifie que la ligne contienne une balise <input>
678et si on a détecté précédemment l'usage de javascript
679sur un formulaire de la page, on affiche une alerte.
680*/
681                        if(preg_match('`&lt;input marqueur=&quot;invalide&quot;`i',$html[$i])){
682                        $resultat.="</p><div class=\"orange\"><span class=\"facile\">Variable </span><a href=\"wiki/wiki/06_3_formulaire_javascript\" tabindex=\"$tab\" title=\"lien vers la page sur les formulaire\">Priorité 1 - Assurez-vous que ce formulaire fonctionne si le javascrit est désactivé.</a></div><p>";
683                        $avertissement1++;
684                        $tab++;
685                        }
686                        else{}
687                       
688                       
689/*
690On vérifie que la ligne contienne une balise <img>
691et un attribut alt vide.
692*/
693                        if(preg_match("`&lt;img(.*)alt\s?=\s?(''|&quot;&quot;)`i",$html[$i])){
694                        $resultat.="</p><div class=\"orange\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/01_1_image_alt_vide\" tabindex=\"$tab\" title=\"lien vers la page sur les images\">Priorité 1 - Vous avez mis un attribut alt vide, est-ce volontaire ?.</a></div><p>";
695                        $avertissement1++;
696                        $tab++;
697                        }
698                        else{}
699}
700                }
701                else{
702                }
703               
704               
705               
706               
707               
708/*Règles de priorité 2*/
709                if($_GET['niveau']=='niveau2' or $_GET['niveau']=='niveau3' or $_GET['niveau']==''){
710/*
711Si il n'y a pas d'appel à une feuille de style externe,
712on affiche une alerte apres </head>.
713*/
714                        if($css=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
715                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/03_3_css\" tabindex=\"$tab\" title=\"lien vers la page sur les css\">Priorité 2 - Vous devriez utiliser une feuille de style externe.</a></div><p>";
716                        $erreur2++;
717                        $tab++;
718                        }
719                        else{}
720/*
721On vérifie que la ligne contienne une balise <frame> ou <frameset>
722et si il n'y a pas de longdesc, on affiche une alerte.
723*/
724                        if(preg_match('`&lt;frame`i',$html[$i]) && !preg_match('`longdesc`',$html[$i])){
725                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"glossaire./12_1_frame_nom\" tabindex=\"$tab\" title=\"lien vers la page sur les descriptions de frame\">Priorité 2 - Décrivez correctement vos frames et complétez la partie &lt;noframes&gt;... &lt;/noframes&gt;.</a></div><p>";
726                        $erreur2++;
727                        $tab++;
728                        }
729                        else{}
730/*
731Si il n'y a pas de doctype déclaré, on affiche une alerte
732après le </head>.
733*/
734                        if($doctype=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
735                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/03_2_doctype\" tabindex=\"$tab\" title=\"lien vers la page sur les doctypes\">Priorité 2 - Vous devez déclarer un doctype et valider votre document.</a></div><p>";
736                        $erreur2++;
737                        $tab++;
738                        }
739                        else{}
740/*
741Si il n'y a pas de définition de caractères déclarée, on affiche une alerte
742après le </head>.
743*/
744                        if($charset=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
745                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/03_2_charset\" tabindex=\"$tab\" title=\"lien vers la page sur les doctypes\">Priorité 2 - Vous devez déclarer l'encodage de votre page.</a></div><p>";
746                        $erreur2++;
747                        $tab++;
748                        }
749                        else{}
750
751/*
752Si il n'y a pas de <link rel="stylesheet" type="text/css" media="screen" href="../validateur.css" />
753<title></title> déclaré, on affiche une alerte
754après le </head>.
755*/
756                        if($title=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
757                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/03_5_title\" tabindex=\"$tab\" title=\"lien vers la page sur le meta-données\">Priorité 2 - Vous devriez indiquer le titre de votre document.</a></div><p>";
758                        $erreur2++;
759                        $tab++;
760                        }
761                        else{}
762/*
763On vérifie que la ligne contienne une balise forcant
764le rafraichîssement de la page.
765*/
766                        if(preg_match("`http-equiv\s?=\s?(&quot;refresh&quot;|'refresh')`i",$html[$i]) && !preg_match('`url`i',$html[$i])){
767                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Variable </span><a href=\"wiki/wiki/07_4_refresh\" tabindex=\"$tab\" title=\"lien vers la page sur les rafraichissements\">Priorité 2 - Ne forcez pas le rafraîchissement d'une page.</a></div><p>";
768                        $erreur2=$erreur2+2;
769                        $tab++;
770                        //$refresh='yena';
771                        }
772                        else{}
773/*
774On vérifie que la ligne contienne une balise forcant
775la redirection de la page.
776*/
777                        if(preg_match("`http-equiv\s?=\s?(&quot;refresh&quot;|'refresh')`i",$html[$i]) && preg_match('`url`i',$html[$i])){
778                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Variable </span><a href=\"wiki/wiki/07_5_redirection\" tabindex=\"$tab\" title=\"lien vers la page sur les redirections\">Priorité 2 - Préférez les redirections \"côté serveur\".</a></div><p>";
779                        $erreur2=$erreur2+2;
780                        $tab++;
781                        }                       
782                        else{}
783/*
784On vérifie que la ligne contienne une balise dépréciée (font) :
785*/
786                        if(preg_match("`&lt;font\s?=`i",$html[$i])){
787                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/11_2_deprecie\" tabindex=\"$tab\" title=\"lien vers la page sur les technologies dépréciées\">Priorité 2 - Remplacez la balise font dépréciée par son équivalent en css.</a></div><p>";
788                        $erreur2++;
789                        $tab++;
790                        }                       
791                        else{}
792/*
793On vérifie que la ligne contienne une balise dépréciée (bgcolor) :
794*/
795                        if(preg_match("`&lt;(.*?)bgcolor\s?=(.*?)&gt;`i",$html[$i])){
796                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/11_2_deprecie\" tabindex=\"$tab\" title=\"lien vers la page sur les technologies dépréciées\">Priorité 2 - Remplacez l'attribut bgcolor déprécié par son équivalent en css.</a></div><p>";
797                        $erreur2++;
798                        $tab++;
799                        }                       
800                        else{}
801/*
802On vérifie que la ligne contienne une balise dépréciée (border) :
803*/
804                        if(preg_match("`&lt;(.*?)border\s?=(.*?)&gt;`i",$html[$i])){
805                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/11_2_deprecie\" tabindex=\"$tab\" title=\"lien vers la page sur les technologies dépréciées\">Priorité 2 - Remplacez l'attribut border déprécié par son équivalent en css.</a></div><p>";
806                        $erreur2++;
807                        $tab++;
808                        }                       
809                        else{}
810/*
811On vérifie que la ligne contienne une balise dépréciée (center) :
812*/
813                        if(preg_match("`&lt;(.*?)[^:]/s?center(.*?)&gt;`i",$html[$i])){
814                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/11_2_deprecie\" tabindex=\"$tab\" title=\"lien vers la page sur les technologies dépréciées\">Priorité 2 - Remplacez la balise center dépréciée par son équivalent en css.</a></div><p>";
815                        $erreur2++;
816                        $tab++;
817                        }                       
818                        else{}
819/*
820Si aucune balise <h1> à <h6> n'est déclarée,
821on affiche une alerte juste après <body>.
822*/
823                        if($h=='yenapa' && preg_match('`&lt;body`i',$html[$i])){
824                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">variable ! </span><a href=\"wiki/wiki/03_5_h\" tabindex=\"$tab\" title=\"lien vers la page sur la sémantique\">Priorité 2 - Structurez votre document à l'aide des balises &lt;h1&gt; à &lt;h6&gt;.</a></div><p>";
825                        $erreur2++;
826                        $tab++;
827                        }
828                        else{}
829
830/*
831On vérifie si il n'y a pas un lien pas assez explicite.
832*/
833                        if(preg_match('`&lt;/a marqueur=&quot;invalide&quot;&gt;`i',$html[$i])){
834                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/13_1_lien_clair\" tabindex=\"$tab\" title=\"lien vers la page sur les liens explicites\">Priorité 2 - Vos liens doivent être plus explicites</a></div><p>";
835                        $erreur2++;
836                        $tab++;
837                        }
838                        else{}
839/*
840On vérifie si les lignes devant recevoir un <label> sont conformes
841en évitant les alertes sur la ligne de submit.
842*/
843                        if($label=='yenapa' && preg_match('`&lt;(input|select|textarea)`i',$html[$i]) && !preg_match('`submit`i',$html[$i])){
844                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/10_2_label\" tabindex=\"$tab\" title=\"lien vers la page sur les labels\">Priorité 2 - Vous devriez mettre en place un &lt;label&gt;...&lt;/label&gt;</a></div><p>";
845                        $erreur2++;
846                        $tab++;
847                        }
848                        else{}
849/*
850On vérifie que la balise label contienne bien l'attribut for="".
851*/
852                        if(preg_match('`&lt;label`i',$html[$i]) && !preg_match('`for`i',$html[$i])){
853                        $resultat.="</p><div class=\"rouge2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/12_4_labelfor\" tabindex=\"$tab\" title=\"lien vers la page sur les labels et les for\">Priorité 2 - Définissez la cible de votre &lt;label&gt; à l'aide de for=\"id_cible\"</a></div><p>";
854                        $erreur2++;
855                        $tab++;
856                        }
857                        else{}
858                       
859                       
860                       
861                if($_GET['avert']!='pasAvertissement'){
862/*
863On vérifie que les tailles sont bien définies en relatif.
864*/
865                        if(preg_match('`&lt;(table|tr|td|div|span)(.*?)px(.*?)&gt;`i',$html[$i])){
866                        $resultat.="</p><div class=\"orange2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/03_4_taille_relative\" tabindex=\"$tab\" title=\"lien vers la page sur les css\">Priorité 2 - Utilisez plutôt des tailles relatives</a></div><p>";
867                        $avertissement2++;
868                        $tab++;
869                        }
870                        else{}
871/*
872On vérifie si la ligne contient un appel
873pour ouvrir une nouvelle fenêtre.
874*/
875                        if(preg_match("`(window.open|window.resize|target\s?=\s?&quot;_blank&quot;|target\s?=\s?'_blank')`i",$html[$i])){
876                        $resultat.="</p><div class=\"orange2\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/10_1_new_win\" tabindex=\"$tab\" title=\"lien vers la page sur les nouvelles fenêtre\">Priorité 2 - N'ouvrez pas de nouvelle fenêtre et ne modifiez pas celle en cours sans prévenir clairement le visiteur.</a></div><p>";
877                        $avertissement2++;
878                        $tab++;
879                        }
880                        else{}
881/*
882On vérifie si la ligne contient un gestionnaire d'événement
883ne fonctionnant qu'avec une souris.
884*/
885                        if(preg_match("`(ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout)`i",$html[$i])){
886                        $resultat.="</p><div class=\"orange2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/06_4_gestionnaire\" tabindex=\"$tab\" title=\"lien vers la page sur les gestionnaire d'evenements\">Priorité 2 - Utilisez de préférence des gestionnaires d'événements qui fonctionnent avec autre chose qu'une souris.</a></div><p>";
887                        $avertissement2++;
888                        $tab++;
889                        }
890                        else{}
891/*
892On vérifie si la ligne contient une balise de citation
893<q>, <cite> ou <blocquote> et on demande la confirmation
894du bon usage de celle-ci.
895*/
896                        if($citation=='2' && preg_match("`(&lt;q&gt;|&lt;cite&gt;|&lt;blockquote&gt;)`i",$html[$i])){
897                        $resultat.="</p><div class=\"orange2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/03_7_citation\" tabindex=\"$tab\" title=\"lien vers la page sur les gestionnaire d'evenements\">Priorité 2 - Vérifiez que vous utilisez bien les balises &lt;q&gt; &lt;cite&gt; &lt;blockquote&gt;  pour introduire une citation.</a></div><p>";
898                        $avertissement2++;
899                        $tab++;
900                        $citation++;
901                        }
902                        else{}
903/*
904On vérifie si la ligne contient une balise ou une extension
905démontrant l'usage de parties mobiles sur la page et on affiche
906une alerte.
907*/
908                        if(preg_match("`(\.swf|\.mng|&lt;blink|&lt;marquee)`i",$html[$i])){
909                        $resultat.="</p><div class=\"orange2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/07_2_image_clignote\" tabindex=\"$tab\" title=\"lien vers la page sur les pages qui clignotent\">Priorité 2 - l'usage d'images animées, de clignotement ou de défilement est déconseillé.</a></div><p>";
910                        $avertissement2++;
911                        $tab++;
912                        }
913                        else{}
914                       
915/*
916On vérifie si la ligne contient une définition de style
917qui pourrait être mis dans une feuille externe.
918*/
919                        if($stycss==0 && preg_match("`style\s?=\s?('|&quot;)`i",$html[$i])){
920                        $resultat.="</p><div class=\"orange2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/03_3_css_locale\" tabindex=\"$tab\" title=\"lien vers la page sur les css\">Priorité 2 - Vérifiez si il n'est pas plus simple de regrouper vos déclarations de style dans une feuille de style externe. En déclarant vos styles CSS au sein de chaque page, vous perdez un des avantages des CSS, à savoir la facilité de maintenance.</a></div><p>";
921                        $avertissement2++;
922                        $tab++;
923                        $stycss++;
924                        }
925                        else{}
926/*
927On vérifie si la ligne contient une définition de style
928qui pourrait être mis dans une feuille externe.
929*/
930                        if($css=='yenapa' && preg_match("`class\s?=`i",$html[$i])){
931                        $resultat.="</p><div class=\"orange2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/03_3_css_locale\" tabindex=\"$tab\" title=\"lien vers la page sur les css\">Priorité 2 - En déclarant vos styles CSS au sein de chaque page, vous perdez un des avantages des CSS, à savoir la facilité de maintenance.</a></div><p>";
932                        $avertissement2++;
933                        $tab++;
934                        }
935                        else{}
936/*
937Si on a détecté une erreur dans l'imbrication des entête <h1 à 6>,
938on affiche une alerte juste après <body>
939*/
940                        if($hdes=='vrai' && preg_match('`&lt;body`i',$html[$i])){
941                        $resultat.="</p><div class=\"orange2\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/03_5_hdes\" tabindex=\"$tab\" title=\"lien vers la page sur la sémantique\">Priorité 2 - $mess</a></div><p>";
942                        $avertissement2++;
943                        $tab++;
944                        }
945                        else{}
946                }
947                }
948                else{
949                }
950               
951               
952               
953/*Règles de priorité 3*/
954                if($_GET['niveau']=='niveau3' or $_GET['niveau']==''){
955                /*Règles de priorité 3*/
956               
957/*
958Si le document ne contient pas d'accesskey, on met
959une alerte juste après <body>
960*/
961        if($accesskey=='yenapa' && preg_match('`&lt;body`i',$html[$i])){
962        $resultat.="</p><div class=\"rouge3\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/09_5_accesskey\" tabindex=\"$tab\" title=\"lien vers la page sur les css\">Priorité 3 - Vous devriez mettre en place des raccourcis clavier (accesskey).</a></div><p>";
963        $erreur3++;
964        $tab++;
965        }
966        else{}
967
968/*
969On vérifie si la langue du document a bien été
970déclarée sinon on met une alerte.
971*/
972        if($lang=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
973        $resultat.="</p><div class=\"rouge3\"><span class=\"facile\">Très facile ! </span><a href=\"wiki/wiki/04_3_lang\" tabindex=\"$tab\" title=\"lien vers la page sur la déclaration de la langue\">Priorité 3 - Vous devriez indiquer la langue principale du document.</a></div><p>";
974        $erreur3++;
975        $tab++;
976        }                       
977        else{}
978
979/*
980On vérifie si la ligne contient une image réactive
981et on affiche une alerte pour les liens textes en doublure.
982*/
983                        if(preg_match('`hrefpasbon`i',$html[$i])){
984                        $resultat.="</p><div class=\"rouge3\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/01_5_map_double\" tabindex=\"$tab\" title=\"lien vers la page sur les images map\">Priorité 3 - Vérifiez que vous avez bien repris sous une forme classique l'ensemble des liens de votre image réactive.</a></div><p>";
985                        $erreur3++;
986                        $tab++;
987                        }
988                        else{}
989
990
991
992                if($_GET['avert']!='pasAvertissement'){
993
994/*
995Si la page ne contient aucun tabindex, on affiche une alerte
996juste après <body>.
997*/
998                        if($tabindex=='yenapa' && preg_match('`&lt;body`i',$html[$i])){
999                        $resultat.="</p><div class=\"orange3\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/09_4_tabindex\" tabindex=\"$tab\" title=\"lien vers la page sur les tabindex\">Priorité 3 - Vérifiez si l'ordre de navigation à l'aide de la touche tab est logique, en cas de réponse négative, mettez en place des tabindex.</a></div><p>";
1000                        $avertissement3++;
1001                        $tab++;
1002                        }
1003                        else{}
1004/*
1005On vérifie si au moins un tabindex est déclaré et si oui
1006si toutes les balises le requérant en ont bien un de déclaré.
1007*/
1008                        if($tabindex=='yena' && $tabindexPasPartout != "houi" && preg_match('`(&lt;a |&lt;input|&lt;area|&lt;button|&lt;object|&lt;select|&lt;textarea)`i',$html[$i]) && !preg_match('`tabindex`i',$html[$i]) && !preg_match('`(hidden|acronym|link|&lt;/|address)`i',$html[$i])){
1009                        $resultat.="</p><div class=\"orange3\"><span class=\"facile\">Variable ! </span><a href=\"wiki/wiki/09_4_tabindex\" tabindex=\"$tab\" title=\"lien vers la page sur les tabindex\">Priorité 3 - Vous avez mis en place certains tabindex mais pas de partout où il en faudrait, est-ce délibéré ?</a></div><p>";
1010                        $avertissement3++;
1011                        $tabindexPasPartout = "houi";
1012                        $tab++;
1013                        }
1014                        else{}
1015
1016                }
1017                }
1018        }
1019        echo "</p>";
1020
1021/*
1022On affiche le nb d'erreurs et d'avertissements
1023*/
1024
1025        if($erreur1=='0' && $erreur2=='0' && $erreur3=='0'){
1026        echo "<p class=\"felicitation\">";     
1027        echo "<strong>Bravo ! </strong>il y n'y a pas d'erreurs de détectées sur votre page, prenez tout de
1028        même le temps de vérifier les éventuels avertissements et de valider les points non vérifiables
1029        automatiquement.";
1030        echo "</p>";   
1031        }
1032
1033        echo "<p>";
1034        echo "<strong>Priorité 1 :</strong> ";
1035        if($erreur1=='0'){
1036        echo "<span class=\"nberreurszero\">Il y a $erreur1 erreur </span>";
1037        }
1038        elseif($erreur1=='1'){
1039        echo "<span class=\"nberreurs\">Il y a $erreur1 erreur</span> ";
1040        }
1041        else{
1042        echo "<span class=\"nberreurs\">Il y a $erreur1 erreurs</span> ";
1043        }
1044        if($avertissement1=='0'){
1045        echo "<span class=\"nbavertissement\">et $avertissement1 avertissement</span><br />";
1046        }
1047        elseif($avertissement1=='1'){
1048        echo "<span class=\"nbavertissement\">et $avertissement1 avertissement</span><br />";
1049        }
1050        else{
1051        echo "<span class=\"nbavertissement\">et $avertissement1 avertissements</span><br />";
1052        }
1053        echo "<strong>Priorité 2 :</strong> ";
1054        if($erreur2=='0'){
1055        echo "<span class=\"nberreurszero\">Il y a $erreur2 erreur </span>";
1056        }
1057        elseif($erreur2=='1'){
1058        echo "<span class=\"nberreurs\">Il y a $erreur2 erreur</span> ";
1059        }
1060        else{
1061        echo "<span class=\"nberreurs\">Il y a $erreur2 erreurs</span> ";
1062        }
1063        if($avertissement2=='0'){
1064        echo "<span class=\"nbavertissement\">et $avertissement2 avertissement</span><br />";
1065        }
1066        elseif($avertissement2=='1'){
1067        echo "<span class=\"nbavertissement\">et $avertissement2 avertissement</span><br />";
1068        }
1069        else{
1070        echo "<span class=\"nbavertissement\">et $avertissement2 avertissements</span><br />";
1071        }
1072        echo "<strong>Priorité 3 :</strong> ";
1073        if($erreur3=='0'){
1074        echo "<span class=\"nberreurszero\">Il y a $erreur3 erreur </span>";
1075        }
1076        elseif($erreur3=='1'){
1077        echo "<span class=\"nberreurs\">Il y a $erreur3 erreur</span> ";
1078        }
1079        else{
1080        echo "<span class=\"nberreurs\">Il y a $erreur3 erreurs</span> ";
1081        }
1082        if($avertissement3=='0'){
1083        echo "<span class=\"nbavertissement\">et $avertissement3 avertissement</span><br />";
1084        }
1085        elseif($avertissement3=='1'){
1086        echo "<span class=\"nbavertissement\">et $avertissement3 avertissement</span><br />";
1087        }
1088        else{
1089        echo "<span class=\"nbavertissement\">et $avertissement3 avertissements</span><br />";
1090        }
1091
1092        echo "</p>";
1093        echo <<<html2
1094<p>
1095En plus des points signalés directement dans le code, veuillez prendre garde à respecter les
1096<a href="valider_site.htm">points non vérifiables automatiquement</a>.
1097</p>
1098<h2>Choisir le niveau de validation</h2>
1099<form action="index.php" id="niveau">
1100<p>
1101<label for="niveau1">Niveau 1 : </label><input type="radio" name="niveau" id="niveau1" value="niveau1" /><br /> 
1102<label for="niveau2">Niveau 2 : </label><input type="radio" name="niveau" id="niveau2" value="niveau2" /><br />
1103<label for="niveau3">Niveau 3 : </label><input type="radio" name="niveau" id="niveau3" value="niveau3" /><br />
1104<label for="avert">Que les erreurs : </label><input type="checkbox" name="avert" id="avert" value="pasAvertissement" /><br />
1105<input type="hidden" name="urlAVerif" id="urlAVerif" value="$urlAverif" />
1106<input type="submit" name="revalider" value="Revalider votre document" />
1107</p>
1108</form>
1109html2;
1110/*
1111On affiche le code avec les messages d'erreurs.
1112*/
1113        echo "<h2>Voici le code source de la page :</h2>";
1114        $resultat=eregi_replace("marqueur=&quot;invalide&quot;","",$resultat);
1115        $resultat=eregi_replace("hrefpasbon","href",$resultat);
1116        echo "<p class=\"gauche\">$resultat</p>";
1117
1118
1119/*
1120On prend l'heure de fin de traitement et on affiche
1121la durée de préparation de la page.
1122*/
1123$time_end = getmicrotime();
1124$time = $time_end - $time_start;
1125$time=number_format($time,3,","," ");
1126//echo "<p>Page générée en $time secondes</p>";
1127        }
1128        echo <<<html3
1129</body>
1130</html>
1131html3;
1132}
1133?>
Note: See TracBrowser for help on using the repository browser.