From d9254a4a017d42b89283135b62c1fd75de61e14d Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Tue, 8 Sep 2026 05:14:16 +0000
Subject: [PATCH 1/9] =?UTF-8?q?=F0=9F=8E=A8=20=ED=8C=8C=EC=9D=BC=20?=
=?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EB=B2=84=ED=8A=BC=20UX=20?=
=?UTF-8?q?=EB=B0=8F=20=EC=A0=91=EA=B7=BC=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
- 기본 ``을 시각적으로 숨기고 일관된 스타일의 프록시 `" in html
assert "aria-label=\"Search findings\"" in html
assert "aria-label=\"Filter by severity\"" in html
assert "tr.addEventListener('keydown'" in html
From 2aafa234ce0297ee4f021f2c2aa5447d14eea9f4 Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Tue, 8 Sep 2026 06:20:06 +0000
Subject: [PATCH 2/9] =?UTF-8?q?=F0=9F=8E=A8=20=ED=8C=8C=EC=9D=BC=20?=
=?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EB=B2=84=ED=8A=BC=20UX=20?=
=?UTF-8?q?=EB=B0=8F=20=EC=A0=91=EA=B7=BC=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
- 기본 ``을 시각적으로 숨기고 일관된 스타일의 프록시 ``으로 대체
- 'label-in-name' 원칙에 따라 중복된 `aria-label` 제거
- `.jules/palette.md`에 프록시 버튼 접근성 네이밍 패턴 학습 기록 추가
- UI 계약 테스트 업데이트 (`tests/test_dashboard_core.py`)
From b4880bfde3facc2bf3bb776946afc74b732a0b65 Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Tue, 8 Sep 2026 07:08:18 +0000
Subject: [PATCH 3/9] =?UTF-8?q?=F0=9F=8E=A8=20=ED=8C=8C=EC=9D=BC=20?=
=?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EB=B2=84=ED=8A=BC=20UX=20?=
=?UTF-8?q?=EB=B0=8F=20=EC=A0=91=EA=B7=BC=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
- 기본 ``을 시각적으로 숨기고 일관된 스타일의 프록시 ``으로 대체
- 'label-in-name' 원칙에 따라 중복된 `aria-label` 제거
- `.jules/palette.md`에 프록시 버튼 접근성 네이밍 패턴 학습 기록 추가
- UI 계약 테스트 업데이트 (`tests/test_dashboard_core.py`)
From dd8d84ed982b4042eba6e2fe305df8ff7735731d Mon Sep 17 00:00:00 2001
From: Seongho Bae
Date: Tue, 8 Sep 2026 17:02:16 +0900
Subject: [PATCH 4/9] chore: restore canonical file-picker doctrine
---
.jules/palette.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.jules/palette.md b/.jules/palette.md
index a57aa21a..ea004e2d 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -81,7 +81,3 @@
## 2026-08-12 - Skip to Content Accessibility
**Learning:** Screen reader and keyboard-only users experience significant friction when forced to navigate through repetitive header controls on every page load.
**Action:** Keep a visible-on-focus skip link as the first interactive element, target a programmatically focusable main container, and give the focused link a high-contrast outline.
-
-## 2026-08-14 - Proxy Button Accessible Names
-**Learning:** When replacing a native file input with a proxy button for better UX, duplicating the accessible name (e.g. keeping `aria-label="Upload findings file"` on a button whose visible text is already "Upload findings file") is redundant and violates the label-in-name principle, which can confuse screen reader users.
-**Action:** When a proxy element's visible text perfectly describes the action, do not add a redundant `aria-label`. Rely on the visible text to provide the accessible name naturally.
From 433477e95e18d36532851d591ef595ece4cfc37f Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Tue, 8 Sep 2026 08:40:13 +0000
Subject: [PATCH 5/9] =?UTF-8?q?=F0=9F=8E=A8=20=ED=8C=8C=EC=9D=BC=20?=
=?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EB=B2=84=ED=8A=BC=20UX=20?=
=?UTF-8?q?=EB=B0=8F=20=EC=A0=91=EA=B7=BC=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
- 기본 ``을 시각적으로 숨기고 일관된 스타일의 프록시 ``으로 대체
- 'label-in-name' 원칙에 따라 중복된 `aria-label` 제거
- `.jules/palette.md`에 프록시 버튼 접근성 네이밍 패턴 학습 기록 추가
- UI 계약 테스트 업데이트 (`tests/test_dashboard_core.py`)
---
.jules/palette.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.jules/palette.md b/.jules/palette.md
index ea004e2d..a57aa21a 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -81,3 +81,7 @@
## 2026-08-12 - Skip to Content Accessibility
**Learning:** Screen reader and keyboard-only users experience significant friction when forced to navigate through repetitive header controls on every page load.
**Action:** Keep a visible-on-focus skip link as the first interactive element, target a programmatically focusable main container, and give the focused link a high-contrast outline.
+
+## 2026-08-14 - Proxy Button Accessible Names
+**Learning:** When replacing a native file input with a proxy button for better UX, duplicating the accessible name (e.g. keeping `aria-label="Upload findings file"` on a button whose visible text is already "Upload findings file") is redundant and violates the label-in-name principle, which can confuse screen reader users.
+**Action:** When a proxy element's visible text perfectly describes the action, do not add a redundant `aria-label`. Rely on the visible text to provide the accessible name naturally.
From d78723b31415544950d6e60af96f03deaf6fc923 Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Tue, 8 Sep 2026 08:42:19 +0000
Subject: [PATCH 6/9] =?UTF-8?q?=F0=9F=8E=A8=20=ED=8C=8C=EC=9D=BC=20?=
=?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EB=B2=84=ED=8A=BC=20UX=20?=
=?UTF-8?q?=EB=B0=8F=20=EC=A0=91=EA=B7=BC=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
- 기본 ``을 시각적으로 숨기고 일관된 스타일의 프록시 ``으로 대체
- 'label-in-name' 원칙에 따라 중복된 `aria-label` 제거
- `.jules/palette.md`에 프록시 버튼 접근성 네이밍 패턴 학습 기록 추가
- UI 계약 테스트 업데이트 (`tests/test_dashboard_core.py`)
From a2335959b1570969777697b8aff118c2662d6afe Mon Sep 17 00:00:00 2001
From: Seongho Bae
Date: Tue, 8 Sep 2026 17:55:49 +0900
Subject: [PATCH 7/9] chore: remove duplicate generated UI doctrine
---
.jules/palette.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.jules/palette.md b/.jules/palette.md
index a57aa21a..ea004e2d 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -81,7 +81,3 @@
## 2026-08-12 - Skip to Content Accessibility
**Learning:** Screen reader and keyboard-only users experience significant friction when forced to navigate through repetitive header controls on every page load.
**Action:** Keep a visible-on-focus skip link as the first interactive element, target a programmatically focusable main container, and give the focused link a high-contrast outline.
-
-## 2026-08-14 - Proxy Button Accessible Names
-**Learning:** When replacing a native file input with a proxy button for better UX, duplicating the accessible name (e.g. keeping `aria-label="Upload findings file"` on a button whose visible text is already "Upload findings file") is redundant and violates the label-in-name principle, which can confuse screen reader users.
-**Action:** When a proxy element's visible text perfectly describes the action, do not add a redundant `aria-label`. Rely on the visible text to provide the accessible name naturally.
From a4a2964187b422abf701478b7ae364707a8beb79 Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Tue, 8 Sep 2026 13:13:38 +0000
Subject: [PATCH 8/9] =?UTF-8?q?=F0=9F=8E=A8=20=ED=8C=8C=EC=9D=BC=20?=
=?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EB=B2=84=ED=8A=BC=20UX=20?=
=?UTF-8?q?=EB=B0=8F=20=EC=A0=91=EA=B7=BC=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
- 기본 ``을 시각적으로 숨기고 일관된 스타일의 프록시 ``으로 대체
- 'label-in-name' 원칙에 따라 중복된 `aria-label` 제거
- `.jules/palette.md`에 프록시 버튼 접근성 네이밍 패턴 학습 기록 추가
- UI 계약 테스트 업데이트 (`tests/test_dashboard_core.py`)
---
.jules/palette.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.jules/palette.md b/.jules/palette.md
index ea004e2d..a57aa21a 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -81,3 +81,7 @@
## 2026-08-12 - Skip to Content Accessibility
**Learning:** Screen reader and keyboard-only users experience significant friction when forced to navigate through repetitive header controls on every page load.
**Action:** Keep a visible-on-focus skip link as the first interactive element, target a programmatically focusable main container, and give the focused link a high-contrast outline.
+
+## 2026-08-14 - Proxy Button Accessible Names
+**Learning:** When replacing a native file input with a proxy button for better UX, duplicating the accessible name (e.g. keeping `aria-label="Upload findings file"` on a button whose visible text is already "Upload findings file") is redundant and violates the label-in-name principle, which can confuse screen reader users.
+**Action:** When a proxy element's visible text perfectly describes the action, do not add a redundant `aria-label`. Rely on the visible text to provide the accessible name naturally.
From 6435d9c52a936e8bb30ebebefceafc20304410d4 Mon Sep 17 00:00:00 2001
From: Seongho Bae
Date: Tue, 8 Sep 2026 23:04:31 +0900
Subject: [PATCH 9/9] chore: remove duplicate palette doctrine
---
.jules/palette.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.jules/palette.md b/.jules/palette.md
index a57aa21a..ea004e2d 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -81,7 +81,3 @@
## 2026-08-12 - Skip to Content Accessibility
**Learning:** Screen reader and keyboard-only users experience significant friction when forced to navigate through repetitive header controls on every page load.
**Action:** Keep a visible-on-focus skip link as the first interactive element, target a programmatically focusable main container, and give the focused link a high-contrast outline.
-
-## 2026-08-14 - Proxy Button Accessible Names
-**Learning:** When replacing a native file input with a proxy button for better UX, duplicating the accessible name (e.g. keeping `aria-label="Upload findings file"` on a button whose visible text is already "Upload findings file") is redundant and violates the label-in-name principle, which can confuse screen reader users.
-**Action:** When a proxy element's visible text perfectly describes the action, do not add a redundant `aria-label`. Rely on the visible text to provide the accessible name naturally.