Título de novo tópico de entrada (#reply-title) permanece LTR em sites RTL — correção ainda não eficaz (2026)

Descrição do bug

Em qualquer site RTL (testado em uma instância em persa/farsi), o campo de entrada do título do tópico no editor permanece LTR, mesmo quando toda a página está em RTL.

  • O campo de entrada possui dir="auto" (ou, em alguns casos, nenhum atributo dir).
  • A direction calculada é LTR, independentemente do contexto.
  • O texto do placeholder, o movimento do cursor e a direção de digitação estão todos incorretos até que o primeiro caractere RTL seja digitado (e mesmo assim, o comportamento é inconsistente).

Passos para reproduzir

  1. Configure o site para RTL (ou use um locale persa).
  2. Ative “Suporte a direção de texto mista” (a configuração oficial).
  3. Abra o editor (Novo Tópico ou Resposta).
  4. Verifique o campo de título (#reply-title dentro de .title-input).

Comportamento atual

O campo de entrada é renderizado como LTR:

  • O alinhamento do texto é à esquerda.
  • O cursor e a seleção comportam-se como LTR.
  • Mesmo com regras CSS agressivas usando !important em direction: rtl, text-align: right e unicode-bidi: embed, o estilo calculado ainda mostra LTR.

HTML do campo de entrada (conforme visto no inspecionador):

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

Estilos calculados no <input> (parte relevante):

  • direction: rtl é sobrescrito ou ignorado.
  • O campo volta a ser LTR quando está vazio ou quando contém apenas caracteres neutros.

O que já foi tentado

  • Todas as substituições CSS padrão (incluindo seletores mais específicos + !important + unicode-bidi: embed).
  • Alternar a opção “Suporte a direção de texto mista” ligada/desligada.
  • Atualização forçada + limpeza de cache.
  • Componente de tema com as regras exatas recomendadas no Meta.

Nenhuma dessas soluções força o campo de entrada a respeitar o RTL desde o início.

Comportamento esperado

O campo de título deve se comportar como o restante do editor e do conteúdo formatado:

  • Padrão para direction: rtl em sites RTL.
  • Respeitar corretamente dir="auto" (ou ter dir="rtl" forçado quando o site estiver em RTL).
  • O placeholder, o cursor e a direção do texto devem ser RTL imediatamente.

Isso foi relatado em outubro de 2025 (Titles placeholder in New topic is not RTL), com a observação de que “uma correção está pendente”. O bug ainda persiste.

Versão do Discourse: (por favor, preencha com sua versão exata em /admin)

Navegador/SO: (Chrome/Firefox + Windows/macOS/Android — o que você estiver usando)

Gostaria muito de ver isso corrigido — é um dos problemas RTL mais visíveis que restam no editor. Obrigado!

4 curtidas

Sim, essa é uma situação complicada. Não é possível resolver apenas com CSS; precisamos de uma alteração na marcação.

Especificamente, definir direction: auto quando um campo está vazio resulta em LTR.

Assim, se a entrada estiver em branco, o resultado será LTR.

A correção que fiz aqui é definir o padrão como “rtl” neste caso e alternar para “auto” assim que uma letra for inserida.

@Osama, você se importa de revisar e fazer o merge?

@david, precisei expor um helper de teste na nossa base de código para testar isso de forma limpa, mas presumo que esse seja o tipo de coisa que acabaremos removendo (tree-shaking) eventualmente.

3 curtidas

@Nima1, mesclamos a correção para este problema – obrigado por relatá-lo.

2 curtidas

Este tópico foi fechado automaticamente após 3 dias. Novas respostas não são mais permitidas.