Skip to content

fix(i18n): isolate unknown-direction file names in generated HTML - #665

Draft
seonghobae wants to merge 7 commits into
masterfrom
palette-bidi-text-10471993632778769630
Draft

fix(i18n): isolate unknown-direction file names in generated HTML#665
seonghobae wants to merge 7 commits into
masterfrom
palette-bidi-text-10471993632778769630

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

변경

  • element content로 렌더링되는 directory/file name에는 dir="auto"를 적용합니다.
  • markup을 넣을 수 없는 <title>title="..."의 사용자 제어 phrase는 FSI(U+2068) / PDI(U+2069)로 감싸 surrounding UI의 방향성에 영향을 주지 않도록 격리합니다.

W3C Internationalization guidance는 runtime에 주입되는 방향 미상의 text에 dir="auto" 또는 bdi를 사용하고, markup을 사용할 수 없는 title/attribute value에는 Unicode directional isolate characters를 사용하는 방식을 권고합니다.

Reference: https://www.w3.org/International/articles/inline-bidi-markup/index.en.html

경계

이 변경은 주변 문맥으로의 BiDi 영향 전파를 격리하는 UX/i18n 수정입니다. 파일명 자체에 포함된 RLO/LRO 등 directional override를 제거하거나 파일명 내부의 시각적 spoofing을 일반적으로 방지한다고 주장하지 않습니다. 따라서 별도 PR #664의 [MEDIUM] vulnerability fixed 표현은 이 코드가 증명하는 범위보다 강합니다.

#664와 비교한 결과 production blob src/main/kotlin/html4tree/main.kt와 test blob src/test/kotlin/html4tree/MainTest.kt가 byte-identical하여 이 PR이 두 PR의 유효 production/test delta를 모두 보유합니다. #664는 이 verified successor를 근거로 정리했고 predecessor checks/reviews는 전용하지 않습니다.

현재 exact head: 5ab189bc2cfaa28ce6ffdabb9dc100125a55a56a

docs/product-technical-gap-baseline.md에 선택/기각 이유와 남은 browser acceptance를 code-current하게 기록했습니다.

완료 전 acceptance

현재 source-string test만으로 material UI 완료를 주장하지 않습니다. Ready 전에는 실제 mixed LTR/RTL filename을 생성한 current-head HTML을 browser에서 확인하여 다음을 남겨야 합니다.

  • <h1>/file row의 mixed-direction rendering과 surrounding Korean labels의 방향 보존
  • page title/tooltip의 FSI/PDI containment
  • keyboard navigation과 screen-reader/AX tree에 기존 link name·type 정보가 유지되는지 확인
  • normal/empty/error path와 narrow/intermediate/desktop viewport에서 clipping/overflow 회귀가 없는 current-head screenshot/E2E
  • 동일 head의 CI/Security/SAST/CodeQL 및 qualifying review

Delivery Gate: 의도성 PASS / 기능 완전성 PARTIAL / 콘텐츠 적합성 PASS / 복원력 PENDING / 증거성 FAIL·PENDING / 고유성 N/A

@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 9, 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 10, 2026 00:09
@seonghobae seonghobae changed the title 🎨 Palette: [UX improvement] BiDi 텍스트 처리 향상 fix(i18n): isolate unknown-direction file names in generated HTML Sep 10, 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