Комментарии 4
Если задача стоит на установление последовательности движения фокуса на > странице при зачитывании скринридером элементов на экране, то можно > воспользоваться методамиnextFocusUpId, nextFocusDownId, nextFocusLeftId, > > nextFocusRightId.
Вроде бы эти методы отвечают за фокус клавиатуры, а для скринридера используются traversal before/after?
А зачем нужна проверка if (accessibilityManager.isTouchExplorationEnabled)
?
Методы nextFocusUpId, nextFocusDownId, nextFocusLeftId, nextFocusRightId отвечают за фокус. Фокус можно получить, использовав клавиатуру с помощью стрелок или Tab, в случае с мобильными девайсами фокус устанавливается с помощью свайпа. То есть пользователь включает скринридер, на странице появляется фокус на первом элементе, далее с помощью свайпа фокус перемещается по элементам. Таким образом эти методы используются для управления очередности фокуса в Android.
Важность или неважность установления фокуса на элемент для скринридера можно указать в разметке с помощью android:importantForAccessibility="no", или в самом коде
if (accessibilityManager.isTouchExplorationEnabled) {
ViewCompat.setImportantForAccessibility(view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO)
} else {}
Например, ссылка должна быть не просто выделена цветом, но и подчеркнута.
В ВК следуют этому правилу?
Анализ Android-фич на доступность и внедрение accessibility в процесс разработки