错误描述
在任何从右向左(RTL)的站点上(已在波斯语/法尔西语实例上测试),编辑器中的主题标题输入框即使整个页面为 RTL 布局,仍保持从左向右(LTR)显示。
- 该输入框设置了
dir="auto"(或在某些情况下根本没有dir属性)。 - 计算后的
direction始终为 LTR,无论设置如何。 - 占位符文本、光标移动和输入方向均不正确,直到输入第一个 RTL 字符(即使如此,行为仍不一致)。
复现步骤
- 将站点设置为 RTL(或使用波斯语区域设置)。
- 启用“支持混合文本方向”(官方设置)。
- 打开编辑器(新建主题或回复)。
- 查看标题字段(
.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 方向。
预期行为
标题输入框应像编辑器的其余部分和已处理内容一样表现:
- 在 RTL 站点上默认设置为
direction: rtl。 - 正确支持
dir="auto"(或在站点为 RTL 时强制设置dir="rtl")。 - 占位符、光标和文本方向应立即表现为 RTL。
该问题于 2025 年 10 月报告(https://meta.discourse.org/t/titles-placeholder-in-new-topic-is-not-rtl/385232),并附有“修复待定”的说明。但该错误仍然存在。
Discourse 版本:(请填写您在 /admin 中的确切版本)
浏览器/操作系统:(Chrome/Firefox + Windows/macOS/Android — 您正在使用的任何组合)
非常希望此问题能得到修复——这是编辑器中剩余的最明显的 RTL 问题之一。谢谢!
