Поддержка доступности Android?
Я прошел через много вопросов, демонстрацию API относительно функции доступности в Android, но это не помогло.
Я хочу поддерживать доступность в моем приложении для Android. Встроенная доступность заботится обо всех фокусируемых элементах и считывает Hints
правильно при нажатии.
Я хочу запускать события доступности, когда пользователь нажимает на TextView
. И при первом открытии экрана я хочу, чтобы он считывал пользовательскую информацию, которую я предоставляю. Мне удалось сделать это с dispatchPopulateAccessibilityEvent
но он читает каждый раз, когда экран возобновляется. Также я не могу определить, какой вид отправляет событие.
2 ответа
Вы можете использовать вызов "sendAccessibilityEvent" из вашего TextView, например так:
if (AccessibilityManager.getInstance(mContext).isEnabled()) {
setContentDescription("The content description for this view");
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
}
Считываемый текст (в зависимости от того, какая служба доступности используется) будет основан на описании контента, а не обязательно на тексте в TextView.
Если вы хотите, чтобы ваше представление было сфокусированным и анонсировать описание связанного содержимого для этого представления, вы можете использовать,
view.requestFocus()
view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
Если вы просто хотите объявить об изменении только один раз и не хотите менять contentDescription
связанный с этим видом, вы можете использовать
view.announceForAccessibility = "Alert to a user about some event."
Примечание. AnnounceForAccessibility не будет фокусироваться на вашем доступе.
Вы можете использовать
view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
На ваше TextView
Также вы можете добавить "announceForAccessibility", но вам следует проверить, если версия больше или равна Jelly Bean, но для этого вам нужно изменить представление.
Наконец, если вы хотите объявить "заголовок" страницы, например, действие, в которое вы могли бы добавить setTitle для действия и поместить свой текст, не забудьте использовать панель инструментов с заголовком, поскольку этот setTitle по умолчанию переопределит заголовок панели действий.,
Дайте мне знать, если у вас есть другие проблемы.