diff --git a/TODO.md b/TODO.md
index a2673d1..a1c9f9d 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1077,14 +1077,14 @@ Current state: **zero ARIA attributes, zero skip links, zero focus-visible style
#### 2.1.2 No keyboard trap
-- [ ] **EasyMDE editor in `pages-edit.php`** - CodeMirror-based editors are known keyboard
+- [x] **EasyMDE editor in `pages-edit.php`** - CodeMirror-based editors are known keyboard
traps; Tab inside the editor inserts a tab character rather than moving focus out. EasyMDE
provides an escape route (Escape key exits the editor). Verify this works and document
it with a visible hint below the editor (`Appuyez sur Échap pour quitter l'éditeur`).
#### 2.4.1 Bypass blocks - skip link
-- [ ] **No skip-to-main-content link exists on any page** - every page loads with focus on
+- [x] **No skip-to-main-content link exists on any page** - every page loads with focus on
the browser chrome, then Tab cycles through the nav and search bar before reaching ``.
On the home page that means tabbing through 4 nav links before reaching 24 thesis cards.
Add `Aller au contenu principal` as the
@@ -1133,14 +1133,14 @@ Current state: **zero ARIA attributes, zero skip links, zero focus-visible style
a label/metadata, not a heading. This is flagged in the semantic audit but it is also
directly a WCAG 2.4.6 failure (heading does not describe the topic of the page).
-- [ ] **`search.php` répertoire index: `