새 주제 제목 입력 필드(#reply-title)가 RTL 사이트에서 여전히 LTR로 표시됨 — 수정이 여전히 효과 없음 (2026)

버그 설명

모든 RTL 사이트(페르시아어/파르시 인스턴스에서 테스트)에서, 컴포저의 토픽 제목 입력란이 페이지 전체가 RTL임에도 불구하고 LTR로 유지됩니다.

  • 입력란에는 dir="auto"가 설정되어 있거나(일부 경우 dir 속성이 아예 없는 경우) 존재합니다.
  • 계산된 direction은 항상 LTR입니다.
  • 첫 번째 RTL 문자를 입력할 때까지(그리고 입력 후에도 일관성이 없습니다) 플레이스홀더 텍스트, 커서 이동 및 입력 방향이 모두 잘못됩니다.

재현 방법

  1. 사이트를 RTL로 설정합니다(또는 페르시아어 로케일을 사용합니다).
  2. **“혼합 텍스트 방향 지원”**을 활성화합니다(공식 설정).
  3. 컴포저를 엽니다(새 토픽 또는 답변).
  4. 제목 필드(.title-input 안의 #reply-title)를 확인합니다.

현재 동작

입력란이 LTR로 렌더링됩니다:

  • 텍스트 정렬이 왼쪽입니다.
  • 커서와 선택이 LTR처럼 동작합니다.
  • direction: rtl, text-align: right, unicode-bidi: embed에 대해 공격적인 CSS !important 규칙을 적용해도 계산된 스타일은 여전히 LTR로 표시됩니다.

입력란의 HTML(인스펙터에서 확인된 내용):

<input aria-label="عنوان موضوع خود را اینجا بنویسید" placeholder="عنوان موضوع خود را اینجا بنویسید" ... id="reply-title" class="ember-text-field ember-view" type="text">

<input>의 계산된 스타일(관련 부분):

  • direction: rtl이 오버라이드되거나 무시됩니다.
  • 필드가 비어 있거나 중립 문자만 있는 경우 LTR로 폴백됩니다.

이미 시도한 것

  • 모든 표준 CSS 오버라이드(가장 구체적인 선택자 + !important + unicode-bidi: embed 포함).
  • “혼합 텍스트 방향 지원”을 켜고 끄기.
  • 하드 리프레시 + 캐시 삭제.
  • Meta에서 권장하는 정확한 규칙을 가진 테마 컴포넌트.

이 중 어느 것도 입력란이 처음부터 RTL을 준수하도록 강제하지 못합니다.

기대 동작

제목 입력란은 컴포저의 나머지 부분과 cooked content와 유사하게 동작해야 합니다:

  • RTL 사이트에서는 기본적으로 direction: rtl을 사용해야 합니다.
  • dir="auto"를 적절히 준수해야 합니다(또는 사이트가 RTL인 경우 dir="rtl"을 강제해야 합니다).
  • 플레이스홀더, 커서 및 텍스트 방향이 즉시 RTL이어야 합니다.

이 문제는 2025년 10월에 보고되었습니다(Titles placeholder in New topic is not RTL) 당시 “수정이 대기 중”이라는 메모가 있었습니다. 버그는 여전히 존재합니다.

Discourse 버전: (/admin에서 정확한 버전을 입력해 주세요)

브라우저/OS: (Chrome/Firefox + Windows/macOS/Android — 사용 중인 환경)

이 문제가 수정되기를 바랍니다 — 이는 컴포저에 남아 있는 가장 눈에 띄는 RTL 문제 중 하나입니다. 감사합니다!

4개의 좋아요

네, 이건 좀 까다로운 문제입니다. CSS로는 해결할 수 없으므로 마크업 변경이 필요합니다.

구체적으로, 필드가 비어 있을 때 direction auto를 적용하면 LTR이 됩니다.

즉, 입력값이 비어 있으면 LTR이 됩니다.

여기서 제가 만든 해결책은 이 경우 기본값을 "rtl"로 설정하고, 글자가 입력되는 즉시 auto로 전환하는 것입니다.

@Osama 리뷰/병합해 주시겠습니까?

https://github.com/discourse/discourse/pull/39213

@david 이 문제를 깔끔하게 테스트하기 위해 테스트 헬퍼를 코드베이스에 노출시켜야 했는데, 최종적으로 트리 셰이킹으로 제거될 종류의 코드라고 생각합니다.

3개의 좋아요

@Nima1 이 문제의 수정 사항을 병합했습니다. 보고해 주셔서 감사합니다.

2개의 좋아요

이 주제는 3일 후 자동으로 닫혔습니다. 새로운 답변은 더 이상 허용되지 않습니다.