Переопределит ли скрипт JAWS способность программы чтения с экрана читать DOM?

#accessibility #jaws-screen-reader

#Специальные возможности #jaws-программа чтения с экрана

Вопрос:

Мне поручено оценить некоторые устаревшие веб-страницы (классический asp) на предмет доступности. Вы можете предположить, что HTML не идеально сформирован и что он загружен с помощью встроенного javascript, и что мы используем библиотеки javascript, которые извлекают HTML для создания динамических функций. Это цирк там.

Хотя я признаю, что очевидным ответом является переписывание страницы (страниц), это не вариант в наших данных таблицах времени. Итак, я пытаюсь найти наилучший способ заставить страницы работать с программой чтения с экрана. Вот что, я думаю, я знаю.

  • Мы можем использовать JAWS scripting, чтобы указать браузеру, как читать страницу.
  • Мы можем использовать атрибуты ARIA, чтобы придать страницам лучшую организацию и структурированность.

В частности, я пытаюсь выяснить: Вопрос 1) Если скрипт JAWS присутствует, будет ли он использоваться исключительно браузером / программой чтения с экрана и игнорировать любые улучшения, которые я делаю в подчиненной структуре HTML?

Вопрос 2) Могут ли некоторые правильно размещенные атрибуты ARIA придать странице достаточную структуру, чтобы свойства программы чтения с экрана по умолчанию работали приемлемым образом (без скрипта JAWS).

Вопрос 3) Я подозреваю, что сложный ответ заключается в том, что мне нужно было бы сделать оба, чего я пытаюсь избежать, потому что у нас едва ли есть возможность сделать только одно. Но мы, конечно, не хотим терять клиента. 🙁

Большое спасибо за любой вклад.

Комментарии:

1. Я не уверен, как / используются ли скрипты JAWS другими вспомогательными технологиями. Вы ориентируетесь только на JAWS? ARIA должна иметь более широкую поддержку на других носителях. Пожалуйста, поделитесь разметкой страницы, если вам нужна более конкретная помощь.

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

3. Заказчик настаивал на том, чтобы мы использовали JAWS, потому что это их программа чтения с экрана. В основном я пытаюсь выяснить, какой путь мне следует выбрать. Скрипты JAWS или переделка ARIA. Мне больше нравится переделка ARIA, но если бы я загрузил образец страницы, ваши глаза застилались бы, и я даже не уверен, что ARIA придаст странице достаточную четкость.

4. Краткое обновление по этому проекту: В основном мы выбрали стратегическое использование атрибутов aria. Целью было не создание идеального интерфейса ADA. Это было сделано для того, чтобы сделать программу чтения с экрана сносной с целью улучшения исправлений в будущем. С этой целью правильное использование следующих атрибутов aria помогло нам: aria-label, чтобы заставить программу чтения с экрана читать все, что находится на этой метке, aria-required aria-invalid, чтобы отметить ошибку, и роль aria — Все это привело нас в нужное место. Это была большая кропотливая работа, но она сделала свое дело.

Ответ №1:

Вместо того, чтобы объяснять только JAWS, как получить доступ к вашим страницам, используйте JavaScript, чтобы объяснить это любой вспомогательной технологии (AT) для Интернета. Я ожидаю тех же усилий, хотя это принесет пользу большему количеству пользователей.

В скрипте JAWS вам нужно было бы описать способы доступа к узлам DOM, которые недоступны. Это будет включать

  • озвучивание информации, которую вы должны найти в другом месте страницы
  • добавление навигации с клавиатуры там, где она отсутствует

И то, и другое можно выполнить на JavaScript, возможно, даже проще (вам нужно будет обращаться к элементам DOM).

Чего вам нужно будет избегать, так это реструктуризации DOM и изменений в классах, поскольку они, скорее всего, используются сценариями, которые их генерируют.

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

Я бы рекомендовал составить список атрибутов и обработчиков, которые, как вы подозреваете, конфликтуют с существующими сценариями, и выполнить поиск по ним в скриптах, например, в обработчиках событий onkeypress или onfocus.

Комментарии:

1. Я не рассматривал это как вариант. Это может быть достаточно убедительным, чтобы погрузиться немного глубже, поскольку это может быть самое легкое решение (и это то, что я ищу). У нас нет опыта работы с JAWS или ARIA. Спасибо, что поделились идеей.

2. Я выбираю это в качестве своего ответа, потому что это лучше для меня в моей ситуации. Я ищу легкий способ заставить страницы работать. Самым большим препятствием является наш набор навыков. Я совершенно уверен, что мы могли бы найти кого-нибудь, кто освоит JAWS scripting и разберется с несовместимостью браузера и версий, но этого не произойдет в течение 6 недель. Я также нашел доступную библиотеку javasscript ( allyjs.io ), что может помочь в моих усилиях. Спасибо за информацию.

3. Просто хотел разобраться в премудростях javascript. После изучения JAWS мы узнали, что JAWS scripting — это не шутка. Это приводит к огромному количеству обслуживания, связанного с разными пользователями, у которых разные версии. Если у вас есть приложение SaaS, разные клиенты будут иметь разный опыт. Тогда у вас проблемы с браузером. Если у вас много javascript, у вас возникнут проблемы. Я добиваюсь значительного прогресса в создании функции javascript, которая очищает элементы страницы и улучшает работу программы чтения с экрана. Возможно, не полностью соответствует, но страницы работают.

4. Спасибо за обновление. Является ли библиотека allyjs, которую вы нашли, полезной для вас? Если это так, я думаю, это было бы отличным дополнением к ответу.

5. На самом деле я не использовал allyjs. Я кратко ознакомился с этим, но быстро понял, что заказчик в основном искал что-то быстрое, что помогло бы программе чтения с экрана. Самым быстрым способом было добавить aria-метки, ‘роли’, недопустимые атрибуты aira в ключевых местах. Несколько дней фиктивной работы привели все в приемлемое состояние.

Ответ №2:

Абсолютно лучший способ сделать ваше приложение / сайт доступным — использовать семантический HTML. Не имеет значения, сгенерирован ли этот HTML с помощью asp, jsp или чего-то еще.

Если у вас есть таблица, используйте <таблица> .
Если у вас есть заголовок, используйте <h2> .
Если у вас есть список, используйте <ul> .
Используйте <раздел>, <статья>, <навигация>, <в сторону>, <верхний>, <нижний колонтитул> и т. Д

Вот как вы создаете структуру на своей странице, которую оценит пользователь программы чтения с экрана.

Если вы не можете использовать собственный HTML, затем вернитесь к ARIA, но относитесь к нему как к salt. Немного значительно улучшает вкус, но слишком много портит блюдо.

Если вы не можете использовать собственный <h2> , то убедитесь, что вы используете соответствующую роль и атрибуты.

 <div role="heading" aria-level="2">this is my custom h2</div>
  

Если вы не можете использовать собственный <header> , то убедитесь, что вы используете соответствующую роль и атрибуты.

 <div role="banner">my header stuff goes in here</div>
  

Я бы рекомендовал полностью забыть о скриптах JAWS. Не имеет значения, что, по мнению заказчика, они должны сосредоточить на этом наше внимание. Речь идет не об этом клиенте. Речь идет о клиентах этого заказчика. Конечные пользователи. Они должны иметь возможность использовать любую программу чтения с экрана, к которой они привыкли и с которой им наиболее удобно. В этом и заключается цель доступности — сделать сайт удобным для использования как можно большим количеством людей, используя любую вспомогательную технологию, к которой они привыкли.

Следование Рекомендациям по обеспечению доступности веб-контента (WCAG) приведет вас к этому результату.

Комментарии:

1. Теоретически я согласен с семантическим HTML. На данный момент это не совсем вариант из-за беспорядка на страницах. В основном мы ищем легкий способ исправить это, и я надеюсь получить некоторые разъяснения по поводу взаимосвязи между скриптами JAWS и ARIA. У нас нет экспертов ни в одной из областей. Звучит так, как будто простого пути не существует и исправление должно быть в форме ARIA для очистки структуры и скриптов JAWS, чтобы программа чтения с экрана работала. Мне нравится идея javascript, представленная ниже, но нужно изучить, как это могло бы работать