From 1d91fcba4deab4e6e083e4f5d205b503367a0f7e Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Mon, 21 Sep 2026 20:55:23 +0000 Subject: [PATCH 01/15] =?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: 링크 ν…μŠ€νŠΈ μ—˜λ¦¬λ¨ΌνŠΈμ— `.entry-label` 클래슀λ₯Ό λͺ…μ‹œμ μœΌλ‘œ μΆ”κ°€ν•˜κ³ , CSSμ—μ„œ hover/focus μŠ€νƒ€μΌ μ„ νƒμžλ₯Ό `span:last-child`μ—μ„œ `span.entry-label`둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. 🎯 Why: ``을 λ„μž…ν•œ ν›„ `span:last-child` μ„ νƒμžκ°€ 더 이상 λ³΄μ΄λŠ” ν…μŠ€νŠΈ μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό μ§€μ •ν•˜μ§€ μ•Šκ²Œ λ˜λ©΄μ„œ 링크에 마우슀λ₯Ό μ˜¬λ¦¬κ±°λ‚˜ ν‚€λ³΄λ“œ 포컀슀λ₯Ό 쀄 λ•Œ 밑쀄이 λ‚˜νƒ€λ‚˜λ˜ μ‹œκ°μ  ν”Όλ“œλ°±μ΄ λŠμ–΄μ‘ŒκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. πŸ“Έ Before/After: Before: 링크에 마우슀λ₯Ό μ˜¬λ €λ„ 밑쀄이 λ‚˜νƒ€λ‚˜μ§€ μ•ŠμŒ. After: 링크에 마우슀λ₯Ό μ˜¬λ¦¬κ±°λ‚˜ ν‚€λ³΄λ“œλ‘œ 포컀슀 μ‹œ 링크 ν…μŠ€νŠΈμ— 밑쀄이 ν‘œμ‹œλ¨. β™Ώ Accessibility: ν‚€λ³΄λ“œ 탐색 μ‹œ(focus-visible) μ œκ³΅λ˜λŠ” 좔가적인 μ‹œκ°μ  ν”Όλ“œλ°±μ΄ λ³΅μ›λ˜μ–΄ μ‹œκ° μž₯μ• κ°€ μžˆκ±°λ‚˜ 마우슀λ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” μ‚¬μš©μžμ˜ 접근성이 ν–₯μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€. --- .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..f3601610 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-10-23 - 링크 Hover μ‹œκ°μ  ν”Όλ“œλ°± 볡원 +**Learning:** 링크 내에 ``κ³Ό 같이 ꡬ쑰적으둜 μˆ¨κ²¨μ§„ μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό μ‚¬μš©ν•  λ•Œ, `:last-child`와 같은 ꡬ쑰적 CSS 가상 ν΄λž˜μŠ€λŠ” 더 이상 λ³΄μ΄λŠ” ν…μŠ€νŠΈ μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό μ§€μ •ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€. μ΄λŠ” hoverμ‹œ 밑쀄이 λ‚˜νƒ€λ‚˜λŠ” λ“±μ˜ μ‹œκ°μ  ν”Όλ“œλ°±μ„ κΉ¨λœ¨λ¦½λ‹ˆλ‹€. +**Action:** CSSμ—μ„œ λ³΄μ΄λŠ” μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό μ•ˆμ •μ μœΌλ‘œ μ§€μ •ν•˜κΈ° μœ„ν•΄ ꡬ쑰적 가상 클래슀 λŒ€μ‹  μ‹œλ§¨ν‹± 클래슀(`.entry-label`)λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt index 0972fa2c..d6687476 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 span.entry-label, a:focus-visible span.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()}