diff --git a/src/app/(protected)/workorders/_components/list/advanced-search/adv-parity-filter-sections.tsx b/src/app/(protected)/workorders/_components/list/advanced-search/adv-parity-filter-sections.tsx
index 199cfcb8..dc2f1a8e 100644
--- a/src/app/(protected)/workorders/_components/list/advanced-search/adv-parity-filter-sections.tsx
+++ b/src/app/(protected)/workorders/_components/list/advanced-search/adv-parity-filter-sections.tsx
@@ -64,6 +64,7 @@ function IndicatorPill({
onClick={onClick}
data-indicator={kind}
data-selected={selected ? "true" : "false"}
+ aria-pressed={selected}
className="inline-flex items-center gap-1.5"
style={{
height: 26,
diff --git a/src/components/ui/dot-toggle-pill.tsx b/src/components/ui/dot-toggle-pill.tsx
index cd68e7c0..e01f3cad 100644
--- a/src/components/ui/dot-toggle-pill.tsx
+++ b/src/components/ui/dot-toggle-pill.tsx
@@ -37,6 +37,7 @@ export function DotTogglePill({
)}
style={{ ...selectedStyle, ...style }}
{...props}
+ aria-pressed={selected}
>
{children}
diff --git a/src/components/ui/toggle-segment.tsx b/src/components/ui/toggle-segment.tsx
index 2a2e2e9f..04c399f2 100644
--- a/src/components/ui/toggle-segment.tsx
+++ b/src/components/ui/toggle-segment.tsx
@@ -28,6 +28,7 @@ export function ToggleSegment({
className,
)}
{...props}
+ aria-pressed={selected}
>
{children}
diff --git a/src/test/app/(protected)/workorders/work-orders-advanced-search-wiring.test.tsx b/src/test/app/(protected)/workorders/work-orders-advanced-search-wiring.test.tsx
index e1339afd..5e604ee8 100644
--- a/src/test/app/(protected)/workorders/work-orders-advanced-search-wiring.test.tsx
+++ b/src/test/app/(protected)/workorders/work-orders-advanced-search-wiring.test.tsx
@@ -234,6 +234,28 @@ describe("WorkOrders Advanced Search page wiring (SH-121)", () => {
expect(params.docStatuses).toEqual([2, 1, 3]);
});
+ it("exposes indicator selected state as aria-pressed", () => {
+ const view = renderWithProviders(, {
+ route: "/workorders",
+ withAuth: false,
+ });
+
+ fireEvent.click(screen.getByRole("button", { name: "Advanced Filters" }));
+ advOpen = true;
+ view.rerender();
+
+ const sheet = screen.getByRole("dialog", { name: "Advanced Filters" });
+ fireEvent.click(within(sheet).getByRole("button", { name: /Indicators/i }));
+
+ const names = [/Rescheduled ≥ 2/i, /Carried Over ≥ 2/i, /^Add-On$/i];
+ for (const name of names) {
+ const pill = within(sheet).getByRole("button", { name });
+ expect(pill).toHaveAttribute("aria-pressed", "false");
+ fireEvent.click(pill);
+ expect(pill).toHaveAttribute("aria-pressed", "true");
+ }
+ });
+
it("applies Indicators, Flag, and Internal WO# through the public Advanced Filters sheet", () => {
const view = renderWithProviders(, {
route: "/workorders",