Как заставить JAWS распознавать и читать таблицу в редакторе TINYMCE

Я пытаюсь заставить JAWS читать таблицы на странице html (страница Confluence в редактировании Режим). Таблицы находятся внутри iframe, и я думаю, что именно поэтому JAWS не распознает таблицы.

Я добавил несколько атрибутов в таблицу после рендеринга таблицы.

<caption>
<table role="grid" aria-live="polite" tabindex="0">
<tr role="row"></tr>
<th role="columnheader"></th>
<td role="gridcell"></td>
</table>

Эта таблица находится в режиме редактирования. Таким образом, пользователь может редактировать эту таблицу и добавлять новые строки. Что еще мне нужно сделать, чтобы JAWS распознал таблицу и прочитал все ячейки. Пожалуйста, найдите изображение ниже, которое показывает всю структуру html.

введите описание изображения здесь ОБНОВЛЕНИЕ: на этой странице используется редактор wysiwyg (tinymce). Тело contenteditable = true, в котором находится таблица, и это вызывает проблему. Чтобы проверить это, я удалил свойства contenteditable из тела, и JAWS может распознать таблицу, но тогда я вообще не могу использовать редактор. Итак, теперь вопрос в том, как заставить JAWS читать таблицу внутри редактируемого элемента содержимого. введите здесь описание изображения

Заранее спасибо.


person MrKumar    schedule 02.02.2017    source источник
comment
Выбегаю за дверь, но, возможно, уберу role="grid" и посмотрю, что получится. tabindex должно быть ненужным. Наличие URL-адреса для тестирования сделало бы это намного проще. Кроме того, избегайте нескольких активных областей ARIA на странице. Это иногда смущает эсеров.   -  person aardrian    schedule 03.02.2017
comment
Пожалуйста, найдите URL-адрес здесь: bewithvk.atlassian.net/wiki/display/TEST/ Аккаунт+данные Нажмите кнопку редактирования и перейдите в режим редактирования, чтобы протестировать сценарий. -Спасибо.   -  person MrKumar    schedule 03.02.2017


Ответы (1)


У меня все время есть таблицы в iframe и с JAWS проблем нет. Моя первая рекомендация — избавиться от всех лишних атрибутов арии. Вы слишком злоупотребляете ими и фактически нарушаете спецификацию. Вы не должны указывать роль для нативных элементов. (В настоящее время сайт w3.org не работает. Я могу предоставить URL-адрес, когда сайт снова заработает.)

  1. удалить role='grid' из <table>
  2. удалить role='columnheader' из <th>
  3. удалить role='gridcell' из <td>
  4. удалите colspan=1 из третьего <th>. Один столбец используется по умолчанию.
  5. удалить colspan=1 из всех <td>s

И для пробы я бы тоже

  1. удалить aria-live из <table> и <tbody>
  2. удалить tabindex из всех ячеек и таблицы

Затем добавьте

  1. область = столбец до <th>

Затем протестируйте JAWS с помощью виртуального курсора ПК. Используйте «T», чтобы перейти к таблице. Затем вы можете использовать ctrl+alt+стрелку для перемещения по таблице. (Или вы можете использовать команды слоя таблицы, ins + пробел, T, а затем использовать простую клавишу со стрелкой для перемещения).

Если вы переходите в таблицу, а затем перемещаетесь влево и вправо, вы должны услышать, как заголовки ваших столбцов читаются перед значениями данных (если вы добавили scope=col к вашему <th>, хотя JAWS, вероятно, объявит заголовок столбца, даже если у вас нет область = столбец).

person slugolicious    schedule 03.02.2017
comment
Я полностью следовал вашим инструкциям. Похоже, в моем заявлении о проблеме/приложении отсутствует что-то большое. Чтобы лучше продемонстрировать свою проблему, я запускаю этот экземпляр Confluence. Если вы хотите увидеть проблему вживую, нажмите кнопку редактирования по данной ссылке. Обратите внимание, что режим просмотра данной ссылки работает отлично, но не режим редактирования. - person MrKumar; 03.02.2017