diff --git a/.jules/palette.md b/.jules/palette.md index 604d7810..e414f193 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-27 - 링크의 호버 및 포커스 스타일 적용 범위 제한을 통한 시각적 명확성 향상 +**학습:** `span:last-child`와 같은 구조적 선택자를 사용하여 링크의 호버 및 포커스 상태(예: 텍스트 밑줄)를 지정하면, 스크린 리더용 숨김 텍스트(`.visually-hidden`)를 ``으로 제공할 때 숨겨진 텍스트 영역에까지 불필요한 시각적 스타일이 적용되는 문제가 발생할 수 있습니다. +**Action:** 링크 내부의 특정 시각적 콘텐츠에만 스타일(밑줄 등)을 적용하기 위해 일반적인 구조적 선택자 대신 명확한 클래스(예: `.entry-name`)를 지정하여, 숨겨진 접근성 텍스트의 구조 변경이 시각적 디자인에 영향을 미치지 않도록 안전하게 분리하십시오. diff --git a/CHANGELOG.md b/CHANGELOG.md index c442b3b1..cf5c6f72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,9 @@ All notable changes to this project are documented in this file. - Add generated-page regressions for row ordering, empty-state semantics, CSS cascade ordering, reduced-motion retention, text-only decoration, and numeric text/focus contrast thresholds. +- 링크 내부의 특정 시각적 콘텐츠에만 호버 및 포커스 스타일(예: 밑줄)이 적용되도록, + 일반적인 `span:last-child` 선택자 대신 `.entry-name` 클래스를 사용하도록 변경하여 + 스크린 리더용 숨김 텍스트에 불필요한 시각적 스타일이 적용되는 것을 방지. ### Documentation diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt index 0972fa2c..1f035611 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-name, a:focus-visible span.entry-name { 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()}