From 3e191f4c2c3753d807bebe1b94f32d469a1d37ab Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Mon, 27 Jul 2026 02:23:38 +0000
Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20=EB=AA=A8=EB=8B=AC=20?=
=?UTF-8?q?=EB=82=B4=20=EC=9D=BC=EB=B0=98=20=EB=B2=84=ED=8A=BC=EC=9D=98=20?=
=?UTF-8?q?=EC=A0=91=EA=B7=BC=EC=84=B1(ARIA)=20=EA=B0=9C=EC=84=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 모달(`EditEdgeModal`, `EditTableModal`) 내 일반적인 목적의 버튼(삭제, 취소, 저장, 복제)에 동적인 `aria-label` 추가
* 스크린 리더 사용자가 해당 버튼이 어떤 컨텍스트에서 동작하는지 명확히 인지할 수 있도록 컨텍스트 정보 포함
* 관련 프론트엔드 테스트 코드 업데이트 및 통과 확인
---
.jules/palette.md | 3 +++
frontend/src/components/modals/EditEdgeModal.tsx | 4 +++-
.../src/components/modals/EditTableModal.test.tsx | 2 +-
frontend/src/components/modals/EditTableModal.tsx | 5 ++++-
.../src/components/modals/ModalCoverage.test.tsx | 12 ++++++------
5 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/.jules/palette.md b/.jules/palette.md
index d892e2f9..ed7f6bc2 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -54,3 +54,6 @@
## 2024-07-13 - [Table Node Accessibility]
**Learning:** Adding `aria-hidden="true"` inside `abbr` elements with `aria-label` prevents screen readers from redundantly announcing short abbreviations like "PK" or "NN" along with their full label.
**Action:** When creating short, domain-specific abbreviations with tooltips, use `aria-label` on the wrapper and hide the visual text from screen readers using `aria-hidden="true"` to create a cleaner auditory experience.
+## 2026-07-27 - [Descriptive ARIA labels for modal buttons]
+**Learning:** Adding dynamic, contextual `aria-label` attributes to generic buttons (like Save, Cancel, Delete) inside modals significantly improves screen reader navigation and clarity, ensuring users understand exactly what action they are taking.
+**Action:** Always provide contextual `aria-label`s for generic action buttons in dialogs using dynamic data like node or edge names.
diff --git a/frontend/src/components/modals/EditEdgeModal.tsx b/frontend/src/components/modals/EditEdgeModal.tsx
index c34b7e55..b3a3ae65 100644
--- a/frontend/src/components/modals/EditEdgeModal.tsx
+++ b/frontend/src/components/modals/EditEdgeModal.tsx
@@ -83,14 +83,16 @@ export function EditEdgeModal({
type="button"
onClick={onRelDelete}
style={{ color: "#b91c1c", borderColor: "#fca5a5" }}
+ aria-label={`관계 삭제 (${editingEdge.source}에서 ${editingEdge.target})`}
>
삭제