Проблема с чатом на iPad с iOS 12.5

Отличный плагин. Отличная работа.

Я обнаружил проблему с Discourse Chat на iPad под управлением iOS 12.5. Я понимаю, что поддержка этой версии в Discourse будет прекращена в январе, но поскольку она сейчас ещё «поддерживается», я хотел сообщить об этом.

Проблема проявляется как ошибка интерфейса, но, кажется, она глубже.

Проблема интерфейса

Поле ввода текста слишком узкое по высоте. Из-за этого очень трудно установить курсор в нужное место.

Смотрите здесь…

Увеличенный вид…

Проблема удобства использования

Другая проблема, которая может быть связана с предыдущей, заключается в том, что даже если вы установите курсор в поле, это не сигнализирует о прочтении сообщения чата. Синий/зелёный индикатор прочтения в верхней части экрана остаётся активным, даже если вы уже заходили в канал чата. Это, очевидно, затрудняет использование чата, так как вы не можете привлечь внимание собеседника к сообщению, поскольку индикатор всегда включён.

Несо consistency

Обе эти проблемы проявляются в большинстве случаев, но я также — иногда — наблюдал ситуации, когда поле ввода текста выглядело нормально, и установка курсора в него сбрасывала индикатор прочтения.

Я не могу найти закономерность в этом несоответствии, но это может быть связано с различиями между личными чатами и каналами — хотя это тоже может быть красной сардиной (игра слов: «красная сардина» — отвлечение внимания, pun intended).

Причина, по которой это для меня такая проблема, в том, что этот экземпляр Discourse используется в школе 10–12 пользователями, всем из которых выданы iPad. Я просил обновить их, но устройства старые и поддерживают максимум iOS ~12.5. Мне сказали, что нам ещё какое-то время придётся с ними работать, что, безусловно, создаст мне проблемы после января.

Спасибо!

1 лайк

Хотя я вижу, что эту тему переместили в категорию обсуждения UX, а не в категорию ошибок, хочу подчеркнуть, что это не просто проблема пользовательского интерфейса или косметическая проблема.

Как я уже упоминал выше, индикатор уведомления о чате не исчезает, даже если канал посещен и курсор помещен в поле ввода текста.

Словом, событие focus или подобное не срабатывает.

Спасибо!

Поддержка iOS 12.5 прекращается в январе. Discourse 3.0 — последняя версия, которая будет её поддерживать; после этого пользователи увидят режим только для чтения.

Поскольку чат в настоящее время реализован как плагин, я не уверен, сколько усилий будет затрачено на поддержку чата на таких старых устройствах всего в течение 3–4 месяцев. Возможно, кто-то из команды сможет прокомментировать.

Спасибо за ответ, @Stephen.

Да, я это понимаю — и в первом сообщении я уже отметил, что поддержка этих версий скоро закончится. Мне действительно хотелось получить официальную позицию, чтобы я мог спланировать свои действия.

Также мне интересно узнать, что именно потребуется. Я могу представить, что поддержка такой старой платформы может оказаться слишком сложной задачей, но если это простое исправление, я был бы рад его увидеть. Я также с готовностью помогу, если это впишется в мои ограниченные навыки.

Однако у меня есть несколько замечаний.

Когда вы говорите «всего 3–4 месяца», я бы предположил, что возможно (хотя, возможно, и нежелательно) зафиксировать версии Discourse и плагина Chat на определённых выпусках и работать «без проблем» дольше этого срока.

Очевидно, мне нужно будет учесть риски, связанные с отсутствием обновлений безопасности, но бюджеты в школах Великобритании очень ограничены, и обновление iPad до, скажем, июля следующего года, скорее всего, не будет возможным вариантом.

Ещё раз спасибо за то, что поделились своими мыслями.

tl;dr: Я создал компонент темы, который, кажется, решает проблему, но хотел бы проверить правильность используемого CSS и подхода.

Обновление

Несколько слов об обновлениях. Я создал простой компонент темы, который завтра протестирую в реальном времени, но выглядит так, что он делает Discourse Chat рабочим на iOS 12.5.

Особая благодарность замечательным людям из BrowserStack, которые любезно предоставили доступ к отладке на планшете iPad в облаке с версией 12.x в рамках их программы для проектов с открытым исходным кодом.

Хотя это решение кажется рабочим, я действительно буду признателен за проверку любому, кто хорошо разбирается в CSS, так как я просто методом проб и ошибок и с помощью Google пришёл к этому результату.

Что происходило?

Я упоминал, что проблема казалась несколько «случайной». Оказалось, что размер поля ввода чата обратно пропорционален общей высоте прокручиваемого текста (а не только видимого текста) в контейнере сообщений чата div.

Таким образом, если в конкретном канале не так много сообщений, высота поля ввода чата выглядит нормальной. По мере появления новых сообщений в канале высота поля ввода чата уменьшается.

Дополнительная проблема

Помимо проблемы с уменьшением размера textarea, я также заметил, что кнопка «Назад к каналам» (стрелка / знак «меньше») была слегка смещена.

Решение?

Для кнопки «Назад к каналам» следующий CSS возвращает её в правильное положение…

div.topic-chat-float-container .chat-drawer .topic-chat-drawer-header {
    align-items: center;
}

Смотрите…

Используя BrowserStack, я смог найти контейнер уменьшающегося поля ввода чата div. Я обнаружил, что если применить следующий CSS…

.chat-composer-container {
    flex-shrink: 0;
}

…то высота контейнера поля ввода чата сохраняется независимо от размера содержимого чата.

Вот так…

Я готов поддерживать компонент темы для моих пользователей iPad на версии 12.5, но просто хотел бы знать, является ли этот подход с CSS корректным / оптимальным / опасным.

Спасибо!

2 лайка

Отличная работа!

Сейчас я не могу сразу прокомментировать это, но я добавил ваш вопрос в свой список, чтобы обсудить его более широко, и тогда мы сможем ответить здесь с большей ясностью. Однако, возможно, пройдет ещё неделя или две, прежде чем мы сможем дать более определённый ответ.

2 лайка

Моя общая обеспокоенность заключается в том, что в долгосрочной перспективе это нежизнеспособно.

Как только мы откажемся от поддержки в ядре в январе, JavaScript может начать давать сбои, и это будет невозможно исправить в компоненте темы.

2 лайка

Да, это имеет смысл.

Для меня это временное решение, которое поможет дожить до следующего бюджетного года, когда школа, надеюсь, сможет предоставить моим пользователям более мощные iPad.

Фактически, если бы Discourse Chat не стал таким большим хитом среди наших пользователей, я бы просто проигнорировал его, но он идеально вписывается в некоторые из наших автоматизированных процессов.

Я надеюсь зафиксировать рабочий идентификатор коммита для Chat и Discourse в app.yml к январю, а затем попытаться кое-как добраться до финиша.

2 лайка

Спасибо за предоставленный контекст. Да, это, безусловно, имеет смысл. Жаль, что поддержка этих устройств не проще, или что Apple не обновляет браузеры независимо от iOS.

У Android такой проблемы нет… это такая «проблема Apple».

2 лайка