К сожалению (для вас), VoiceOver является правильным. Спецификация для role="slider"
говорит, что все дочерние элементы считаются « presentational », что означает, что дочерние элементы DOM не имеют роли. Таким образом, ваша встроенная кнопка теряет свою «кнопку» и просто становится простым текстом. Если Chrome работает, то это неправильно.
Я попробовал ваш пример кода ручки с NVDA (на ПК) с Firefox и Chrome, и они оба (правильно) проигнорировали вашу кнопку. Затем я добавил кнопку до и после вашей кнопки, и эти кнопки были найдены, как я и ожидал. Если я перемещаюсь по кнопкам с помощью клавиши B в NVDA, ваша кнопка игнорируется, и образцы кнопок находятся. Если я попробую пример на iOS и поменяю ротор на «Form Controls», то при нажатии вверх или вниз ваша кнопка будет игнорироваться.
Таким образом, вам, возможно, придется поработать с сотрудником UX, чтобы пользователи могли получить ваши контрольные точки. Когда вы выбираете кнопку контрольной точки, она должна привести вас к этой точке в видео? Я думаю, что наличие ряда кнопок контрольных точек за пределами ползунка не было бы слишком плохо. Воспроизведение, пауза, громкость, закрытые титры и другие подобные кнопки находятся за пределами временной шкалы, поэтому наличие нескольких кнопок для контрольных точек может быть не таким уж плохим.