From a422669a7d471afd16e48a8c92ecdb0c7763b96b Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:58:37 +0000 Subject: [PATCH 1/5] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=81=EC=A0=81=20Hover=20=ED=94=BC=EB=93=9C=EB=B0=B1=20?= =?UTF-8?q?=EB=B3=B5=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit πŸ’‘ What: μƒμœ„ 디렉토리(..)와 ν•˜μœ„ 파일/디렉토리 링크에 마우슀λ₯Ό 올릴 λ•Œ ν…μŠ€νŠΈ 밑쀄이 ν‘œμ‹œλ˜μ§€ μ•ŠλŠ” 문제λ₯Ό μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. css ꡬ쑰 μ„ νƒμžμΈ `span:last-child` λŒ€μ‹  `.entry-label` μ΄λΌλŠ” μ‹œλ§¨ν‹± 클래슀λ₯Ό μΆ”κ°€ν•˜μ—¬ μ μš©λ˜λ„λ‘ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. 🎯 Why: `.visually-hidden` 클래슀λ₯Ό κ°€μ§€λŠ” μš”μ†Œκ°€ `li` λ‚΄ λ§ˆμ§€λ§‰ `span`이 λ˜λ©΄μ„œ μ‹œκ°μ  hover μŠ€νƒ€μΌμ΄ μˆ¨κ²¨μ§„ μš”μ†Œμ— μ μš©λ˜μ–΄λ²„λ¦¬λŠ” 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. πŸ“Έ Before/After: 마우슀 hover μ‹œ 링크 ν…μŠ€νŠΈμ— λ‹€μ‹œ 밑쀄이 κ·Έμ–΄μ Έ μƒν˜Έμž‘μš© κ°€λŠ₯ν•œ μš”μ†Œμž„μ„ μ‹œκ°μ μœΌλ‘œ λͺ…ν™•νžˆ μ „λ‹¬ν•©λ‹ˆλ‹€. β™Ώ Accessibility: 슀크린 λ¦¬λ”μš© ν…μŠ€νŠΈ(`.visually-hidden`)λ₯Ό μœ μ§€ν•˜λ©΄μ„œλ„ μ‹œκ° μž₯μ• κ°€ μ—†λŠ” 일반 μ‚¬μš©μžλ“€μ˜ μ‚¬μš©μ„±(μ‹œκ°μ  ν˜Έλ²„ ν”Όλ“œλ°±)을 λ³΅μ›ν–ˆμŠ΅λ‹ˆλ‹€. --- .jules/palette.md | 4 ++++ src/main/kotlin/html4tree/main.kt | 6 +++--- src/test/kotlin/html4tree/GeneratedIndexReadabilityTest.kt | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.jules/palette.md b/.jules/palette.md index 604d7810..e8d2d4a7 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -73,3 +73,7 @@ ## 2026-08-17 - λΈŒλΌμš°μ € λ²ˆμ—­κ³Ό ν™”λ©΄ νŒλ…κΈ°μ˜ ν˜Έν™˜μ„±μ„ μœ„ν•œ ν…μŠ€νŠΈ 처리 **Learning:** `aria-label` μ†μ„±μœΌλ‘œ μ§€μ •λœ ν™”λ©΄ νŒλ…κΈ°μš© λŒ€μ²΄ ν…μŠ€νŠΈλŠ” Chrome Translate λ“± λΈŒλΌμš°μ € λ²ˆμ—­ 도ꡬ에 μ˜ν•΄ λ²ˆμ—­λ˜μ§€ μ•ŠλŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€. 이둜 인해 λ¬Έμ„œ μ–Έμ–΄κ°€ λ³€ν™˜λ˜μ–΄λ„ 슀크린 λ¦¬λ”μ—μ„œλŠ” 원본 μ–Έμ–΄(예: μ˜μ–΄)둜 μ½ν˜€ λ‹€κ΅­μ–΄ 접근성이 μ €ν•˜λ©λ‹ˆλ‹€. **Action:** ν™”λ©΄ νŒλ…κΈ°λ₯Ό μœ„ν•œ μˆ¨κ²¨μ§„ μ„€λͺ… ν…μŠ€νŠΈλ₯Ό μ œκ³΅ν•  λ•Œ `aria-label` λŒ€μ‹  CSS `.visually-hidden` 클래슀λ₯Ό μ μš©ν•œ `` μš”μ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬, λΈŒλΌμš°μ €κ°€ 일반 ν…μŠ€νŠΈλ‘œ μΈμ‹ν•˜κ³  λ²ˆμ—­ν•  수 μžˆλ„λ‘ ν•˜μ—¬ λ‹€κ΅­μ–΄ μ ‘κ·Όμ„± ν˜Έν™˜μ„±μ„ ν™•λ³΄ν•˜μ‹­μ‹œμ˜€. + +## 2024-09-26 - μ—”νŠΈλ¦¬ μ‹œκ°μ  밑쀄 문제 μˆ˜μ • +**Learning:** `a:hover span:last-child`와 같은 ꡬ쑰적 μ„ νƒμžλ₯Ό μ‚¬μš©ν•  λ•Œ λ§ˆν¬μ—… ꡬ쑰가 λ³€κ²½λ˜μ–΄ λ§ˆμ§€λ§‰ μš”μ†Œκ°€ `span`이 μ•„λ‹Œ 경우 (예: 슀크린 λ¦¬λ”μš© `.visually-hidden` μš”μ†Œκ°€ μΆ”κ°€λ˜μ—ˆμ„ λ•Œ) μ›ν•˜λŠ” ν…μŠ€νŠΈ μš”μ†Œ(μ—”νŠΈλ¦¬ 이름)에 밑쀄 λ“±μ˜ μ‹œκ°μ  μŠ€νƒ€μΌλ§μ΄ μ˜¬λ°”λ₯΄κ²Œ μ μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ‚¬μš©μžμ˜ μ‹œκ°μ  ν˜Έλ²„ ν”Όλ“œλ°±μ„ μ €ν•˜μ‹œν‚΅λ‹ˆλ‹€. +**Action:** ꡬ쑰적 가상 클래슀(pseudo-class) λŒ€μ‹  λͺ…μ‹œμ μΈ μ‹œλ§¨ν‹± 클래슀(`.entry-label`)λ₯Ό μΆ”κ°€ν•˜μ—¬, μŠ€νƒ€μΌλ§μ΄ DOM ꡬ쑰의 변화에 영ν–₯을 λ°›μ§€ μ•Šκ³  μ•ˆμ •μ μœΌλ‘œ μœ μ§€λ˜λ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€. μƒμœ„ 디렉토리 링크(`..`) 및 ν•˜μœ„ 파일/디렉토리 링크의 ν…μŠ€νŠΈμ— `.entry-label` 클래슀λ₯Ό μ μš©ν–ˆμŠ΅λ‹ˆλ‹€. diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt index 0972fa2c..3bfcbfe1 100644 --- a/src/main/kotlin/html4tree/main.kt +++ b/src/main/kotlin/html4tree/main.kt @@ -56,7 +56,7 @@ a:hover, a:focus-visible { outline: 2px solid #0969da; outline-offset: -2px; } -a:hover span:last-child, a:focus-visible span:last-child { +a:hover .entry-label, a:focus-visible .entry-label { text-decoration: underline; } @media (prefers-reduced-motion: reduce) { @@ -429,7 +429,7 @@ fun process_dir(curr_dir: File, excludeSet: Set? = null, dirFiles: Array

${directoryName.escapeHtml()}