Как я могу заставить JAWS игнорировать заголовок строки при фокусировании на div, содержащемся внутри th?

У меня есть структура HTML, подобная этой, представляющая ячейку заголовка строки таблицы:

<th role="rowheader" tabindex="0">
  ...
  <div role="button" tabindex="0">
    <button role="presentation" tabindex="-1" />
  </div>
</th>

Назначение div/button — включить динамическое добавление нового заголовка строки, чтобы он находился внизу, разделяя существующие заголовки строк.

В VoiceOver при переходе к элементу div озвучивается только текст локализации, назначенный элементу div. Однако в JAWS он считывает содержимое th как заголовок строки для div, даже если div содержится внутри него. Я искал в документации какое-то свойство, которое позволит div игнорировать заголовок строки, но оказалось пустым. Буду признателен за любую помощь, которую вы можете предложить.

Спасибо!


person Matthew DeMougin    schedule 30.08.2016    source источник
comment
Измените <th ...> на <div style='display: table-cell›`   -  person zer00ne    schedule 01.09.2016


Ответы (1)


Пробовали ли вы использовать scope="row" перед добавлением role="rowheader" (поскольку это все, что делает эта роль)? И для чего tabindex="0" для th (если у вас нет контента, который в противном случае скрыт, если пользователь не прокручивает, используя таким образом tabindex, чтобы пользователь клавиатуры мог его увидеть)?

Почему у вас есть div, действующий как кнопка (role="button"), но затем удалена семантика (и табуляция) из реального button (role="presentation" tabindex="-1")? Не видя текста для новой или пониженной кнопки, не говоря уже о th, трудно понять, что вы ожидаете.

Если у вас есть URL-адрес, по которому это можно проверить, я изменю свой ответ, но сейчас у вас много странного переназначения ролей и остановки табуляции, которые, как я подозреваю, сбивают с толку проблему.

К сожалению, я не смог уместить все это в комментарий, поэтому ответ, который не отвечает на ваш вопрос, но пытается довести его до точки, где я могу на него ответить.

person aardrian    schedule 01.09.2016