Known debt gets declared
Not everything the pipeline finds is down to the team. One example is the defect axe-core reports on the login page: it comes from Drupal core’s Olivero theme and has already been reported on drupal.org. Blocking every release because of it would make no sense, but neither would ignoring it.
That’s why the repository has a versioned register, the a11y-known-issues.json file. Each entry states the rule, the page and the element, where the defect comes from, where it was reported upstream, who is responsible for it, why it’s there and by when it must be reviewed. Here is the entry for the login page defect.
[
{
"rule": "region",
"url": "/user/login",
"target": "#primary-tabs-title",
"origin": "Drupal core (Olivero)",
"upstream": "https://drupal.org/i/3318396",
"owner": "bmeme",
"reason": "Titolo nascosto delle schede primarie fuori da un landmark; correzione attesa in core",
"review_by": "2026-12-31"
}
]
While the entry is valid, the violation appears in the log as known debt without counting against the budget. Once the review date has passed it counts again. If the defect disappears, the gate warns that the entry is obsolete, and if the register is badly written it blocks the pipeline, because a broken register is a governance error. New debt gets blocked; known debt gets managed.
The limitation is that anyone who can change the branch can also add entries. But additions show up in the merge request’s diff, which is the place to review them.