From 61fcb7e098a82ccd25758cff3d614ba357870d9a Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Thu, 6 Aug 2026 14:15:59 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20=EB=B9=84?= =?UTF-8?q?=EB=8C=80=ED=99=94=ED=98=95=20=EC=9A=94=EC=86=8C=20=ED=88=B4?= =?UTF-8?q?=ED=8C=81=20=ED=82=A4=EB=B3=B4=EB=93=9C=20=EC=A0=91=EA=B7=BC?= =?UTF-8?q?=EC=84=B1=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `index.html`의 `.meta-value-card`에 `tabindex="0"` 추가 - `app.js`에서 동적으로 생성되는 `.status-badge`에 `tabIndex = 0` 추가 - `styles.css`에서 해당 요소들에 `:focus-visible` 아웃라인 스타일 적용 - `.jules/palette.md`에 관련된 UX/접근성 교훈 기록 --- .jules/palette.md | 3 +++ app.js | 1 + index.html | 6 +++--- styles.css | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.jules/palette.md b/.jules/palette.md index 0bbf5248..4e3e4c77 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -115,3 +115,6 @@ ## $(date +%Y-%m-%d) - Prevent accidental data loss in inline editors **Learning:** Forms that take a long time to fill out (like a WBS editor) are prone to accidental closure by users pressing `Escape` or clicking cancel. This causes immediate data loss without any warning, resulting in frustration. **Action:** When working on editors that can be dismissed, track whether the user has modified any fields compared to their initial state. If there are changes, intercept the close action and present a confirmation dialog (`window.confirm`) to ensure they really want to discard their edits. Bypass this for intentional saves or explicit data overrides. +## 2026-08-06 - 비대화형 요소 툴팁 키보드 접근성 개선 +**Learning:** `title`이나 `aria-label`을 가진 비대화형 요소(`div`, `span`)의 툴팁은 마우스 호버 시에만 나타나고 키보드 포커스를 받을 수 없어 접근성이 떨어집니다. +**Action:** 툴팁 정보를 제공하는 비대화형 요소에는 `tabindex="0"`을 추가하여 키보드 초점을 받을 수 있도록 하고, `:focus-visible` 스타일을 지정하여 포커스 상태를 명확히 해야 합니다. diff --git a/app.js b/app.js index a04aae71..d2a4b55e 100644 --- a/app.js +++ b/app.js @@ -999,6 +999,7 @@ function createStatusCellContent(progressState) { if (progressState.description) { badge.title = progressState.description; badge.setAttribute('aria-label', `${progressState.label} - ${progressState.description}`); + badge.tabIndex = 0; } return badge; } diff --git a/index.html b/index.html index a7f4b49c..6efce0eb 100644 --- a/index.html +++ b/index.html @@ -28,18 +28,18 @@