From 86569b52302971dc0684acd2b0fefdd1d864f521 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Sat, 10 Oct 2026 20:57:46 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=EC=97=90=20aria-hidden=20=EC=86=8D=EC=84=B1=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 불필요한 스크린 리더 음성 출력을 방지하기 위해 장식용 아이콘에 `aria-hidden="true"` 속성을 추가함 - `packages/web/src/components/ui/pagination.tsx` (ChevronLeftIcon, ChevronRightIcon) - `packages/web/src/components/dashboard/reports/week-navigator.tsx` (ChevronLeft, ChevronRight) - `packages/web/src/components/dashboard/reports/context-section.tsx` (ChevronUp, ChevronDown) - `packages/web/src/components/dashboard/event-detail.tsx` (X, Icon) - `packages/web/src/components/dashboard/event-list.tsx` (Icon, ChevronRight) --- .jules/palette.md | 3 +++ packages/web/src/components/dashboard/event-detail.tsx | 4 ++-- packages/web/src/components/dashboard/event-list.tsx | 3 ++- .../web/src/components/dashboard/reports/context-section.tsx | 4 ++-- .../web/src/components/dashboard/reports/week-navigator.tsx | 4 ++-- packages/web/src/components/ui/pagination.tsx | 4 ++-- 6 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 .jules/palette.md diff --git a/.jules/palette.md b/.jules/palette.md new file mode 100644 index 00000000..6969f290 --- /dev/null +++ b/.jules/palette.md @@ -0,0 +1,3 @@ +## 2023-10-24 - Added aria-hidden="true" to decorative icons +**Learning:** Decorative icons from libraries like lucide-react (such as `ChevronRight`, `ChevronLeft`, `ChevronUp`, `ChevronDown`, `X`, etc) used within focusable or interactive elements that already have text or an `aria-label` attribute can cause redundancy or confusion for screen readers if not explicitly hidden. +**Action:** When adding or auditing decorative icons in interactive components (especially `button` or `Link` elements), always ensure they are marked with `aria-hidden="true"` to prevent redundant screen reader announcements. diff --git a/packages/web/src/components/dashboard/event-detail.tsx b/packages/web/src/components/dashboard/event-detail.tsx index c6cc5cdf..0aebb7f8 100644 --- a/packages/web/src/components/dashboard/event-detail.tsx +++ b/packages/web/src/components/dashboard/event-detail.tsx @@ -121,7 +121,7 @@ export function EventDetail({ event, onClose }: EventDetailProps) { - +
{label}
@@ -141,7 +141,7 @@ export function EventDetail({ event, onClose }: EventDetailProps) { aria-label="Close event details" className="flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring" > - +
diff --git a/packages/web/src/components/dashboard/event-list.tsx b/packages/web/src/components/dashboard/event-list.tsx index a09d971a..7401d2dd 100644 --- a/packages/web/src/components/dashboard/event-list.tsx +++ b/packages/web/src/components/dashboard/event-list.tsx @@ -171,7 +171,7 @@ function RowView({ bg, )} > - +