Déclaration d'accessibilité
Dernière mise à jour : 7 mars 2026
Préambule
Le cabinet Quentin MASSON - Ostéopathe D.O s'engage à rendre son site accessible, conformément à l'article 47 de la loi n° 2005-102 du 11 février 2005 pour l'égalité des droits et des chances, la participation et la citoyenneté des personnes handicapées, et à son décret d'application n° 2019-768 du 24 juillet 2019.
La présente déclaration d'accessibilité s'applique au site quentin-masson-osteo.fr.
1. État de conformité
Le site quentin-masson-osteo.fr est partiellement conforme au Référentiel Général d'Amélioration de l'Accessibilité (RGAA) version 4.1, établi par la direction interministérielle du numérique (DINUM), et aux Web Content Accessibility Guidelines (WCAG) 2.1 niveau AA du W3C, avec un taux de conformité de 100 % sur les critères évalués (26 critères conformes sur 26 évalués, dont l'intégralité du thème 11 — formulaires).
Le statut officiel RGAA reste « partiellement conforme » : ce statut s'applique à tout site n'ayant pas atteint 100 % de conformité sur l'intégralité des critères applicables. Les critères non évalués concernent les contenus tiers (module Doctolib) qui échappent au contrôle de l'éditeur.
2. Résultats de l'audit
Le site a fait l'objet d'une auto-évaluation technique interne conduite par l'équipe de développement en mars 2026.
Cette évaluation n'a pas suivi la méthode officielle d'audit RGAA (échantillonnage représentatif de pages avec grille de vérification complète réalisée par un auditeur externe). Elle constitue une analyse technique indicative portant sur la structure, la navigation, les composants communs, les formulaires et les métadonnées du site.
Synthèse des résultats RGAA 4.1
| Statut | Nombre de critères |
|---|---|
| Conformes | 26 |
| Partiellement conformes | 0 |
| Non conformes | 0 |
| Non évalués (contenus tiers) | nc |
Sur 26 critères évalués : 26 conformes, soit un taux de conformité de 100 % sur les critères évalués. Ce taux inclut désormais l'évaluation complète du formulaire de contact (thème 11 RGAA), conforme sur l'ensemble des sous-critères vérifiés.
Technologies d'assistance utilisées pour les tests
- NVDA avec Mozilla Firefox (Windows)
- VoiceOver avec Safari (macOS / iOS)
Pages auditées
- Page d'accueil
- Page À propos
- Page Contact
- Page Cabinet – Aix-en-Provence
- Page Cabinet – Les Milles
- Page Cabinet – Carry-le-Rouet
- Mentions légales
- Politique de confidentialité
- Politique de gestion des cookies
- Déclaration d'accessibilité
- Plan du site
3. Contenus accessibles
Navigation au clavier
- L'ensemble du site est utilisable au clavier, sans recours à la souris.
- Des liens d'évitement permettent d'accéder directement à la navigation, au contenu principal ou au pied de page. Ces liens ferment automatiquement les menus ouverts et déplacent le focus vers la zone cible.
- Les menus déroulants s'ouvrent et se ferment au clavier (touches Flèches, Tab, Shift+Tab et Échap). La navigation circulaire est supportée entre les items de chaque sous-menu.
- La pagination clavier dans les menus mobiles est gérée explicitement : Tab depuis le bouton déclencheur déplace le focus vers le premier lien du sous-menu ; Shift+Tab depuis le premier lien revient au déclencheur.
- Le carrousel photo est navigable au clavier : les touches Flèches gauche/droite changent de diapositive (avec
preventDefaultciblé sur ces seules touches), les boutons Précédent/Suivant et les points de navigation sont focusables et activables.
Formulaire de contact
- Chaque champ du formulaire dispose d'une étiquette explicite (élément
<label>) liée parhtmlForetidgénérés viauseId(), garantissant l'unicité des identifiants en rendu côté serveur et côté client. - Les champs obligatoires sont signalés par l'attribut
required,aria-required="true"et un indicateur visuel*masqué aux technologies d'assistance (aria-hidden="true"). Une note explicative « Champs obligatoires » est présente en bas de formulaire. - Les champs facultatifs (téléphone, cabinet) sont explicitement libellés
(facultatif). - En cas d'erreur, chaque champ reçoit
aria-invalid="true"et son message d'erreur est associé viaaria-describedby. Un banner de statut global (role="alert",aria-live="assertive") reçoit le focus programmatiquement après la soumission. - L'attribut
autoCompleteest renseigné sur tous les champs personnels :given-name,family-name,email,tel. - Un champ anti-spam (honeypot) est totalement masqué aux technologies d'assistance via
aria-hidden="true",tabIndex={-1}etdisplay:none. - Le consentement RGPD est recueilli via une case à cocher obligatoire avec un lien vers la politique de confidentialité.
- Le bouton de soumission expose un état de chargement avec spinner et
aria-disabledpendant l'envoi, empêchant les soumissions multiples.
Lecteurs d'écran
- La structure sémantique de la page est correctement balisée : les zones principales (navigation, contenu principal, pied de page) sont identifiables par les technologies d'assistance via les rôles ARIA et les éléments HTML5 natifs (
header,nav,main,footer). - Les images et icônes décoratives sont masquées aux lecteurs d'écran (attribut
aria-hidden). - Toutes les images informatives (photos de cabinet, diplômes, portrait du thérapeute) disposent d'un texte alternatif descriptif centralisé dans la configuration du site.
- La langue principale de la page est déclarée en français (attribut
lang="fr"). - La FAQ utilise des boutons avec
aria-expandedet des régions avecrole="region"etaria-labelledbypointant vers le bouton déclencheur. - Les avis patients sont balisés avec
<blockquote>et<cite>. Les étoiles de notation comportent unaria-labeldécrivant la note sur 5. - Les horaires d'ouverture des cabinets utilisent une liste de définitions sémantique (
<dl>,<dt>,<dd>) associant chaque jour à ses plages horaires. - Un fil d'Ariane (
<nav aria-label="Fil d'Ariane">) est présent sur toutes les pages secondaires, avecaria-current="page"sur l'élément courant et les séparateurs masqués aux technologies d'assistance. - Les données structurées JSON-LD (Schema.org) sont présentes dans le layout :
MedicalOrganization,Person,LocalBusiness×3,FAQPage,AggregateRatingetBreadcrumbListsur toutes les pages secondaires.
Navigation mobile
- Le bouton de menu mobile (« burger ») expose son état ouvert/fermé aux technologies d'assistance (attribut
aria-expanded). - Lorsque le menu est ouvert, le contenu principal et le pied de page sont rendus inertes (
inert+aria-hidden="true"), empêchant la navigation au clavier en dehors du panneau ouvert. - Le focus est restitué au bouton burger à la fermeture du menu (délai de 100 ms pour laisser l'animation se terminer).
Gestion du défilement et du focus
- Lors d'un changement de route (navigation interne), la page défile automatiquement en haut sans déplacer le focus sur un élément non interactif. Les utilisateurs de lecteurs d'écran bénéficient de la mise à jour du titre de la page et du mécanisme des liens d'évitement.
- La thématisation de la navigation (thème sombre/clair) repose sur un
IntersectionObserversur les sectionsdata-nav-themeet se réinitialise à chaque changement de route.
Liens et boutons
- Tous les liens ouvrant une nouvelle fenêtre ou un nouvel onglet sont accompagnés d'une mention explicite dans leur intitulé accessible (« ouvre dans un nouvel onglet »).
- Les boutons dont l'intitulé visible est générique (« Plus de détails », « Prendre rendez-vous ») sont complétés par un
aria-labelcontextuel précisant le cabinet ou le service concerné. - Les numéros de téléphone et adresses email sont des liens cliquables (
tel:,mailto:) assortis d'un libellé explicite pour les lecteurs d'écran.
SEO et référencement local
- Les schémas
LocalBusinessrespectent les champs officiels Schema.org :streetAddress,addressLocality,addressRegion,addressCountry. - Le numéro de téléphone est fourni au format E.164 international.
- Le schéma
Personréférence l'ensemble des formations et diplômes du thérapeute via les propriétésalumniOfethasCredential.
4. Contenus non accessibles
Les éléments suivants présentent des limitations identifiées ou n'ont pas encore été évalués :
- Typage de l'attribut
inert— sous React 18, l'attributinertn'est pas inclus dans les types JSX natifs. Le composantMobileMenul'applique via un spread conditionnel qui fonctionne en runtime mais peut déclencher un avertissement TypeScript selon la configuration du projet (critère RGAA 8.2 / WCAG 4.1.1). Ce point sera résolu lors de la migration vers React 19. - Animation Three.js — la décoration 3D de la page d'accueil (
SpineDecoration) est chargée de façon synchrone. Cela peut augmenter le temps de chargement perçu sur connexions lentes. Un chargement différé est prévu. - Contenus tiers — le module de prise de rendez-vous en ligne (Doctolib) relève de la responsabilité de son éditeur et échappe au contrôle direct de l'éditeur du présent site.
5. Plan d'amélioration
Les actions suivantes sont programmées :
- Mise en lazy loading de la décoration Three.js (
SpineDecoration) pour améliorer les performances sur connexions lentes. - Ajout d'une déclaration de type globale pour l'attribut
inertsous React 18, en attendant la migration vers React 19 (critère RGAA 8.2). - Tests complémentaires avec des lecteurs d'écran réels (NVDA, VoiceOver) et, si possible, avec des utilisateurs en situation de handicap.
- Mise à jour de la présente déclaration après chaque évaluation complémentaire.
6. Signaler un problème d'accessibilité
Vous rencontrez une difficulté pour accéder à un contenu ou utiliser une fonctionnalité du site ? Nous vous invitons à nous le signaler afin que nous puissions y remédier.
Merci de préciser la page concernée, la nature du problème rencontré, le navigateur et la version utilisés, ainsi que, le cas échéant, la technologie d'assistance employée. Délai de réponse : 7 jours ouvrés.
Nous contacter
7. Voies de recours
Si vous avez signalé un défaut d'accessibilité et que vous n'avez pas obtenu de réponse satisfaisante dans un délai de 2 mois, vous pouvez saisir le Défenseur des droits :
8. Besoin d'aide ?
Si vous éprouvez des difficultés à utiliser le site ou à effectuer une prise de rendez-vous en ligne, notre équipe est disponible par téléphone pour vous accompagner :