preserve(ui): retain duplicate hover repair behind #772 - #773
seonghobae wants to merge 4 commits into
Conversation
💡 What: 디렉토리 목록에서 접근성을 위해 추가된 `.visually-hidden` 클래스 요소들로 인해 `a:hover span:last-child` CSS 선택자가 깨져 Hover시 나타나는 텍스트 밑줄이 사라진 문제를 수정했습니다. 대신 `.entry-label` 이라는 의미론적 클래스를 도입하여 해당 문제를 해결했습니다. 🎯 Why: 화면 낭독기를 위한 보이지 않는 요소가 마지막 자식으로 추가되면서 CSS의 구조적 선택자(`:last-child`)가 의도하지 않은 요소(숨겨진 텍스트)를 가리키게 되어 기존의 마우스 오버 시각 효과가 깨졌기 때문입니다. 📸 Before/After: Before: 링크에 마우스를 올려도 텍스트에 밑줄이 생기지 않음. After: 링크에 마우스를 올리면 올바르게 텍스트에 밑줄 효과가 나타남. ♿ Accessibility: 시각적 Hover 효과를 안정적으로 복원하여, 키보드 사용자 및 마우스 사용자 모두에게 현재 포커스된 항목이 무엇인지 명확한 피드백을 제공합니다. 이는 웹 접근성 지침 중 시각적 포커스 이동 인지를 향상시킵니다. 구조적 CSS 선택자를 의미론적 클래스로 변경하여 향후 접근성 요소 추가 시 렌더링이 깨지지 않도록 견고하게 만들었습니다.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
💡 What: 디렉토리 목록에서 접근성을 위해 추가된 `.visually-hidden` 클래스 요소들로 인해 `a:hover span:last-child` CSS 선택자가 깨져 Hover시 나타나는 텍스트 밑줄이 사라진 문제를 수정했습니다. 대신 `.entry-label` 이라는 의미론적 클래스를 도입하여 해당 문제를 해결했습니다. 🎯 Why: 화면 낭독기를 위한 보이지 않는 요소가 마지막 자식으로 추가되면서 CSS의 구조적 선택자(`:last-child`)가 의도하지 않은 요소(숨겨진 텍스트)를 가리키게 되어 기존의 마우스 오버 시각 효과가 깨졌기 때문입니다. 📸 Before/After: Before: 링크에 마우스를 올려도 텍스트에 밑줄이 생기지 않음. After: 링크에 마우스를 올리면 올바르게 텍스트에 밑줄 효과가 나타남. ♿ Accessibility: 시각적 Hover 효과를 안정적으로 복원하여, 키보드 사용자 및 마우스 사용자 모두에게 현재 포커스된 항목이 무엇인지 명확한 피드백을 제공합니다. 이는 웹 접근성 지침 중 시각적 포커스 이동 인지를 향상시킵니다. 구조적 CSS 선택자를 의미론적 클래스로 변경하여 향후 접근성 요소 추가 시 렌더링이 깨지지 않도록 견고하게 만들었습니다.
💡 What: 디렉토리 목록에서 접근성을 위해 추가된 `.visually-hidden` 클래스 요소들로 인해 `a:hover span:last-child` CSS 선택자가 깨져 Hover시 나타나는 텍스트 밑줄이 사라진 문제를 수정했습니다. 대신 `.entry-label` 이라는 의미론적 클래스를 도입하여 해당 문제를 해결했습니다. 🎯 Why: 화면 낭독기를 위한 보이지 않는 요소가 마지막 자식으로 추가되면서 CSS의 구조적 선택자(`:last-child`)가 의도하지 않은 요소(숨겨진 텍스트)를 가리키게 되어 기존의 마우스 오버 시각 효과가 깨졌기 때문입니다. 📸 Before/After: Before: 링크에 마우스를 올려도 텍스트에 밑줄이 생기지 않음. After: 링크에 마우스를 올리면 올바르게 텍스트에 밑줄 효과가 나타남. ♿ Accessibility: 시각적 Hover 효과를 안정적으로 복원하여, 키보드 사용자 및 마우스 사용자 모두에게 현재 포커스된 항목이 무엇인지 명확한 피드백을 제공합니다. 이는 웹 접근성 지침 중 시각적 포커스 이동 인지를 향상시킵니다. 구조적 CSS 선택자를 의미론적 클래스로 변경하여 향후 접근성 요소 추가 시 렌더링이 깨지지 않도록 견고하게 만들었습니다.
Preservation status
master@728f0f33323e43573d6664209891099502827d5d3148b4509ecd56d86f349f364b0c6013787bce71323974bb6b20187998f3ab52e48ac8ffc604e332이 lane은
.visually-hiddentype span 때문에span:last-child가 visible filename이 아니라 숨겨진 span을 가리켜 hover/focus underline이 사라지는 같은 defect를 다룹니다. Generated candidate의.entry-labelsource/test delta는 #765와 사실상 동일하고 retrospective.jules/palette.md도 추가합니다.#772가 이 defect를
.entry-name이라는 visible-name 계약, parent entry 처리, focused generated-HTML regression, CHANGELOG와 함께 더 강하게 소유하고 있으며, accessible-name source를 불필요한aria-label로 덮지 않는 경계와 current-head browser/keyboard acceptance까지 명시합니다.Generated history는 삭제하지 않았습니다. 기존 head를 부모로 protected-base tree를 사용하는 ordinary descendant
323974bb...를 만들고 branch를force=false로 전진시켰습니다. 현재 protected-base 대비 0 files / +0 / -0입니다.PR-0 규칙상 zero diff만으로 닫지 않습니다. #772 또는 verified successor가 valid selector/source/test/accessibility evidence를 정상 protected ancestry에 완전히 승계한 뒤에만 이 predecessor를 완전 승계로 종료합니다.
Delivery Gate
Force push, destructive rebase, self-approval, source-neutral rerun, stale GREEN transfer, gate weakening, duplicate source repair는 사용하지 않습니다.