Summary
Filter toggle buttons in ExecutionFilters and similar components lack the aria-pressed attribute, making it unclear to screen reader users which filters are currently active.
Current State
- File:
control-plane/web/client/src/components/ExecutionFilters.tsx
- Issue: Filter buttons don't indicate pressed/selected state to assistive technologies
Tasks
- Add
aria-pressed attribute to filter toggle buttons
- Set
aria-pressed="true" when filter is active, aria-pressed="false" when inactive
- Ensure visual state matches ARIA state
Example Fix
// Before
<Button
variant={isActive ? "default" : "outline"}
onClick={() => toggleFilter(filterKey)}
>
{filterLabel}
</Button>
// After
<Button
variant={isActive ? "default" : "outline"}
onClick={() => toggleFilter(filterKey)}
aria-pressed={isActive}
>
{filterLabel}
</Button>
Related Components
Check and update all filter toggle buttons in:
ExecutionFilters.tsx
NodeFilters.tsx (if exists)
- Any other filter components
Acceptance Criteria
Files
control-plane/web/client/src/components/ExecutionFilters.tsx
- Other filter components as applicable
Using AI to solve this issue? Read our AI-Assisted Contributions guide for testing requirements, prompt strategies, and common pitfalls to avoid.
Summary
Filter toggle buttons in ExecutionFilters and similar components lack the
aria-pressedattribute, making it unclear to screen reader users which filters are currently active.Current State
control-plane/web/client/src/components/ExecutionFilters.tsxTasks
aria-pressedattribute to filter toggle buttonsaria-pressed="true"when filter is active,aria-pressed="false"when inactiveExample Fix
Related Components
Check and update all filter toggle buttons in:
ExecutionFilters.tsxNodeFilters.tsx(if exists)Acceptance Criteria
aria-pressedattributearia-pressedvalue matches visual active statenpm run lint)Files
control-plane/web/client/src/components/ExecutionFilters.tsx