Вопрос

Как веб-разработчик, ряд проектов, над которыми я работаю, подпадают под юрисдикцию правительства и, следовательно, подлежат 508 Доступность законы, а иногда и Доступность W3C Инструкция.В какой степени JavaScript может быть использован при соблюдении этих требований?

Исходя из этого, в какой степени используется JavaScript, в частности AJAX, и такие пакеты, как jQuery, для выполнения таких действий, как отображение модальных диалогов, всплывающих окон и т.д.поддерживается современным программным обеспечением для обеспечения специальных возможностей, таким как JAWS, Orca и т.д.?В прошлом правило звучало примерно так: "Если это не сработает в Lynx, то не сработает и в программе чтения с экрана". Это все еще верно, или в этих областях достигнут больший прогресс?

Редактировать:Похоже, все сходятся во мнении, что javascript работает нормально до тех пор, пока существуют резервные копии, отличные от javascript, однако по-прежнему кажется неопределенным поддержка AJAX в программном обеспечении для чтения с экрана.Если у кого-то есть конкретный опыт работы с этим, это было бы очень полезно.

Это было полезно?

Решение

Если доступность является вашей главной задачей, всегда запускайте веб-сайт, используя соответствующий стандартам (выберите определение типа документа и придерживайтесь его) HTML. Если это веб-приложение (отправка форм и т. Д.), Убедитесь, что формы будут работать, используя только HTTP GET и POST. Как только у вас будет полноценный веб-сайт / приложение, вы можете добавить кусочки CSS и JavaScript, пока сайт все еще функционирует, с одним или обоими отключенными.

Наиболее важной концепцией здесь является Прогрессивное улучшение . Вы добавляете дополнительные функции, используя CSS / JavaScript, но ваш веб-сайт / приложение также будет прекрасно работать без .

Отличный инструмент для тестирования 508 , WAI , CSS выключен, JavaScript выключен, попробуйте использовать для веб-разработчиков для Firefox.

Другие советы

Я думаю, что ответ на самом деле в том, как ты делаешь вещи. JQuery обладает способностью быть ненавязчивым и, следовательно, доступным. Хитрость заключается в том, чтобы иметь избыточность вокруг ваших вызовов AJAX, чтобы браузеры без JavaScript все еще могли использовать ваш сервис. Другими словами, везде, где у вас есть JavaScript-ответы, диалоги и т. Д., Вы должны иметь ухудшенный эквивалент.

Если вы имеете в виду доступность и правильно тестируете оба варианта использования (JavaScript и не-JavaScript), вы сможете писать приложения для обеих аудиторий.

Пример (вызов $ (document) .ready пропущен для ясности и краткости:

<script>
  $("#hello").click(function(){
    alert("Hi");
  });
</script>
<a href="/say_hello.htm" id="hello">Say Hello</a>

Тривиальный пример, но в основном он оценивает событие JavaScript клика, только если поддерживается JavaScript. В противном случае он будет работать как обычная ссылка и перейдет к say_hello.htm - ваша задача как разработчика - убедиться, что оба результата обработаны соответствующим образом.

Надеюсь, это поможет!

Постепенное усовершенствование, безусловно, является одним из путей, но ненавязчивость - это еще не все, и конец всей доступности JavaScript, поскольку программы чтения с экрана, как правило, используют браузеры в качестве основы для своей работы. Поскольку эти браузеры поддерживают JavaScript, скрипты на вашей странице все равно будут работать. Это особая проблема с AJAX, так как нажатие на одну часть страницы может изменить другую часть страницы, о которой не знает программа чтения с экрана.

По мере взросления AJAX появляются способы сделать его доступным. Посмотрите в WAI-ARIA современные методы обеспечения доступности AJAX и AxsJAX от Google за хороший способ его реализации.

<Ч>

Видишь

Вы также можете взглянуть на FlashAid, хотя это далеко не идеальное решение.(Но, если вы использовали прогрессивное улучшение и использовали AJAX только при наличии Flash, а пользователь не использовал accessibility API, у вас могло бы быть разумное решение...для Windows.)

В долгосрочной перспективе WAI-ARIA - это решение.Это в некоторой степени поддерживается в JAWS 10 (бета-версия) и Firevox, но этого, конечно, недостаточно для всех современных пользователей.

  

JQuery обладает способностью быть ненавязчивым и, следовательно, доступным. Хитрость заключается в том, чтобы иметь избыточность вокруг ваших вызовов AJAX, чтобы браузеры без JavaScript все еще могли использовать ваш сервис. Другими словами, везде, где у вас есть ответы, диалоги и т. Д., JavaScript должен иметь ухудшенный эквивалент.

Один из способов сделать это для повторного использования вашего кода - сделать так, чтобы ваш " простой " страница, вызывающая «функцию» (или что вы используете для логики на стороне сервера), которое может быть вызвано само по себе, возвращая JSON или XML.

Например: /static/myform.asp (на стороне сервера «включает» ту же логику, что и /ajax/myform.asp) таким образом вы будете использовать asp в качестве шаблонов django.

Конечно, с помощью полнофункциональной среды для звонков и свистков вы могли бы сделать это намного проще (подумайте о наличии HTML и XML-шаблона для того же представления в django), но применима та же идея.

Сделав это, перебирая все якоря в документе, готовом с использованием jQuery, и добавляя события onclick, используя собственную ссылку якоря, перестановка / static / ajax / может упростить вашу жизнь.

Может ли кто-нибудь придумать, почему это слишком обременительно? Хотелось бы узнать, есть ли какой-нибудь серьезный недостаток в этой «дизайнерской идее».

Я думаю, что принятый ответ, хотя и подходящий для своего времени, сейчас устарел. (Буквально десятилетие на момент написания этого ответа. WCAG 2.1 был завершен несколько недель назад ...)

Документ W3I WAI-Authoring Designs Patterns содержит различные примеры общих виджетов, которым требуется javaScript для передачи правильной семантики, состояний и ролей вспомогательным технологиям.

AJAX можно сделать доступным, если вы осторожны, чтобы предоставить читателям экрана соответствующие семантические подсказки о том, каким будет обновление на странице, прежде чем пользователь активирует его. Вам также может потребоваться уведомить программу чтения с экрана о том, что фактически изменилось впоследствии, например, В регионе, где живет Ария, может быть объявлено «20 новых элементов загружено». или что угодно. Это достигается с помощью javaScript.

Если ваши знания о доступности ограничиваются «прогрессивным улучшением», и вы считаете, что принятый ответ является обоснованием этой позиции, то вам, возможно, потребуется обновление. Вещи быстро движутся в эти дни.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top