2010-02-08 7 views
0

Если у меня есть форма, которая обновляется через AJAX, есть вероятность, что исходное поле значения (как оно было выведено в браузер) не будет соответствовать тексту, который теперь имеет поле формы.Чтение челюстей (и других считывателей экрана) из атрибута входного значения или текста на экране?

Я знаю, что у слепого пользователя я иногда помогаю, что Jaws 9 и более поздние версии имеют сильную поддержку для богатых интернет-приложений (в частности, изменения AJAX и DOM), но я не уверен, что эта поддержка вернется до Jaws 7 (как предполагает их история выпуска).

В принципе, есть две проблемы:

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

  • Если я загружаю форму с установленными значениями и эти значения изменяются через AJAX, читатель прочитает то, что находится в значениях или на экране?

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

Но, конечно, я бы скорее знал наверняка, а не узнал об этом позже.

+0

Было бы лучше всего попробовать это. Челюсти имеют собственный ум, но, как правило, они следуют «что есть в DOM» и «что видно». Мы (по требованию клиента) закончили использование «предупреждений и обновлений страниц». («Трюк», который я видел, используется для перетаскивания содержимого в страницу, которая «перемещается за пределы экрана», чтобы ее подхватили челюсти, но не обычный зритель.) – 2010-02-08 23:24:50

+0

Страница обновляет вид убивает всю точку, это? На странице за кадром, вы имеете в виду открытие нового окна? Будет ли iFrame работать, или это еще менее вероятно? – Anthony

ответ

2

Считыватели экрана взаимодействуют со своей версией интерфейсов - «виртуальным буфером». Считыватели экрана (ну, по крайней мере, JAWS), взаимодействующие с веб-страницами, на самом деле, похоже, делают комбинацию считывающих узлов из DOM и сканируют то, что отображается на экране. Итак, я думаю, ответ «зависит». Как показывает @pst, нет никакой замены для фактического получения этого тестирования и пользователем экрана, если это вообще возможно.

Ваши варианты решения выглядят как это:

Для современного подхода к общению с интерактивными программного обеспечения, как для чтения с экрана, проверьте WAI ARIA. Gez Lemon написал хороший Introduction to WAI ARIA - хорошо стоит потратить время на чтение.

Старые устройства чтения с экрана не подходят для обновления виртуального буфера, но JAWS 7.1 и более поздние версии предоставляют разработчикам механизм для этого. Опять же, Gez Lemon помогает здесь в своем блоге в Improving Ajax applications for JAWS users. Если вы хотите углубиться в это, есть хорошее хорошее чтение фона и research by James Edwards, что тоже стоит прочитать.