Цитируемый текст нечитаем в тёмной теме Thunderbird, несмотря на исправление в предыдущем письме

Я открываю новую тему, так как предыдущий отчет об ошибке о нечитаемых цитатах в темном режиме был закрыт.

К сожалению, проблема все еще сохраняется в Thunderbird 158.0.1 на Windows 11, даже при использовании актуальной установки Discourse, которая уже включает предыдущее исправление.

Как воспроизвести

Я использую темную тему Thunderbird с отключенной опцией «Использовать темный режим для текста сообщений» в настройках внешнего вида сообщений.

Вот мои настройки:

При такой конфигурации цитаты в уведомлениях от Discourse имеют почти белый фон, но текст также отображается очень светлым цветом. Это делает их практически нечитаемыми.

Что я обнаружил

Я наткнулся на старое обсуждение на форуме Fedora Discourse, где описана точно такая же проблема:

Цитаты и моноширинный текст нечитаемы в письмах с темной темой – Обсуждение Fedora

Еще в 2023 году проблема была идентифицирована как баг Thunderbird.

Мне известно, что это не обязательно баг Discourse и что включение опции «Использовать темный режим для текста сообщений» в 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