From 686bc1948b7c149af66de008a89d8be6be02124e Mon Sep 17 00:00:00 2001
From: seonghobae <8172694+seonghobae@users.noreply.github.com>
Date: Sat, 18 Jul 2026 03:30:21 +0000
Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20[=EC=A0=91=EA=B7=BC?=
=?UTF-8?q?=EC=84=B1=20=EA=B0=9C=EC=84=A0]=20=EB=B9=88=20=EB=94=94?=
=?UTF-8?q?=EB=A0=89=ED=86=A0=EB=A6=AC=20=EC=9D=B4=EB=A6=84=EC=97=90=20?=
=?UTF-8?q?=EB=8C=80=ED=95=9C=20=ED=8F=B4=EB=B0=B1=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
디렉토리 이름을 기반으로 HTML을 생성할 때, 루트 디렉토리처럼 File.getName()이 빈 문자열을 반환하는 경우
및
태그가 내용 없이 렌더링되어 접근성과 사용성을 저해하는 문제가 있었습니다.
디렉토리 이름이 비어있을 때 절대 경로를 폴백으로 사용하도록 수정하여, 스크린 리더와 일반 사용자에게 항상 의미 있는 디렉토리 이름을 제공하도록 개선했습니다.
---
.jules/palette.md | 4 ++++
src/main/kotlin/html4tree/main.kt | 4 ++--
src/test/kotlin/html4tree/MainTest.kt | 15 +++++++++++++++
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/.jules/palette.md b/.jules/palette.md
index 9a12c9de..85726d4f 100644
--- a/.jules/palette.md
+++ b/.jules/palette.md
@@ -48,3 +48,7 @@
## 2024-08-01 - 네이티브 브라우저 UI의 다크 모드 지원 강제
**학습:** CSS 미디어 쿼리(`@media (prefers-color-scheme: dark)`)를 통해 다크 모드를 지원하더라도, 브라우저의 네이티브 UI 요소(스크롤바, 기본 폼 컨트롤, 기본 백그라운드 등)는 테마 변경을 인식하지 못해 어두운 테마 환경에서 밝은 스크롤바가 표시되는 등 시각적 불일치를 초래합니다.
**조치:** 항상 HTML 문서의 `` 영역에 `` 메타 태그를 명시적으로 추가하여 브라우저 수준에서 사용자의 시스템 테마(다크 모드 등)를 완전히 상속받아 일관성 있는 네이티브 UI를 렌더링하도록 보장하십시오.
+
+## 2026-07-18 - 루트 디렉토리 빈 이름 시맨틱 개선
+**학습:** 루트 디렉토리와 같이 File.getName()이 빈 문자열("")을 반환하는 디렉토리를 처리할 때, `` 및 `
` 요소가 빈 텍스트로 생성되어 스크린 리더 사용자와 시각적 사용자 모두에게 혼란을 주고 웹 접근성(a11y)을 저해할 수 있습니다.
+**조치:** 디렉토리 목록의 HTML을 동적으로 생성할 때 항상 디렉토리 이름이 비어있는지 확인하고, 비어있는 경우 빈 태그 렌더링을 방지하기 위해 절대 경로나 적절한 폴백(예: `absolutePath`)을 제공하여 명확한 컨텍스트와 접근성 시맨틱을 유지하십시오.
diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt
index b4558624..12143aab 100644
--- a/src/main/kotlin/html4tree/main.kt
+++ b/src/main/kotlin/html4tree/main.kt
@@ -327,12 +327,12 @@ ${cssContent}
- ${curr_dir.getName().escapeHtml()}
+ ${(curr_dir.getName().ifEmpty { curr_dir.absolutePath }).escapeHtml()}
${css}
-