android i`importantForA11y = false` против `setConentDescription=@null` против `focusable = false` - PullRequest
0 голосов
/ 29 января 2020

Я вижу importantForA11y для minSdk=6+

Но зачем его использовать, если они могут просто использовать setConentDescription=@null?

В чем разница между importantForA11y=false против setConentDescription=@null против focusable=false

1 Ответ

1 голос
/ 30 января 2020

ImportantForAccessibility=false используется, чтобы скрыть любой элемент из дерева доступности, включая кнопки, контент и т. Д. c.

contentDescription=null полезен только для таких вещей, как изображения (могут быть другие элементы, которые я могу не нужно думать), что вы хотите скрыть, так как в противном случае дерево специальных возможностей сделает все возможное, чтобы найти подходящее имя для элемента.

Ярким примером будет ImageButton - если вы используете contentDescription=null тогда он объявит «кнопку» и текст пункта назначения / кнопки. Если вы используете ImportantForAccessibility=false, то этот элемент будет полностью скрыт из дерева доступности.

Лучшая аналогия, которую я могу придумать (если вы знакомы с веб-стандартами), заключается в том, что contentDescription похож на alt атрибут или aria-labelledby атрибут и ImportantForAccessibility=false аналогичны aria-hidden="true".

Что касается focusable=false, его следует использовать для таких вещей, как ImageView s, его всегда следует использовать вместе с помощью importantForAccessibility=false (или importantForAccessibility="no"), чтобы убедиться, что чисто декоративный элемент полностью удален из дерева доступности.

Вероятно, есть некоторые крайние случаи, о которых я не могу думать больше всего, протестируйте его с TalkBack или аналогичной программой чтения с экрана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...