Общение с помощью программы экранного доступа

Это странно, так как такое поведение очень последовательно на моих машинах с Windows.
Теперь протестировано в Chrome Canary: Google Chrome версия 111.0.5536.0.
Попробуйте следующее:
Перейдите по адресу:
https://meta.discourse.org/
Найдите тему в списке тем:
Does Discourse offer anything similar to WordPress custom taxonomy?

Перейдите в последнюю колонку в этой строке с текстом:
В настоящее время в моём датском окружении это отображается как 3t.
Нажатие Enter должно переместить фокус на последний ответ в этой теме, но этого не происходит.
Когда я нажимаю Enter, обычно ничего не происходит, так как страница не обновляется, и скринридер ничего не делает.
Однако, если я читаю строку, я всё ещё нахожусь на первой строке страницы, а не на ожидаемом заголовке последнего сообщения в теме.

Похоже, NVDA немного перемещает фокус, но даже не внутрь самой темы. Оба скринридера работали как ожидалось до момента, когда я сообщил об этой проблеме.
Переключившись на Firefox: Firefox Nightly версия 110.0a1.
В этом случае всё работает как ожидалось: в приведённом выше примере нажатие на 3t, которое перемещает к последнему сообщению в теме, устанавливает фокус так, как и должно быть.

4 лайка

Похоже, что ситуация ухудшилась.

В частности, какое-то время это работало на множестве саморазмещённых экземпляров, которые я использовал, но теперь не работает на сайтах, которые вы размещаете для моего работодателя — в частности, на https://community.fly.io и на определённом внутреннем форуме discourse.team, URL которого вы, вероятно, легко сможете определить из вышесказанного. :slight_smile: Оба, похоже, используют одну и ту же версию Discourse.

Это определённо создаёт трудности, так как мы много работаем с Discourse, и как незрячий сотрудник я постоянно теряю место как во внутренних обсуждениях, так и в разговорах поддержки с нашими участниками сообщества. Возвращение к ранее прочитанным сообщениям занимает у меня 20–30 секунд, чтобы найти своё прежнее место.

Ощущается как времена моего старого модема со скоростью 14400 бод. :slight_smile:

Спасибо за любую помощь.

2 лайка

Извините за шум. Я немного покопался, и это работает в Firefox, но не в Chrome. Fly требует использования Chrome для работы, поэтому проблема возникла именно там, а не везде, где я использую Firefox.

Рад, что это не такая серьёзная регрессия, как я опасался, но было бы здорово, чтобы это работало и в Chrome. Использую NVDA и Chrome без установленных расширений.

4 лайка

Привет, Нолан! :wave:

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

Дайте нам знать. :slight_smile:

3 лайка

Да, именно так. В Firefox при клике на тему фокус возвращается к последней прочитанной позиции чётко и надёжно. В Chrome этого не происходит.

Спасибо.

2 лайка

Привет,

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

Клаус

1 лайк

Спасибо за подтверждение, @nolan и @thoeg. :+1:

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

Мы обновим вас здесь. :slight_smile:

2 лайка

Ого. Я просто поражён отзывчивостью сообщества основных разработчиков здесь, на Discourse!

Кому-то это может показаться мелочью, но — вау — правда, я хочу воздать хвалу вашей человечности, чтобы все могли этим насладиться!!!

Это именно то, что я так люблю в open-source и в духе сотрудничества!!!

4 лайка

Я проверял, и казалось, что проблема с фокусом, которая иногда возникала в конкретной теме в потоке, теперь вроде бы решена, но не всегда. Затем мне напомнили о чём-то, что, похоже, является регрессией, возникшей по пути.
После каждого сообщения в теме у вас есть несколько кнопок, например, однако на этой кнопке написано «Вы лайкнули это сообщение», вместо того чтобы просто дать возможность поставить лайк.
Затем есть кнопка «Ответить на сообщение номер XX» — этот текст не переведён: часть строки «ответить» на датском переводе остаётся на английском. Таким образом, здесь две связанные проблемы.
Клаус

Приношу извинения за задержку, Нолан. Я только что протестировал это с помощью NVDA (через онлайн-сервис Assistiv Labs), и у меня это работает как в Firefox, так и в Chrome. При использовании сочетания клавиш для навигации назад я вижу, что фокус находится на статье, которую я ранее открыл.

Среда тестирования: Chrome 115, NVDA 2023.1

Есть ли какая-то конкретная последовательность действий, которая неизменно приводит к этой проблеме?

Попробуйте следующее, где я вижу проблему в Chrome и Edge каждый раз:

откройте:
https://meta.discourse.org/tag/accessibility

Перейдите в таблицу к первой теме — это эта тема.
Переместите фокус в последнюю колонку, где написано:
3D
При активации это должно переместить фокус на последнюю тему в этой ветке.
Проблема в том, что в Chrome и Edge этого не происходит, однако в Firefox всё работает как надо.

1 лайк

@thoeg Я думаю, что текст кнопок можно настроить с помощью

Здравствуйте,

Но не как пользователь, и поскольку текст вводит в заблуждение и появляется на нескольких сайтах, это ещё одна проблема доступности.

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

Так что это действительно не проблема программного обеспечения Discourse.

Но я согласен с вашей идеей, что текст кнопок (все одинаковые) немного запутывает — вы могли бы рассмотреть возможность создания новой темы с этой проблемой, особенно если вы можете предложить конкретное улучшение или решение?

Привет!

Какую программу экранного доступа вы используете? Я не знаком с этой функцией, так как никогда её не использовал, но хотел бы немного узнать о ней и посмотреть на эту проблему :slight_smile:

Спасибо, Клаус, я могу воспроизвести это! Вот видео, демонстрирующее поведение (на 0:09 последняя запись должна получить пунктирную синюю рамку, но это не работает.)

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

Мы займёмся этим вопросом в ближайшее время.

3 лайка

Я только что объединил исправление для двух пунктов, обсужденных выше, @nolan @thoeg. Для справки, это PR: A11Y: Fix selecting topic when navigation via keyboard by pmusaraj · Pull Request #22996 · discourse/discourse · GitHub (это должно появиться на meta примерно через час, а на других сайтах — позже на этой неделе).

1 лайк

Если это исправление, о котором вы говорили, уже давно доступно, оно не решило мою проблему. Протестировано сегодня в Chrome и Edge, как описано, с использованием JAWS и NVDA. Точка, куда попадает фокус, различается у экранных дикторов, но в любом случае она не попадает туда, куда должна — на последнее сообщение в теме.
Клаус

1 лайк

В моих тестах с NVDA в Chrome под Windows фокус оказывается на последнем ответе в теме. Отображение фокусируемого элемента не происходит, так как мы используем скрытый элемент для переключения фокуса, но если после перехода к теме нажать Tab, фокус будет последовательно перемещаться на автора сообщения.

Извините, что так долго отвечал — я был в поездке и только сейчас наконец-то нагнал все дела.

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

Если я перейду на https://meta.discourse.org и в Firefox нажму на приветственный пост, первое, что произнесёт NVDA, — это заголовок первого уровня с именем пользователя, датой публикации и т. д.

Если я сделаю то же самое в Chrome, ничего не произносится. Возможно, фокус визуально оказывается там, где нужно, но по какой-то причине не озвучивается.

Это может быть связано с различиями в реализации доступности в Chrome и Firefox. Если я использую кнопку «Назад» в обоих браузерах, фокус правильно оказывается на активном посте, и это озвучивается. Однако если я открою пост в Chrome, несколько раз нажму h, чтобы перейти к более поздней теме, затем нажму «Назад» и снова кликну по посту, нажатие h, похоже, переводит меня к первому видимому посту, а не к последнему прочитанному. Это наблюдается на нескольких форумах, размещённых на Discourse.

Кажется, это проблема с таймингом. Существует ли в DOM элемент, на который пытается сфокусироваться код, связанный с доступностью? Возможно, добавление короткого setTimeout перед установкой фокуса, например на 50 мс, решит проблему? Обычно я подхожу к таким проблемам именно так, но могу ошибаться.

Спасибо за всю вашу работу над этим.

2 лайка