From f82860fecca20ac04aef3b13c7996abf06494225 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Sun, 2 Aug 2026 21:05:06 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20=EB=B9=88=20?= =?UTF-8?q?=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=9D=98=20=EC=8B=9C=EA=B0=81=EC=A0=81=20=EB=B0=8F=20=EC=A0=91?= =?UTF-8?q?=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 - 빈 디렉토리 상태 표시에 폴더 아이콘(📂) 추가 - `role="status"`를 추가하여 스크린 리더 사용자에게 상태 변화를 명확하게 알림 - 장식용 아이콘에 `aria-hidden="true"`를 적용하여 접근성 노이즈 감소 - 텍스트와 아이콘을 가로로 정렬하기 위해 `.empty-dir` CSS에 `display: flex` 추가 --- .jules/palette.md | 3 +++ src/main/kotlin/html4tree/main.kt | 5 ++++- src/test/kotlin/html4tree/MainTest.kt | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.jules/palette.md b/.jules/palette.md index 9a12c9de..4f26798d 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-02 - 빈 디렉토리 상태의 시각적 및 접근성 개선 +**Learning:** 정적 HTML로 생성된 빈 디렉토리 안내 문구에 `role="status"`를 추가하여 스크린 리더 사용자에게 상태 변화(비어있음)를 명확하게 알리고, 장식용 아이콘에는 `aria-hidden="true"`를 적용하여 접근성 노이즈를 줄일 수 있습니다. +**Action:** 앞으로 정적 페이지 내의 빈 상태나 결과 없음 상태를 표시할 때도 상태 역할을 명시(status role)하고 시각적 요소와 의미적 요소를 분리(aria-hidden)하여 일관된 접근성 경험을 제공해야 합니다. diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt index b4558624..bde892b2 100644 --- a/src/main/kotlin/html4tree/main.kt +++ b/src/main/kotlin/html4tree/main.kt @@ -304,6 +304,9 @@ fun process_dir(curr_dir: File, excludeSet: Set? = null, dirFiles: Array } } .empty-dir { + display: flex; + align-items: center; + gap: 0.5rem; padding: 0.5rem; opacity: 0.7; font-style: italic; @@ -370,7 +373,7 @@ ${cssContent} } if(l.isEmpty()){ - l.append("""
  • 이 디렉토리는 비어 있습니다.
  • """) + l.append("""
  • 이 디렉토리는 비어 있습니다.
  • """) l.append('\n') } diff --git a/src/test/kotlin/html4tree/MainTest.kt b/src/test/kotlin/html4tree/MainTest.kt index 13494714..b3355b38 100644 --- a/src/test/kotlin/html4tree/MainTest.kt +++ b/src/test/kotlin/html4tree/MainTest.kt @@ -95,6 +95,8 @@ class MainTest { assertTrue(htmlContent.contains("")) assertTrue(htmlContent.contains("이 디렉토리는 비어 있습니다.")) assertTrue(htmlContent.contains("role=\"list\"")) + assertTrue(htmlContent.contains("role=\"status\"")) + assertTrue(htmlContent.contains("📂")) } @Test From ed244cff771af8931557e82acf99ed90e47c9b22 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Sun, 2 Aug 2026 21:42:16 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20=EB=B9=88=20?= =?UTF-8?q?=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=9D=98=20=EC=8B=9C=EA=B0=81=EC=A0=81=20=EB=B0=8F=20=EC=A0=91?= =?UTF-8?q?=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 - 빈 디렉토리 상태 표시에 폴더 아이콘(📂) 추가 - `role="status"`를 추가하여 스크린 리더 사용자에게 상태 변화를 명확하게 알림 - 장식용 아이콘에 `aria-hidden="true"`를 적용하여 접근성 노이즈 감소 - 텍스트와 아이콘을 가로로 정렬하기 위해 `.empty-dir` CSS에 `display: flex` 추가