Julien Gautier 44f00dced3
CI / commits (pull_request) Successful in 3m9s
CI / scan (pull_request) Successful in 3m9s
CI / check (pull_request) Successful in 3m21s
CI / a11y (pull_request) Successful in 2m0s
CI / perf (pull_request) Successful in 6m9s
feat(portal-shell): collapse accessibility routes into one i18n-marked route
Continue ADR-0019: replace the `/accessibility` + `/accessibilite`
twin routes with a single canonical `/accessibility` path whose
content is i18n-marked in templates. The per-locale build (en/fr)
already inlines the right copy — the route data + `copy()` service
indirection is no longer needed.

What changes:

- `AccessibilityStatement` loses its `ActivatedRoute` injection, its
  `Lang` discriminator and the `COPY` lookup table. The component is
  now a plain shell over the template.
- `accessibility.html` carries the title + intro + status panel
  strings as `i18n="@@page.accessibility.*"` markers; six new
  trans-units in `messages.fr.xlf` provide the French copy
  (verbatim from the old `COPY.fr` block, kept identical so the page
  reads the same in FR).
- `app.routes.ts` declares the single canonical route and keeps
  `/accessibilite` as a `redirectTo: 'accessibility'` for backward
  compatibility with existing bookmarks. Drops the `data.lang`
  payload — no longer consumed.
- `footer.html` collapses the dual link (`Accessibility` /
  `Accessibilité`) into one i18n-marked link
  (`@@footer.accessibilityLink`). EN bundle reads "Accessibility
  statement"; FR bundle reads "Déclaration d'accessibilité".

The path stays in English across both locales for now
(`/{en,fr}/accessibility`). Translating route segments
(`/fr/declaration-d-accessibilite`) is a future refinement that needs
either a custom URL serializer or per-locale route trees — not worth
the complexity at this scale.

Specs:

- `accessibility.spec.ts` loses the `lang`-based tests and asserts
  on the rendered EN source content + the amber-panel structure
  (specs run in the source locale).
- `footer.spec.ts` asserts on the single accessibility link and the
  absence of the historical `/accessibilite` href.

Test plan / verification:

- 35/35 specs pass (was 36; one obsolete `lang` fallback test
  removed).
- Production build emits both locales; FR chunk contains "Statut",
  "Déclaration", FR intro/panel bodies, and no leftover English from
  the swept strings.
2026-05-11 20:12:12 +02:00

Documentation index

This is the entry point to all project documentation. It is maintained automatically: any addition, rename, or removal of a .md file under docs/ must be reflected here in the same change.

Conventions

  • Documentation is written in English.
  • One topic per file. Group related files into a folder when there are three or more.
  • Cross-reference with relative links so they keep working in GitHub, IDEs, and exported sites.
  • For architectural decisions, do not add them here — they belong in decisions/ as MADR 4.0.0 ADRs.

Sections

Daily development

  • development.md — repo layout, prerequisites, initial setup, daily commands, observability dev-loop (Jaeger UI, log ↔ trace correlation), dependency updates (Renovate), conventional commit cycle. Day-to-day reference for working on the project.

Architecture

  • architecture.md — cross-cutting Mermaid diagrams: C4 system context, C4 containers, Nx module boundaries, CI/CD pipeline. Single-decision diagrams (auth sequence, ERD, etc.) live inline in their ADR.

Onboarding & environment

Setup guides for new contributors:

Operations & runbooks

Empty — to be populated when we deploy.

Security, performance, accessibility

Empty — placeholders to be filled with rationale docs alongside their corresponding ADRs.

S
Description
No description provided
Readme 42 MiB
Languages
TypeScript 85.3%
JavaScript 5.4%
SCSS 4.3%
HTML 3.9%
Shell 0.8%
Other 0.3%