Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .jules/palette.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 2024-05-15 - 스크린 리더에서 중복 텍스트 낭독 방지 및 장식용 아이콘 접근성 개선
**Learning:** 시각적으로 보이는 텍스트 바로 옆에 동일한 의미를 갖는 이미지(로고 등)가 있을 때 `alt` 텍스트를 제공하면 스크린 리더가 내용을 중복해서 읽게 됩니다(예: "Argos Argos"). 또한 버튼 내부에 이미 `aria-expanded` 등 상태가 제공되거나 접근성 텍스트가 있을 때, 방향을 나타내는 아이콘(`ChevronUp`, `ChevronDown`, `ChevronRight`)이나 일반 장식용 아이콘이 낭독되지 않게 해야 합니다.
**Action:** 텍스트와 의미가 중복되는 인접한 이미지에는 `alt="" aria-hidden="true"`를 적용하고, 상위 버튼이나 컨테이너에서 이미 목적/상태를 명확히 하는 경우 장식용 아이콘에 `aria-hidden="true"`를 항상 추가합니다.
15 changes: 11 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,25 @@
"packageManager": "pnpm@9.15.4+sha512.b2dc20e2fc72b3e18848459b37359a32064663e5627a51e4c74b2c29dd8e8e0491483c3abb40789cfd578bf362fb6ba8261b05f0387d76792ed6e23ea3b1b6a0",
"pnpm": {
"overrides": {
"fast-uri": ">=3.1.6",
"sharp": ">=0.35.4",
"js-yaml": ">=4.3.2",
"baseline-browser-mapping": ">=2.11.0",
"browserslist": ">=4.28.3",
"next": ">=15.5.25",
"hono": ">=4.13.5",
"postcss-selector-parser": ">=7.1.3",
"qs": ">=6.16.0",
"@humanfs/node": ">=0.16.8",
"deepmerge-ts": ">=8.0.0",
"@babel/core": "7.29.7",
"esbuild": "0.28.1",
"hono": "^4.12.34",
"js-yaml": "4.3.1",
"nanoid": "3.3.18",
"@auth/core": "^0.41.3",
"sharp": "^0.35.3",
"postcss": "^8.5.18",
"brace-expansion@1": "1.1.15",
"brace-expansion@2": "2.1.2",
"brace-expansion@>=3": "5.0.9",
"fast-uri": "^3.1.5",
"ip-address": "^10.3.1",
"undici": "^7.29.0",
"minimatch": "^10.0.0",
Expand Down
3 changes: 2 additions & 1 deletion packages/web/src/components/dashboard/event-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -171,14 +171,15 @@ function RowView({
bg,
)}
>
<Icon className="h-3 w-3 text-background" />
<Icon className="h-3 w-3 text-background" aria-hidden="true" />
</span>
<span className="w-20 shrink-0 text-sm font-medium truncate">
{label}
</span>
<span className="flex-1 min-w-0 flex items-center gap-1 text-sm text-muted-foreground">
{chevron !== undefined && (
<ChevronRight
aria-hidden="true"
className={cn(
"h-3 w-3 shrink-0 transition-transform",
chevron === "expanded" && "rotate-90",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ export function ContextSection({ title, children, defaultOpen = false }: Context
>
<h2 className="text-base font-medium">{title}</h2>
{open ? (
<ChevronUp className="h-4 w-4 text-muted-foreground" />
<ChevronUp className="h-4 w-4 text-muted-foreground" aria-hidden="true" />
) : (
<ChevronDown className="h-4 w-4 text-muted-foreground" />
<ChevronDown className="h-4 w-4 text-muted-foreground" aria-hidden="true" />
)}
</button>
{open && (
Expand Down
6 changes: 4 additions & 2 deletions packages/web/src/components/layout/org-sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ export function OrgSidebar() {
<div className="p-6 flex items-center gap-2">
<Image
src="/argos-logo.svg"
alt="Argos"
alt=""
aria-hidden="true"
width={28}
height={28}
className="rounded-md"
Expand Down Expand Up @@ -138,7 +139,8 @@ export function OrgSidebar() {
<div className="flex items-center gap-2 shrink-0">
<Image
src="/argos-logo.svg"
alt="Argos"
alt=""
aria-hidden="true"
width={24}
height={24}
className="rounded-md"
Expand Down
Loading
Loading