contentDescription = "@ null" плохая идея? - PullRequest
14 голосов
/ 08 февраля 2012

Линт жалуется, что установил contentDescription. Поэтому, чтобы избежать создания строки, я установил ее на нуль.

android:contentDescription="@null"

Это, кажется, успокаивает жалобы от ворса. Я немного растерялся, почему мне нужно установить строковую ссылку на contentDescription. Какова цель этого? Зачем мне это нужно? и, по сути, установка его на ноль, это хорошая идея?

Ответы [ 2 ]

26 голосов
/ 08 февраля 2012

Это для доступности для слепых.Для обеспечения доступности приложения, использующие contentDescription, помогают слепым людям ориентироваться, используя возможности Android для преобразования текста в речь.Поэтому, если кто-то выберет ImageButton с помощью трекпада или чего-то еще, TTS может произносить contentDescription, чтобы они могли легко ориентироваться в приложении.См. this для получения дополнительной информации.

Чтобы ответить на ваш вопрос: он может отключить вывод lint, но он не делает ничего плохого или good.

16 голосов
/ 30 сентября 2014

Я знаю, что этот вопрос задавали некоторое время назад, но для новых читателей, которые могут столкнуться с этим:

Брайан абсолютно прав в том, для чего используется contentDescription.Однако бывают случаи, когда не только уместно, но предпочтительнее установить его в @null. Если изображение является чисто декоративным и не реагирует на клики или не связано с контентом, вам следует установить для contentDescription значение @null.В противном случае установите для него что-то осмысленное.

Помните, что все, что задано как contentDescription, устройство читает вслух при использовании программы чтения с экрана.Вообразите в своем уме простой всплывающий диалог.Теперь мысленно послушайте эти два разных описания контента для одного и того же диалога:

  • "Information icon. Do you want to continue? Fancy horizontal rule. Button. Button."

    -vs-

  • "Do you want to continue? Submit. Cancel."

Недостаточно продуманные описания контента в конечном итоге звучат глупо.Такие элементы, как значки выноски, которые просто повторяют текст рядом с ними, или причудливые границы, которые не влияют на смысл страницы, должны подавляться с помощью @null.И наоборот, все, что можно нажимать, должно не только иметь описание, но и иметь значимое описание.Если вы попытаетесь установить @null на что-то кликабельное, вместо этого устройство будет говорить «Кнопка».Изменение описания на «Зеленая кнопка» не помогает.Не заставляйте своих пользователей догадываться, что такое «зеленая кнопка»!

Если вы не уверены, не забудьте включить TalkBack на своем телефоне.Он предварительно установлен на большинстве устройств, или вы можете получить его из магазина Play.Вам понадобится D-Pad на старых устройствах, или исследуйте на сенсорной панели ICS и выше.

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