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

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

"correction du validateur apinc"

File size: 40.5 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                                // ne faire une alerte que le lien comporte un on(click|press|..)
605                         AND preg_match(",on(click|press)\s*=,i",$html[3])){
606                        $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>";
607                        $erreur1++;
608                        $tab++;
609                        $lien_alerte="invalide";
610                        }
611                        else{}
612/*
613On vérifie si une image bmp est utilisée.
614*/
615                        if(preg_match('`&lt;img(.*)src=&quot;(.*).bmp&quot;(.*)&gt;`i',$html[$i])){
616                        $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>";
617                        $avertissement1++;
618                        $tab++;
619                        }
620                        else{}
621                       
622                if($_GET['avert']!='pasAvertissement'){
623               
624/*
625On vérifie que la ligne contienne une balise appelant un script
626*/
627                        if(preg_match('`&lt;(object|script|embed|applet)`i',$html[$i])){
628                        $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>";
629                        $avertissement1++;
630                        $tab++;
631                        }
632                        else{}
633/*
634On vérifie que la ligne contienne une balise appelant
635une image map côté serveur.
636*/
637                        if(preg_match('`ismap`i',$html[$i])){
638                        $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>";
639                        $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>";
640                        $avertissement1=$avertissement1+2;
641                        $tab++;
642                        }
643                        else{}
644/*
645On vérifie que la ligne contienne un lien
646et que celui-ci fasse appel à du javascript.
647*/
648                        if($lien_alerte!="invalide" && preg_match('`onclick`i',$html[$i]) && preg_match('`&lt;a`i',$html[$i]) && preg_match('`#`i',$html[$i])){
649                        $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>";
650                        $avertissement1++;
651                        $tab++;
652                        }
653                        else{}
654/*
655On vérifie que la ligne contienne une balise <form>
656et si on a détecté précédemment l'usage de javascript
657sur un formulaire de la page, on affiche une alerte.
658*/
659                        if(preg_match('`&lt;form marqueur=&quot;invalide&quot;`i',$html[$i])){
660                        $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>";
661                        $avertissement1++;
662                        $tab++;
663                        }
664                        else{}
665                       
666/*
667On vérifie que la ligne contienne une balise <select>
668et si on a détecté précédemment l'usage de javascript
669sur un formulaire de la page, on affiche une alerte.
670*/
671                        if(preg_match('`&lt;select marqueur=&quot;invalide&quot;`i',$html[$i])){
672                        $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>";
673                        $avertissement1++;
674                        $tab++;
675                        }
676                        else{}
677                       
678/*
679On vérifie que la ligne contienne une balise <input>
680et si on a détecté précédemment l'usage de javascript
681sur un formulaire de la page, on affiche une alerte.
682*/
683                        if(preg_match('`&lt;input marqueur=&quot;invalide&quot;`i',$html[$i])){
684                        $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>";
685                        $avertissement1++;
686                        $tab++;
687                        }
688                        else{}
689                       
690                       
691/*
692On vérifie que la ligne contienne une balise <img>
693et un attribut alt vide.
694*/
695                        if(preg_match("`&lt;img(.*)alt\s?=\s?(''|&quot;&quot;)`i",$html[$i])){
696                        $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>";
697                        $avertissement1++;
698                        $tab++;
699                        }
700                        else{}
701}
702                }
703                else{
704                }
705               
706               
707               
708               
709               
710/*Règles de priorité 2*/
711                if($_GET['niveau']=='niveau2' or $_GET['niveau']=='niveau3' or $_GET['niveau']==''){
712/*
713Si il n'y a pas d'appel à une feuille de style externe,
714on affiche une alerte apres </head>.
715*/
716                        if($css=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
717                        $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>";
718                        $erreur2++;
719                        $tab++;
720                        }
721                        else{}
722/*
723On vérifie que la ligne contienne une balise <frame> ou <frameset>
724et si il n'y a pas de longdesc, on affiche une alerte.
725*/
726                        if(preg_match('`&lt;frame`i',$html[$i]) && !preg_match('`longdesc`',$html[$i])){
727                        $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>";
728                        $erreur2++;
729                        $tab++;
730                        }
731                        else{}
732/*
733Si il n'y a pas de doctype déclaré, on affiche une alerte
734après le </head>.
735*/
736                        if($doctype=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
737                        $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>";
738                        $erreur2++;
739                        $tab++;
740                        }
741                        else{}
742/*
743Si il n'y a pas de définition de caractères déclarée, on affiche une alerte
744après le </head>.
745*/
746                        if($charset=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
747                        $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>";
748                        $erreur2++;
749                        $tab++;
750                        }
751                        else{}
752
753/*
754Si il n'y a pas de <link rel="stylesheet" type="text/css" media="screen" href="../validateur.css" />
755<title></title> déclaré, on affiche une alerte
756après le </head>.
757*/
758                        if($title=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
759                        $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>";
760                        $erreur2++;
761                        $tab++;
762                        }
763                        else{}
764/*
765On vérifie que la ligne contienne une balise forcant
766le rafraichîssement de la page.
767*/
768                        if(preg_match("`http-equiv\s?=\s?(&quot;refresh&quot;|'refresh')`i",$html[$i]) && !preg_match('`url`i',$html[$i])){
769                        $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>";
770                        $erreur2=$erreur2+2;
771                        $tab++;
772                        //$refresh='yena';
773                        }
774                        else{}
775/*
776On vérifie que la ligne contienne une balise forcant
777la redirection de la page.
778*/
779                        if(preg_match("`http-equiv\s?=\s?(&quot;refresh&quot;|'refresh')`i",$html[$i]) && preg_match('`url`i',$html[$i])){
780                        $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>";
781                        $erreur2=$erreur2+2;
782                        $tab++;
783                        }                       
784                        else{}
785/*
786On vérifie que la ligne contienne une balise dépréciée (font) :
787*/
788                        if(preg_match("`&lt;font\s?=`i",$html[$i])){
789                        $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>";
790                        $erreur2++;
791                        $tab++;
792                        }                       
793                        else{}
794/*
795On vérifie que la ligne contienne une balise dépréciée (bgcolor) :
796*/
797                        if(preg_match("`&lt;(.*?)bgcolor\s?=(.*?)&gt;`i",$html[$i])){
798                        $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>";
799                        $erreur2++;
800                        $tab++;
801                        }                       
802                        else{}
803/*
804On vérifie que la ligne contienne une balise dépréciée (border) :
805*/
806                        if(preg_match("`&lt;(.*?)border\s?=(.*?)&gt;`i",$html[$i])){
807                        $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>";
808                        $erreur2++;
809                        $tab++;
810                        }                       
811                        else{}
812/*
813On vérifie que la ligne contienne une balise dépréciée (center) :
814*/
815                        if(preg_match("`&lt;(.*?)[^:]/s?center(.*?)&gt;`i",$html[$i])){
816                        $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>";
817                        $erreur2++;
818                        $tab++;
819                        }                       
820                        else{}
821/*
822Si aucune balise <h1> à <h6> n'est déclarée,
823on affiche une alerte juste après <body>.
824*/
825                        if($h=='yenapa' && preg_match('`&lt;body`i',$html[$i])){
826                        $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>";
827                        $erreur2++;
828                        $tab++;
829                        }
830                        else{}
831
832/*
833On vérifie si il n'y a pas un lien pas assez explicite.
834*/
835                        if(preg_match('`&lt;/a marqueur=&quot;invalide&quot;&gt;`i',$html[$i])){
836                        $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>";
837                        $erreur2++;
838                        $tab++;
839                        }
840                        else{}
841/*
842On vérifie si les lignes devant recevoir un <label> sont conformes
843en évitant les alertes sur la ligne de submit.
844*/
845                        if($label=='yenapa' && preg_match('`&lt;(input|select|textarea)`i',$html[$i]) && !preg_match('`submit`i',$html[$i])){
846                        $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>";
847                        $erreur2++;
848                        $tab++;
849                        }
850                        else{}
851/*
852On vérifie que la balise label contienne bien l'attribut for="".
853*/
854                        if(preg_match('`&lt;label`i',$html[$i]) && !preg_match('`for`i',$html[$i])){
855                        $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>";
856                        $erreur2++;
857                        $tab++;
858                        }
859                        else{}
860                       
861                       
862                       
863                if($_GET['avert']!='pasAvertissement'){
864/*
865On vérifie que les tailles sont bien définies en relatif.
866*/
867                        if(preg_match('`&lt;(table|tr|td|div|span)(.*?)px(.*?)&gt;`i',$html[$i])){
868                        $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>";
869                        $avertissement2++;
870                        $tab++;
871                        }
872                        else{}
873/*
874On vérifie si la ligne contient un appel
875pour ouvrir une nouvelle fenêtre.
876*/
877                        if(preg_match("`(window.open|window.resize|target\s?=\s?&quot;_blank&quot;|target\s?=\s?'_blank')`i",$html[$i])){
878                        $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>";
879                        $avertissement2++;
880                        $tab++;
881                        }
882                        else{}
883/*
884On vérifie si la ligne contient un gestionnaire d'événement
885ne fonctionnant qu'avec une souris.
886*/
887                        if(preg_match("`(ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout)`i",$html[$i])){
888                        $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>";
889                        $avertissement2++;
890                        $tab++;
891                        }
892                        else{}
893/*
894On vérifie si la ligne contient une balise de citation
895<q>, <cite> ou <blocquote> et on demande la confirmation
896du bon usage de celle-ci.
897*/
898                        if($citation=='2' && preg_match("`(&lt;q&gt;|&lt;cite&gt;|&lt;blockquote&gt;)`i",$html[$i])){
899                        $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>";
900                        $avertissement2++;
901                        $tab++;
902                        $citation++;
903                        }
904                        else{}
905/*
906On vérifie si la ligne contient une balise ou une extension
907démontrant l'usage de parties mobiles sur la page et on affiche
908une alerte.
909*/
910                        if(preg_match("`(\.swf|\.mng|&lt;blink|&lt;marquee)`i",$html[$i])){
911                        $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>";
912                        $avertissement2++;
913                        $tab++;
914                        }
915                        else{}
916                       
917/*
918On vérifie si la ligne contient une définition de style
919qui pourrait être mis dans une feuille externe.
920*/
921                        if($stycss==0 && preg_match("`style\s?=\s?('|&quot;)`i",$html[$i])){
922                        $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>";
923                        $avertissement2++;
924                        $tab++;
925                        $stycss++;
926                        }
927                        else{}
928/*
929On vérifie si la ligne contient une définition de style
930qui pourrait être mis dans une feuille externe.
931*/
932                        if($css=='yenapa' && preg_match("`class\s?=`i",$html[$i])){
933                        $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>";
934                        $avertissement2++;
935                        $tab++;
936                        }
937                        else{}
938/*
939Si on a détecté une erreur dans l'imbrication des entête <h1 à 6>,
940on affiche une alerte juste après <body>
941*/
942                        if($hdes=='vrai' && preg_match('`&lt;body`i',$html[$i])){
943                        $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>";
944                        $avertissement2++;
945                        $tab++;
946                        }
947                        else{}
948                }
949                }
950                else{
951                }
952               
953               
954               
955/*Règles de priorité 3*/
956                if($_GET['niveau']=='niveau3' or $_GET['niveau']==''){
957                /*Règles de priorité 3*/
958               
959/*
960Si le document ne contient pas d'accesskey, on met
961une alerte juste après <body>
962*/
963        if($accesskey=='yenapa' && preg_match('`&lt;body`i',$html[$i])){
964        $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>";
965        $erreur3++;
966        $tab++;
967        }
968        else{}
969
970/*
971On vérifie si la langue du document a bien été
972déclarée sinon on met une alerte.
973*/
974        if($lang=='yenapa' && preg_match('`&lt;/head`i',$html[$i])){
975        $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>";
976        $erreur3++;
977        $tab++;
978        }                       
979        else{}
980
981/*
982On vérifie si la ligne contient une image réactive
983et on affiche une alerte pour les liens textes en doublure.
984*/
985                        if(preg_match('`hrefpasbon`i',$html[$i])){
986                        $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>";
987                        $erreur3++;
988                        $tab++;
989                        }
990                        else{}
991
992
993
994                if($_GET['avert']!='pasAvertissement'){
995
996/*
997Si la page ne contient aucun tabindex, on affiche une alerte
998juste après <body>.
999*/
1000                        if($tabindex=='yenapa' && preg_match('`&lt;body`i',$html[$i])){
1001                        $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>";
1002                        $avertissement3++;
1003                        $tab++;
1004                        }
1005                        else{}
1006/*
1007On vérifie si au moins un tabindex est déclaré et si oui
1008si toutes les balises le requérant en ont bien un de déclaré.
1009*/
1010                        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])){
1011                        $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>";
1012                        $avertissement3++;
1013                        $tabindexPasPartout = "houi";
1014                        $tab++;
1015                        }
1016                        else{}
1017
1018                }
1019                }
1020        }
1021        echo "</p>";
1022
1023/*
1024On affiche le nb d'erreurs et d'avertissements
1025*/
1026
1027        if($erreur1=='0' && $erreur2=='0' && $erreur3=='0'){
1028        echo "<p class=\"felicitation\">";     
1029        echo "<strong>Bravo ! </strong>il y n'y a pas d'erreurs de détectées sur votre page, prenez tout de
1030        même le temps de vérifier les éventuels avertissements et de valider les points non vérifiables
1031        automatiquement.";
1032        echo "</p>";   
1033        }
1034
1035        echo "<p>";
1036        echo "<strong>Priorité 1 :</strong> ";
1037        if($erreur1=='0'){
1038        echo "<span class=\"nberreurszero\">Il y a $erreur1 erreur </span>";
1039        }
1040        elseif($erreur1=='1'){
1041        echo "<span class=\"nberreurs\">Il y a $erreur1 erreur</span> ";
1042        }
1043        else{
1044        echo "<span class=\"nberreurs\">Il y a $erreur1 erreurs</span> ";
1045        }
1046        if($avertissement1=='0'){
1047        echo "<span class=\"nbavertissement\">et $avertissement1 avertissement</span><br />";
1048        }
1049        elseif($avertissement1=='1'){
1050        echo "<span class=\"nbavertissement\">et $avertissement1 avertissement</span><br />";
1051        }
1052        else{
1053        echo "<span class=\"nbavertissement\">et $avertissement1 avertissements</span><br />";
1054        }
1055        echo "<strong>Priorité 2 :</strong> ";
1056        if($erreur2=='0'){
1057        echo "<span class=\"nberreurszero\">Il y a $erreur2 erreur </span>";
1058        }
1059        elseif($erreur2=='1'){
1060        echo "<span class=\"nberreurs\">Il y a $erreur2 erreur</span> ";
1061        }
1062        else{
1063        echo "<span class=\"nberreurs\">Il y a $erreur2 erreurs</span> ";
1064        }
1065        if($avertissement2=='0'){
1066        echo "<span class=\"nbavertissement\">et $avertissement2 avertissement</span><br />";
1067        }
1068        elseif($avertissement2=='1'){
1069        echo "<span class=\"nbavertissement\">et $avertissement2 avertissement</span><br />";
1070        }
1071        else{
1072        echo "<span class=\"nbavertissement\">et $avertissement2 avertissements</span><br />";
1073        }
1074        echo "<strong>Priorité 3 :</strong> ";
1075        if($erreur3=='0'){
1076        echo "<span class=\"nberreurszero\">Il y a $erreur3 erreur </span>";
1077        }
1078        elseif($erreur3=='1'){
1079        echo "<span class=\"nberreurs\">Il y a $erreur3 erreur</span> ";
1080        }
1081        else{
1082        echo "<span class=\"nberreurs\">Il y a $erreur3 erreurs</span> ";
1083        }
1084        if($avertissement3=='0'){
1085        echo "<span class=\"nbavertissement\">et $avertissement3 avertissement</span><br />";
1086        }
1087        elseif($avertissement3=='1'){
1088        echo "<span class=\"nbavertissement\">et $avertissement3 avertissement</span><br />";
1089        }
1090        else{
1091        echo "<span class=\"nbavertissement\">et $avertissement3 avertissements</span><br />";
1092        }
1093
1094        echo "</p>";
1095        echo <<<html2
1096<p>
1097En plus des points signalés directement dans le code, veuillez prendre garde à respecter les
1098<a href="valider_site.htm">points non vérifiables automatiquement</a>.
1099</p>
1100<h2>Choisir le niveau de validation</h2>
1101<form action="index.php" id="niveau">
1102<p>
1103<label for="niveau1">Niveau 1 : </label><input type="radio" name="niveau" id="niveau1" value="niveau1" /><br /> 
1104<label for="niveau2">Niveau 2 : </label><input type="radio" name="niveau" id="niveau2" value="niveau2" /><br />
1105<label for="niveau3">Niveau 3 : </label><input type="radio" name="niveau" id="niveau3" value="niveau3" /><br />
1106<label for="avert">Que les erreurs : </label><input type="checkbox" name="avert" id="avert" value="pasAvertissement" /><br />
1107<input type="hidden" name="urlAVerif" id="urlAVerif" value="$urlAverif" />
1108<input type="submit" name="revalider" value="Revalider votre document" />
1109</p>
1110</form>
1111html2;
1112/*
1113On affiche le code avec les messages d'erreurs.
1114*/
1115        echo "<h2>Voici le code source de la page :</h2>";
1116        $resultat=eregi_replace("marqueur=&quot;invalide&quot;","",$resultat);
1117        $resultat=eregi_replace("hrefpasbon","href",$resultat);
1118        echo "<p class=\"gauche\">$resultat</p>";
1119
1120
1121/*
1122On prend l'heure de fin de traitement et on affiche
1123la durée de préparation de la page.
1124*/
1125$time_end = getmicrotime();
1126$time = $time_end - $time_start;
1127$time=number_format($time,3,","," ");
1128//echo "<p>Page générée en $time secondes</p>";
1129        }
1130        echo <<<html3
1131</body>
1132</html>
1133html3;
1134}
1135?>
Note: See TracBrowser for help on using the repository browser.