Clean up CCC tooltip, truncation, and icon-only content
## Problem/motivation
Follow-up to:
#3586258+s
Parent:
#3586298+s
**3. Tooltip, Truncation, And Icon-Only Content**
**Priority:** High to Medium
**Why group these together:** These UI patterns all expose important information
through `data-ai-tooltip`, truncation, or visual icons. They should be reviewed
as one accessibility pass.
Includes:
- Replace links in `#markup`.
- Add new-tab accessible warnings and `rel`.
- Fix CSS-only external-link indicator assumptions.
## Solution
### 3.1 Make tooltip-dependent content available without hover
**Files:**
- `templates/ai-context-pill-list.html.twig`
- `src/AiContextItemListBuilder.php`
- `src/Form/AiContextAgentsForm.php`
- `src/Entity/AiContextItem.php`
**Problem:**
Several labels, overflow values, purposes, and descriptions rely on
`data-ai-tooltip` or truncation. The site attaches `ai/ai_global`, which adds
behavior for `data-ai-tooltip`, so this is not a total absence of accessibility
support. However, the static markup is still fragile and should not rely solely
on hover/JavaScript for meaningful content.
**Recommended fix:**
- Add visually hidden full text where visible text is truncated.
- Add `aria-label` or `aria-describedby` where appropriate.
- Ensure overflow pills such as `+N` expose the full hidden list.
- Verify behavior with keyboard navigation and screen readers.
### 3.2 Add accessible names for meaningful icon-only indicators
**Files:**
- `src/AiContextItemListBuilder.php`
- related CSS/icon templates
**Problem:**
Some type/subcontext indicators are visual icons or empty spans with tooltip
text. If the icon conveys meaning, that meaning should be available to assistive
technology without requiring hover.
**Recommended fix:**
- If the icon is decorative, mark it `aria-hidden="true"` and provide nearby
text.
- If the icon conveys state/type, add visually hidden text or an accessible
label.
- Keep SVGs `focusable="false"` unless they are interactive.
---
## AI usage
- [x] AI assisted issue
issue