Добавление поддержки WAI-ARIA в метод jQuery .toggle()

Я хотел бы соединить WAI-ARIA aria-hidden поддержка метода.toggle() в jQuery.

Так дано <p id="myElement">Hi there</p>

$('#myElement').toggle() будет скрывать элемент и установить aria-hidden="true":

<p id="myElement" style="display: none;" aria-hidden="true">Hi there</p>

И выполняя то же самое $('#myElement').toggle() Сценарий снова будет показывать (переключать) элемент и устанавливать (переключать) aria-hidden="false":

<p id="myElement" style="display: block" aria-hidden="false">Hi there</p>

Я, вероятно, хочу использовать полную функцию метода, может быть, что-то вроде

$('#myElement').toggle(
    if ($this.css('display')==='none'){
       $this.prop('aria-hidden', 'true')
    }
    else
    {
            $this.prop('aria-hidden', 'false')
    }
)

Какое самое эффективное решение для расширения .toggle() также переключать aria-hidden государство?

2 ответа

Решение

Короткий ответ: в этом нет необходимости.

Доступная технология поддерживает CSS display: hidden; свойство таким образом, что уже правильно скрывает элемент. Так что уточнение aria-hidden="true" является избыточным, с точки зрения программы чтения с экрана, на jQuery .toggle() метод установки display собственность на hidden, Определение aria-hidden="false" (или удаляя aria-hidden свойство) является избыточным для jQuery's .toggle() метод установки display собственность на inline,

Пожалуйста, см. /questions/39906299/kak-uvedomit-programmyi-chteniya-s-ekrana-s-pomoschyu-wai-aria-chto-div-teper-viden/39906308#39906308 и Steve Faulkner HTML5 Специальные возможности доступа: скрытый и скрытый пост в блоге (в частности, "Сводка результатов") для получения дополнительной информации.

Принятый ответ является правильным по духу, но имеет некоторые проблемы в специфике:

  1. Для свойства CSS Display нет скрытого значения - оно должно быть "none".

  2. jQuery.toggle () не устанавливает отображение на "встроенный", когда скрывается; он устанавливает его обратно в пустое значение, которое возвращается к тому значению, которое диктуется каскадом. Так что, если вычисленное значение для отображения было "блоком", это то, к чему оно возвращается.

Другие вопросы по тегам