Как программы чтения с экрана обрабатывают модальные окна? - PullRequest
1 голос
/ 30 октября 2009

Кто-нибудь знает, как различные программы чтения с экрана взаимодействуют с модальным окном, например: Thickbox? Получает ли содержимое модала внимание читателя после нажатия на него?

1 Ответ

1 голос
/ 24 марта 2011

Это зависит от используемого вами модального решения. Многие не делают достойную работу по управлению фокусом:

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

Если решение, которое вы используете, не делает ничего из этого, вы можете делать такие вещи в своем собственном JavaScript. Например, если вы знаете первый фокусируемый элемент:

var focusMe = document.getElementById("#modal-focus-start");
if (focusMe) {
    focusMe.focus();
}

Или, если вы хотите сфокусировать первую ссылку в модале.

var modal = document.getElementById("#modal"),
    focusMe;
if (modal) {
    focusMe = modal.getElementsByTagName("a")[0];
    if (focusMe) {
        focusMe.focus();
    }
}

Если у вас нет удобного фокусируемого элемента для перемещения фокуса, некоторые современные браузеры (Firefox казался глючным в прошлый раз, когда я проверял) позволяют вам установить tabindex в -1 для любого элемента HTML, делая этот элемент фокусируемым по JavaScript.

Если вы хотите пойти дальше, вы можете использовать JavaScript, чтобы найти первый фокусируемый элемент (использует jQuery) в модальном.

...