Skip to content

fix(a11y): name directory navigation from translatable text - #637

Draft
seonghobae wants to merge 6 commits into
masterfrom
palette-ux-nav-aria-labelledby-1368150634114663305
Draft

fix(a11y): name directory navigation from translatable text#637
seonghobae wants to merge 6 commits into
masterfrom
palette-ux-nav-aria-labelledby-1368150634114663305

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Current exact authority

  • protected/base: master@728f0f33323e43573d6664209891099502827d5d
  • exact head: b242c314aea49357c0ea2171a88778d4cfb92171
  • lifecycle: Draft / source-level accessibility contract present / browser, translation and assistive-technology evidence pending
  • effective delta: src/main/kotlin/html4tree/main.kt, src/test/kotlin/html4tree/MainTest.kt

Review → minimal repair

The valid local change replaces the navigation landmark's literal aria-label="디렉토리 목록" with aria-labelledby="nav-heading" and adds a visually hidden <h2 id="nav-heading">디렉토리 목록</h2>. The generated text node can participate in ordinary document translation while still supplying the navigation landmark's accessible name. The existing regression pins that source structure.

The generated branch also appended a repository-wide .jules/palette.md rule that generalized this one implementation choice into a universal navigation doctrine. Normal descendant b242c314aea49357c0ea2171a88778d4cfb92171 restores .jules/palette.md to the exact protected blob 604d7810eaba3b51cc8c14b97b160a0b1a81a12b. The protected Palette already carries the relevant hidden-text/translation guidance; no force push or destructive rebase was used.

Evidence boundary

Source-string assertions do not establish that Chrome Translate, Safari/VoiceOver, NVDA, or another browser/assistive-technology combination actually translates and announces the landmark as intended. The hidden <h2> also deliberately adds a heading-navigation target, so that document-outline change must be verified rather than called an unconditional accessibility improvement.

Before Ready, verify on this exact generated document in a current browser:

  • the accessibility tree exposes one navigation landmark named from nav-heading and no duplicate id/name;
  • keyboard and heading/landmark navigation remain coherent;
  • browser translation changes the visible-hidden text and the computed accessible name if translation compatibility remains part of the rationale;
  • the hidden heading produces no visual layout shift, clipping or responsive regression at narrow/intermediate widths;
  • representative KO/EN and mixed CJK/Latin directory content does not make the surrounding document language/heading structure misleading.

Do not claim blanket screen-reader, WCAG, or browser-translation compatibility from source inspection alone.

Exact-head evidence

Fresh exact-head workflows are non-terminal: CI 34014106553, Security Scan 34014106662, SAST Semgrep 34014106589, and CodeQL PR 34014106611 are queued. Predecessor results do not transfer, and no qualifying independent current-head approval is assumed.

Delivery Gate: 의도성 PASS; 기능 완전성 PARTIAL pending real-browser landmark/translation execution; 콘텐츠 적합성 PASS after generated doctrine removal; 복원력 PARTIAL pending responsive/keyboard checks; 증거성 FAIL/PENDING until current browser/a11y evidence exists; 고유성 N/A.

Keep Draft. No self-approval, gate weakening, force update, destructive rebase, generated-doctrine promotion, fabricated screenshot/AT evidence, or predecessor GREEN transfer.

@google-labs-jules

Copy link
Copy Markdown

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae marked this pull request as draft September 6, 2026 05:29
@seonghobae seonghobae changed the title 🎨 Palette: [UX 개선] nav 요소에 aria-labelledby 적용 fix(a11y): name directory navigation from translatable text Sep 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant