diff --git a/.jules/palette.md b/.jules/palette.md index 9a12c9de..27e25ab9 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -48,3 +48,6 @@ ## 2024-08-01 - 네이티브 브라우저 UI의 다크 모드 지원 강제 **학습:** CSS 미디어 쿼리(`@media (prefers-color-scheme: dark)`)를 통해 다크 모드를 지원하더라도, 브라우저의 네이티브 UI 요소(스크롤바, 기본 폼 컨트롤, 기본 백그라운드 등)는 테마 변경을 인식하지 못해 어두운 테마 환경에서 밝은 스크롤바가 표시되는 등 시각적 불일치를 초래합니다. **조치:** 항상 HTML 문서의 `` 영역에 `` 메타 태그를 명시적으로 추가하여 브라우저 수준에서 사용자의 시스템 테마(다크 모드 등)를 완전히 상속받아 일관성 있는 네이티브 UI를 렌더링하도록 보장하십시오. +## 2026-08-01 - 루트 디렉토리의 빈 제목 처리 +**Learning:** 파일 시스템 루트와 같이 `getName()`이 빈 문자열을 반환하는 디렉토리를 처리할 때, 접근성을 해치고 스크린 리더 환경에서 제목 요소(``, `<h1>`)가 누락되는 문제가 발생할 수 있습니다. +**Action:** 디렉토리 이름이 비어있는 경우, 시각적 빈 상태를 방지하고 접근성을 유지하기 위해 `absolutePath`와 같은 의미 있는 대체 경로를 사용하여 제목과 헤더에 표시되도록 설정해야 합니다. diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt index b4558624..c191e95d 100644 --- a/src/main/kotlin/html4tree/main.kt +++ b/src/main/kotlin/html4tree/main.kt @@ -327,12 +327,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()} + ${(if (curr_dir.name.isEmpty()) curr_dir.absolutePath else curr_dir.name).escapeHtml()} ${css}
-

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

+

${(if (curr_dir.name.isEmpty()) curr_dir.absolutePath else curr_dir.name).escapeHtml()}