Clean up CCC JavaScript filter feedback
## Problem/motivation
Follow-up to:
#3586258+s
Parent:
#3586298+s
**4. JavaScript Filter Feedback**
**Priority:** High
**Why group these together:** Both filters implement similar client-side
table filtering and should expose the same accessible feedback pattern.
Includes:
- Pill-list overflow accessible text.
- Truncated description accessible text.
- Icon-only indicators.
- Manual assistive technology check for `ai/ai_global` tooltip behavior.
## Solution
### 4.1 Announce filtered result counts
**Files:**
- `js/ai_context_items_filter.js`
- `js/ai_context_agents.js`
**Problem:**
Both scripts update table rows with `row.style.display`, but neither announces
that the visible result set changed. Screen-reader users may not know filtering
did anything.
**Recommended fix:**
- After filtering, count visible rows.
- Call `Drupal.announce()` with a concise status message:
- “3 context items shown.”
- “No agents match the current filter.”
- Keep messages specific to the filtered table.
- Add or update JavaScript/functional JavaScript test coverage if practical.
### 4.2 Review AJAX reattachment behavior
**Files:**
- `js/ai_context_items_filter.js`
- `js/ai_context_agents.js`
**Problem:**
The behavior root is guarded by `once()`, which is good. If AJAX replaces only
child inputs inside an already-onced root, event listeners could be dropped.
This is an edge-case concern rather than a confirmed current bug.
**Recommended fix:**
- Check whether these tables/toolbars are replaced via AJAX in current UI.
- If they are, guard listeners closer to the input elements or re-run setup
safely after replacement.
---
## AI usage
- [x] AI assisted issue
issue