Thunderbird 深色主题下引用文本无法阅读,尽管之前已修复邮件问题

我开启了一个新话题,因为之前关于深色模式下引用文本无法阅读的 bug 报告已经被关闭了。

不幸的是,即使在使用了已包含先前修复的最新 Discourse 安装的情况下,Windows 11 上的 Thunderbird 158.0.1 仍然存在此问题。

如何复现

我在消息外观设置中使用了 Thunderbird 的深色主题,并且未勾选“对消息文本使用深色模式”。

这是我的设置:

在这种配置下,Discourse 通知邮件中的引用部分背景几乎为白色,但文字也显示为非常浅的颜色。这使得它们几乎无法阅读。

我的发现

我在 Fedora 的 Discourse 论坛上看到一个较早的讨论,描述了完全相同的问题:

深色主题下邮件中的引用和等宽文本无法阅读 – Fedora 讨论

早在 2023 年,该问题就被认定为 Thunderbird 的 bug。

我知道这不一定是一个 Discourse 的 bug,而且在 Thunderbird 中启用“对消息文本使用深色模式”可以规避此问题。

然而,从用户的角度来看,仍然是 Discourse 的通知邮件看起来出现了故障。人们不一定知道 Thunderbird 的这个设置,我也能理解为什么当邮件部分内容无法阅读时,他们会对此感到沮丧并归咎于 Discourse。

与其等待 Thunderbird 正确解决这个问题,我更希望在 Discourse 端有一个小的变通方案(如果可能的话)。

对我有效的简单修复方法

我查看了一封受影响邮件的 HTML 源代码,注意到引用部分明确定义了浅色背景(#f8f8f8),但没有定义文本颜色。

我尝试直接在引用的内联样式中添加 color:#222222。

以下是邮件源代码的相关部分,采用 quoted-printable 格式。

原始代码:

a-topic=3D"4328" style=3D"border-left:5px solid #e9e9e9;background-color:=
#f8f8f8;margin:0;padding:12px 25px 2px 12px;margin-bottom:10px">

修改后:

a-topic=3D"4328" style=3D"border-left:5px solid #e9e9e9;background-color:=
#f8f8f8;color:#222222;margin:0;padding:12px 25px 2px 12px;=
margin-bottom:10px">

这就足以让引用文本重新变得可读,而无需更改任何 Thunderbird 设置。

能否在 Discourse 中解决此问题?

我理解,简单地添加深色文本颜色可能还需要针对正确支持深色模式的邮件客户端进行相应的覆盖设置。我没有测试过那一部分。

尽管如此,针对我特定情况的修复方法出奇地简单,而且这个问题显然已经存在多年了。

是否有可能在 Discourse 中包含一个小的兼容性修复,以明确定义适合引用部分的文本颜色?

我意识到 Thunderbird 应该更好地处理这种情况,但我更希望看到所有人都能阅读 Discourse 邮件,而不是向每个受影响的用户解释 Thunderbird 的变通方案。

提前感谢大家的关注,特别是 @awesomerobot

我进一步调查了这个问题,发现如果要在行内引用样式中添加 color: #222222,还需要添加相应的深色模式覆盖规则。否则,正确应用深色模式样式的邮件客户端可能会出现深色文字显示在深色背景上的情况。

现有的深色模式 CSS 可以这样扩展:

code,
pre code,
blockquote {
  background: #323232 !important;
  border-color: #454545 !important;
  color: #dddddd !important;
}

我还注意到,code 和 pre code 似乎具有浅色背景,但没有明确定义文本颜色。它们可能会遇到同样的问题,因此可能也有必要在其默认样式中添加 color: #222222。

我没有单独测试代码块,但觉得值得一提。

希望能尽快修复这个问题。从技术角度来看,这是一个小问题,但对于接收这些通知的人来说,却相当令人沮丧。

希望这能有所帮助 @awesomerobot