Releve de cinq declarations de base du HTML (doctype, attribut lang, encodage, viewport, balise title) sur la page d'accueil de 600 domaines d'organismes publics francais tires au sort dans une population de 31 904.
Sur les 466 domaines qui servent une page d'accueil en HTTPS : encodage declare 98,1 %, doctype 96,8 %, titre non vide 95,5 %, attribut lang 92,9 %, viewport 88,4 %. 134 domaines ne repondent pas.
Le releve mesure la PRESENCE d'une declaration, pas sa justesse. Le RGAA exige qu'une page declare sa langue (critere 8.3), mais douze sites publics francais declarent leur page d'accueil en lang="en", et deux utilisent fr_FR avec un tiret bas, qui n'est pas un tag de langue valide au sens BCP 47. Ces quatorze pages comptent dans les 92,9 %.
Le taux de 92,9 % est donc un plafond, pas un taux de conformite RGAA.
De meme, les 134 non-reponses ne sont pas 134 sites en panne : un domaine reserve et jamais mis en service, un service disponible en HTTP seulement, un certificat expire et un serveur momentanement lent produisent la meme ligne. La repartition exacte est : 106 erreurs de connexion (DNS absent, connexion refusee, certificat rejete), 21 codes 4xx ou 5xx, 4 delais depasses, 3 deconnexions.
Enfin, le releve porte sur UNE page par domaine, la page d'accueil. Le RGAA se juge sur un echantillon de pages par un auditeur humain : l'absence d'une declaration n'est pas une non-conformite prouvee, et ce jeu de donnees ne rend aucun verdict d'accessibilite.
Population : fichier urls.txt publie par Etalab (noms-de-domaine-organismes-secteur-public), fige au blob 2baca606a77d66b5800ac3591c45eefab2708e03, soit 35 742 URLs. Chaque nom d'hote est mis en minuscules, son prefixe www retire, puis deduplique : ce retrait AVANT deduplication fait passer de 35 742 URLs a 31 904 domaines, car une commune presente sous deux formes compterait deux fois.
Echantillon : random.Random(20260828).sample() sur la population TRIEE. Le tri est indispensable, sans lui l'ordre d'un set Python varie et la graine ne reproduit plus le meme tirage.
Collecte : une requete GET par domaine, delai de 12 s, jamais de nouvelle tentative, huit connexions simultanees au plus, User-Agent qui se nomme.
Script Python sans aucune dependance, licence MIT : https://github.com/ricco020/standards-html-sites-publics
Archive avec DOI : https://doi.org/10.5281/zenodo.22154400
Presentation et resultats detailles : https://www.vpnsmith.com/outils/standards-html-sites-publics
Couverture temporelle non renseignée
Couverture spatiale non renseignée