Accessibility · RGAA 4.1.2

You have the audit. What you're missing is someone to fix it.

I don't compete with your auditor. I take their findings list and deliver merged pull requests.

Two ways in

You already have an audit

Access42, Temesis, Ideance, Adimeo, Boscop, Axénum, or an internal audit — I implement. Send me the list of non-conformities; I turn it into merged pull requests in your React / Next.js code.

You're an audit firm

Subcontracted React / Next.js remediation. You sign the audit and the déclaration d'accessibilité (accessibility statement); I close the findings in the code, under your brand or mine. You stay the auditor — I'm not in your market, I'm your implementation subcontractor.

The three findings I close

The modal no one can escape

No focus trap, focus not restored on close, Escape inert, background not `inert`, role="dialog" / aria-modal missing. One primitive fixed usually closes ~15 instances.

Detection
Mouse unplugged, open it, Tab ×8, watch where you land.
Effort
2–4 days

The checkout that demands a mouse

A `<div>` standing in for a select, labels associated visually only, errors with no aria-describedby and no live region — the screen-reader user submits and nothing is announced.

Detection
Place an order with the keyboard alone, then with a screen reader. Time it.
Effort
4–8 days

The SPA that announces nothing

Next.js client-side navigation: document title not updated, focus left on the unmounted link or dropped silently onto `<body>`, a skip link that no longer resolves after routing. A generalist auditor writes “page title not updated — non-conformity” and stops, because fixing it means understanding the App Router render cycle. That's exactly the step most firms don't climb — and the one I deliver.

Detection
Navigate between two routes by keyboard, listen to the screen reader on page change, check the document title and the focus target after routing.
Effort
2–3 days

The deliverable format

Every deliverable opens on this header

SCOPE
the templates and journeys actually covered.
REFERENTIAL
RGAA 4.1.2 (France's accessibility referential, 106 criteria), aligned on WCAG 2.1 AA; EN 301 549 v3.2.1 as the harmonised standard the directive points to.
SAMPLE
sample templates, per the DINUM (French state digital-services agency) method.
DATE & ENVIRONMENT
browser, assistive technology, versions.
METHOD
keyboard, screen reader, focus, forms — manual review, not an automated-scanner dump.

Section A — confirmed non-conformities

Binary, reproducible, tied to a numbered RGAA criterion, evidence artefact, remediation PR, re-test result.

Section B — risk observations

Depends on a judgement call, flagged as contested, its case-by-case source cited, ending with “legal characterisation is for your counsel”.

Section B is never promoted into Section A.

Performance deepening (INP, main thread): +2–3 days, same daily rate.

Sanctions

Administrative control

The DGCCRF (France's consumer-protection and fraud-control authority) controls online-commerce services. Article R. 451-4 of the code de la consommation (French Consumer Code), created by décret n° 2023-931 of 9 October 2023 (opens in new tab) under article L. 412-13 (opens in new tab) and in force since 28 June 2025, sets the fine for fifth-class petty offences (contraventions de la 5e classe): €1,500 for a natural person and €7,500 for a legal person (art. 131-13 and 131-41 of the code pénal (opens in new tab); figures relayed by the ministère de la Transition écologique). The operators' obligations (art. D. 412-49 to D. 412-62) (opens in new tab) distinguish manufacturer, importer, distributor and service provider. This regime is the one for commercial services. The bodies covered by article 47 of loi n° 2005-102 come under a different text — article 47-1 of that loi (opens in new tab) — whose enforcing authority and amounts differ. Determining which one concerns you is for your counsel.

Article R. 451-4 lists distinct offences by the operator's role (manufacturer, importer, distributor, service provider) — several may be recorded separately.

Repeat offences are punished under articles 132-11 and 132-15 of the code pénal.

Administrative injunction and astreinte

Remediation injunctions may be issued and coupled with an astreinte (daily penalty) capped at €3,000 per day, the total liquidation of which may not exceed €300,000 (article L. 521-1 of the code de la consommation (opens in new tab), in force since 2 July 2025). The astreinte runs from the day following expiry of the deadline set.

The judicial route

TJ Caen, ordonnance de référé (interim order) of 4 June 2026 — apiDV and Droit Pluriel (with the support of Intérêt à Agir) v. Carrefour France, on the basis of article L. 412-13 of the code de la consommation (opens in new tab) (French Consumer Code): remediation of carrefour.fr and the mobile application ordered within six months, under an astreinte (daily penalty) of €500 per day of delay, plus €10,000 in damages. The 71% conformity rate Carrefour argued was set aside. secondary sourceamounts reported by the specialist press and by the claimant associations; the ordonnance has not been published to date

“the e-commerce site concerned cannot be only a little accessible — it must be so entirely”

TJ Caen, ordonnance de référé of 4 June 2026

TJ Lille, 5 May 2026 — the same associations dismissed against Auchan's e-commerce subsidiary, on a threshold question; on appeal before the cour d'appel de Douai (Douai Court of Appeal). The case law is split: no position is taken here.

Contested, unsettled case law: these decisions do not determine your situation. Legal characterisation is for your counsel.

Track record

18 months at Storengy (ENGIE Group): rebuilt critical features of an enterprise application used daily by hundreds of users, cutting page-load and form-submission latency.

Case study →

I had the pleasure of working with Mickael at Storengy (Engie Group), where he quickly proved to be an outstanding addition to our development team.

From day one, Mickael integrated seamlessly into the team. His adaptability and collaborative mindset made it feel like he had been with us for years. Beyond his excellent interpersonal skills, his technical abilities are truly impressive — he is a versatile full-stack developer with a particularly strong expertise on the frontend side, and a remarkably broad command of modern web technologies.

What sets Mickael apart is the rare combination of autonomy, initiative, and speed without ever compromising on quality. He delivers fast, and he delivers well. I entrusted him with significant responsibilities on a key project, and he rose to the occasion — the application he worked on is now used daily by hundreds of users across the organization.

He also stands out for his ability to truly understand client expectations and translate them into creative, pragmatic solutions that hit the mark. On top of that, he is always eager to learn and genuinely committed to sharing knowledge with his teammates, making everyone around him better in the process.

I wholeheartedly recommend Mickael. He is an undeniable asset for any team tackling serious projects that demand both top-tier technical skills and strong human qualities. Any organization would be lucky to have him.

Xavier Pourrier
Xavier PourrierStorengyProject Director and CTO

The boundary of my responsibility

Whether the EAA applies to your organisation, and from what date, is a legal determination for your counsel — not something this page decides.

I document observed behaviour, on a named date, against a named referential (RGAA 4.1.2, Regulation (EU) 2024/1689 Art. 50, CNIL délibération 2020-091). I do not characterise conformity and I sign no declaration — the déclaration d'accessibilité is signed by the publisher, on the DINUM template.

Engagement under obligation de moyens, not obligation de résultat. This is not legal advice; legal characterisation is for your counsel.

Send me your auditor's findings list.

I'll tell you which ones I close in a single PR.

Send the findings list

Prefer to talk it through? Book a 30-min call (opens in new tab)