From 8115ac6514016e14cfac7b0d77061fd75c60c051 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Tue, 21 Jul 2026 03:33:27 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20=EB=A3=A8?= =?UTF-8?q?=ED=8A=B8=20=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20=EB=93=B1=20?= =?UTF-8?q?=EB=B9=88=20=EC=9D=B4=EB=A6=84=20=EB=94=94=EB=A0=89=ED=86=A0?= =?UTF-8?q?=EB=A6=AC=EC=97=90=20=EB=8C=80=ED=95=9C=20=ED=83=80=EC=9D=B4?= =?UTF-8?q?=ED=8B=80=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 루트 디렉토리(`/`)의 경우 `File.getName()`이 빈 문자열을 반환하여 생성된 HTML의 ``과 `<h1>`이 비어 있게 됩니다. 이는 스크린 리더 등 보조 기기가 문서의 목적을 파악하는 데 악영향을 미칩니다. 이를 해결하기 위해 이름이 비어 있을 때 절대 경로(`absolutePath`)를 표시하도록 폴백 로직을 추가했습니다. --- .jules/palette.md | 4 ++++ src/main/kotlin/html4tree/main.kt | 5 +++-- src/test/kotlin/html4tree/MainTest.kt | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.jules/palette.md b/.jules/palette.md index 9a12c9d..2f9e71c 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 문서의 `<head>` 영역에 `<meta name="color-scheme" content="light dark">` 메타 태그를 명시적으로 추가하여 브라우저 수준에서 사용자의 시스템 테마(다크 모드 등)를 완전히 상속받아 일관성 있는 네이티브 UI를 렌더링하도록 보장하십시오. + +## 2026-07-21 - 빈 디렉토리 이름에 대한 폴백 제공 (루트 디렉토리 접근성) +**Learning:** 파일 시스템 루트와 같이 이름이 빈 문자열인 디렉토리를 처리할 때, `<title>` 및 `<h1>` 요소가 비어 있으면 스크린 리더 사용자와 검색 엔진에 문서의 목적을 전달하지 못해 접근성에 악영향을 미칩니다. +**Action:** 디렉토리 이름이 비어 있을 때 화면 판독기가 문서 구조를 적절히 읽고 탐색할 수 있도록 절대 경로(absolutePath) 등을 표시하는 폴백 메커니즘을 제공하여 항상 유의미한 콘텐츠를 출력해야 합니다. diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt index b455862..c1d8c44 100644 --- a/src/main/kotlin/html4tree/main.kt +++ b/src/main/kotlin/html4tree/main.kt @@ -317,6 +317,7 @@ fun process_dir(curr_dir: File, excludeSet: Set<String>? = null, dirFiles: Array ${cssContent} </style> """ + val displayDirName = curr_dir.getName().ifEmpty { curr_dir.absolutePath } val index_top = """<!doctype html> <html lang="ko"> <head> @@ -327,12 +328,12 @@ ${cssContent} </style> <meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src '${styleHash}'; base-uri 'none'; form-action 'none';"> <!-- 보안 향상: 리퍼러를 통한 디렉토리 경로 노출 방지 --> <meta name="referrer" content="no-referrer"> - <title>${curr_dir.getName().escapeHtml()} + ${displayDirName.escapeHtml()} ${css}
-

${curr_dir.getName().escapeHtml()}

+

${displayDirName.escapeHtml()}