docs: add RD-37 — five a11y suppressions name a ticket that closed

Found while measuring RD-30, which archives the directory these references
point into.

Five stories disable the axe check with the reason "WP-11 reworks this
markup". WP-11 is done, and so is WP-13, the gap register it handed the
remainder to. No open ticket owns the defect, so the rule that a disabled
check must name the ticket that removes it holds only in letter.

The defect ships: `app-choice-link` and `app-aanvraag-block` put a component
host between the keuzelijst `<ul>` and its `<li>`, which breaks axe's
list/listitem rule. WP-11 solved the same problem for `application-link` by
making the host be the `<li>`, but `atomic-design.mdx` documents the current
split as deliberate — so whether that move fights the vendored CSS is the
question RD-37 must answer first.

Sequenced before RD-30.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
eho
2026-09-05 08:37:26 +02:00
co-authored by Claude Opus 5
parent b6bd7eea5a
commit 551cabce5e
2 changed files with 35 additions and 0 deletions
+28
View File
@@ -787,6 +787,34 @@ than ESLint: it is where every other boundary rule lives and it emits the archit
## Phase 5 — Fix the docs that describe this flow
0. **First, RD-37 — five accessibility suppressions point at a ticket that closed.** Found
while measuring RD-30, because archiving `backlog/` would bury the reference.
Five stories carry `a11y: { disable: true }` whose reason reads "WP-11 (CIBG markup
fidelity) reworks this markup" — future tense. **WP-11 is `Status: done`**, and so is
WP-13, the gap register it hands the remainder to. No open ticket owns the defect, so the
README's rule ("no check disabled without a reference to the ticket that removes it") holds
only in letter.
The defect is real and shipped, not story-only: `app-choice-link` and `app-aanvraag-block`
render a component host between the keuzelijst `<ul>` and its `<li>`, which breaks axe's
`list`/`listitem` rule for assistive technology. `display: contents` does not fix it.
WP-11 solved exactly this for `application-link` by making the host **be** the `<li>`
(`selector: 'li[app-application-link]'`), which is axe-clean today. The same move is
available here — but it is **not** obviously correct, and that is why this is a ticket
rather than a one-line change: `atomic-design.mdx:113` documents the current split as
deliberate, "different list/host semantics … Merging would fight the vendored CSS".
So RD-37 must decide one question before it writes any code: **does giving `choice-link` and
`aanvraag-block` an `li[…]` attribute host still match the vendored CIBG keuzelijst CSS?**
If yes, convert both, delete the five suppressions, and correct `atomic-design.mdx`'s claim.
If no, the honest outcome is a new open ticket named in five rewritten reasons — not a
pointer into an archive.
**Sequence RD-37 before RD-30**, so the archive move does not have to rewrite five paths
that are about to disappear.
1. **Archive the finished backlog.** `git mv docs/project/backlog` and
`docs/project/refactor-backlog-setup` under `docs/project/archive/`. Verified: **all 74
WP files are `Status: done`**; the two trees are 6,982 + 9,318 = **16,300 of the docs
+7
View File
@@ -131,6 +131,7 @@ two. Note that RD-15 exists because 22 abandoned agent worktrees are still on di
| RD-34 | _(optional)_ `NO_SUBORGS`/`NO_TABLES` become `RemoteData.Empty` | 11 | | todo |
| RD-35 | _(optional, last, alone)_ upload `type:` discriminant to `tag:` | 27 | | todo |
| RD-36 | `ui/dashboard/``ui/overzicht-secties/` + 2 stale `dashboard.page` paths | 04 | yes | todo |
| RD-37 | **a11y:** 5 suppressions name a closed ticket — decide the `li[…]` host | 01 | yes | todo |
The ID order already respects every dependency, so it is the recommended running order.
@@ -142,6 +143,12 @@ four import lines, and it collides with nothing else in the table — RD-27's mo
`libs/shared/src/ui/`. Pull it forward into any short session. It is numbered last only because
it was added after RD-04 shipped.
**RD-37 must run before RD-30**, despite its number. RD-30 archives `docs/project/backlog/`,
and five of the paths it would have to rewrite point at `WP-11-markup-fidelity.md` from
accessibility suppressions that RD-37 either deletes or re-aims. Doing RD-30 first means
rewriting five paths that are about to change again — and enshrining a promise nobody owns.
See PLAN.md Phase 5, item 0.
**Two ordering traps the table encodes.** RD-01 must precede RD-30, because RD-01 copies its
ticket template out of the directory that RD-30 archives. And four tickets edit the same two
documents in different sections — RD-09 rewrites the submit-idiom teaching, while RD-31 and