# agent duplicate-id rename broke label associations - how to fix it

## TL;DR

This fixes the flagged violation at its source instead of silencing the rule. The agent renamed duplicate ids but broke label associations because for and aria-labelledby still point at the old ids. Follow the steps, re-run the scan, and gate the rule in CI so it stays fixed.

## The error, verbatim

```text
agent duplicate-id rename broke label associations
```

## Fix it step by step

### Step 1

Rename duplicate ids and update every reference atomically: for attributes, aria-labelledby, aria-describedby, and JS selectors.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 2

Do the rename as one codemod pass, not file-by-file, so references cannot drift.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 3

Re-run axe duplicate-id and re-test label associations with a screen reader.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 4

Add a duplicate-id lint to CI so the agent never has to bulk-rename again.

Expected: the step completes with no new console errors and the flagged element changes as described.

## When to use this skill

- Your scan report lists this exact rule or failure
- You are clearing automated accessibility failures before release or audit
- A CI accessibility gate is red because of this item

## When NOT to use this skill

- Renaming an id without its references is worse than the duplicate.
- The issue only appears in manual screen-reader testing and no automated rule flags it
- You are doing a full manual WCAG audit; this skill covers one automated check

## Compatibility

Agent workflow guardrail; verify with axe duplicate-id.

## Variant phrasings

### agent duplicate id rename broke label associations

Same underlying issue and the same fix. Searchers phrase it different ways; the remediation does not change.

## Why it happens

The agent renamed duplicate ids but broke label associations because for and aria-labelledby still point at the old ids. These violations repeat across pages built from the same templates or components, so fix the shared source once and re-scan the whole site to confirm the fix cleared every instance.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_ZbjKKvl0fearHfuKuEilcA
