JAWS 2018: сделать выбор / выпадающий «кликабельным» - PullRequest
0 голосов
/ 30 октября 2018

Я работаю над проектом сайта и исправляю дефекты доступности.

Ограничения моей настройки:

  • Операционная система - Windows 7/10
  • Браузер - Internet Explorer 11
  • Программное обеспечение для специальных возможностей - JAWS 2018.1804.26

У меня нет контроля над этими ограничениями, поэтому, пожалуйста, не предлагайте никаких решений для каких-либо других настроек.


У меня есть дефект, который говорит о том, что HTML <select> (раскрывающийся список) должен быть указан в «кликабельных» элементах JAWS. (Это модальное диалоговое окно, отображаемое при нажатии клавиши аккорда Ins + Ctrl + / .) Ранее я сталкивался с подобным вопросом с другими типами элементов HTML. , и я исправил те с комбинацией следующего:

  • Добавить обработчик onclick (в моем случае пустую функцию)
  • Добавить значение в атрибут aria-label (в моем случае, динамически)

При попытке выполнить эти шаги в текущем дефекте, я могу сделать так, чтобы <select> отображался в модальном диалоговом окне «кликабельно», но текст не указан (полагаю, он «сообщает» о пустой строке). Это несмотря на то, что значение aria-label.


Другие примечания:

  • Рассматриваемый <select> находится внутри <span>, который находится внутри <td> 1

Это выглядит так:

<table>
  <tbody>
    <tr>
      <td>
        <span>
          <select> ... options ... </select>
        <span>
      </td>
    </tr>
  </tbody>
</table>

Я пытался изменить приведенный выше код следующим образом:

<table>
  <tbody>
    <tr>
      <td>
        <span>
          <select onclick="emptyHandler" aria-label="Some text"> 
            ... options ... </select>
        <span>
      </td>
    </tr>
  </tbody>
</table>

function emptyHandler() {
    /* This function is empty by design     */
    /* Its function is to expose an element */
    /* as a clickable element to JAWS, when */
    /* otherwise JAWS would ignore it.      */
}

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

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


У меня есть несколько вопросов по этому поводу, так как я не могу найти хорошую документацию о том, как именно это должно работать:

  1. Есть ли подробная документация о том, как это должно работать? Мои поиски на веб-сайте Freedom Scientific, а также в Mozilla и в Интернете дали некоторую информацию, но мне бы очень хотелось найти место, где я мог бы найти ответы такого рода. В частности, кажется, что нет последовательного, канонического определения, что такое «кликабельный» элемент. По умолчанию некоторые элементы обрабатываются как «кликабельные», тогда как добавление пользовательского обработчика onclick, по-видимому, позволяет добавлять в этот список элемент ANY . Что приводит меня к ...
  2. Как именно - работает "кликабельный" модальный диалог в JAWS? Я думаю, что выяснил, как добавить элемент в этот список, но то, что он отображает, кажется немного противоречивым. Что приводит меня к ...
  3. Что предполагается для отображения в этом модальном диалоге? В предыдущем тестировании выяснилось, что отображаемый текст является значением в атрибуте aria-label, так почему это здесь не работает?
  4. Неуместно ли ожидать, что здесь появится элемент <select>? По этой причине я всегда могу устранить этот недостаток, но я не хочу этого делать, если не уверен, что это правильный курс действий.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Это не ошибка. <select> не является активным элементом для пользователя JAWS. это нажатие клавиши приносит список элементов, которые можно нажимать, но которые нельзя идентифицировать как что-то другое: ссылки, кнопки, поля со списком.
Таким образом, отметьте ваш дефект как «Не ошибка» и скажите своему пользователю использовать Вставить + Ctrl + C вместо.
Программа чтения с экрана, такая как JAWS, всегда старается определить элементы HTML настолько хорошо, насколько это возможно, поэтому «что-то щелкающее» на самом деле не очень помогает слепому пользователю. В отличие от поля со списком.

0 голосов
/ 31 октября 2018

С добавленными деталями теперь я понимаю проблему. «Кликабельное» диалоговое окно ( ins + ctrl + / ) в JAWS показывает элементы с обработчиком onClick(), но метка, используемая для элементов <select> в это диалоговое окно является значением выбора, в зависимости от того, какое <option> выбрано в данный момент. Использование aria-label или aria-labelledby или <label for="select-id"> не влияет на интерактивное диалоговое окно, хотя при использовании этих атрибутов на <button>, например, работает в этом диалоговом окне.

Я бы предложил оставить сообщение об ошибке для JAWS.

Хорошей новостью является то, что клавиша JAWS для перехода к следующему элементу <select> - C , а диалоговое окно для отображения всех элементов <select> - ins + ctrl + C и этот диалог делает честь aria-label или aria-labelledby' или <label for="select-id">.

...