Доступность: Talkback, WebView и пользовательский язык

Я разработал приложение, которое включает в себя Webview. Я хотел бы сделать мое приложение полностью доступным, поэтому для элемента webview я бы хотел, чтобы TalkBack полностью читал html-элементы, такие как «Заголовок», «Баннер», «Редактировать текст».

Я видел, что процесс TTS в WebView осуществляется через JS-инъекцию через класс Chromium AccessibilityInjector.java. Это вставляет этот скрипт на страницу, на которой есть только сообщения на английском языке. В результате, когда устройство находится на другом языке, TTS считывает этот элемент html на английском языке независимо.

Теперь я не могу отлаживать или расширять веб-клиент хрома, так как я могу заставить TTS читать мою страницу в соответствии с локали пользователя?

EDIT: Кстати, я использую jQuery Mobile.

Solutions Collecting From Web of "Доступность: Talkback, WebView и пользовательский язык"

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

view.loadUrl("javascript:window.setTimeout(function(){" + "window.console.log(\"Injecting messages.\");" + "cvox.TestMessages[\"chromevox_input_type_text\"] = {message: \"cuadro de edición\"};" + "cvox.TestMessages[\"chromevox_input_type_radio\"] = {message: \"botón de opción\"};" + "cvox.TestMessages[\"chromevox_selected\"] = {message: \"seleccionado\"};" + "cvox.TestMessages[\"chromevox_unselected\"] = {message: \"no seleccionado\"};" + "cvox.TestMessages[\"chromevox_radio_selected_state\"] = {message: \"seleccionado\"};" + "cvox.TestMessages[\"chromevox_radio_unselected_state\"] = {message: \"no seleccionado\"};" + "cvox.TestMessages[\"chromevox_input_type_submit\"] = {message: \"botón\"};" + "cvox.TestMessages[\"chromevox_input_type_button\"] = {message: \"botón\"};" + "cvox.TestMessages[\"chromevox_tag_button\"] = {message: \"botón\"};" + "}, 2000)"); 

Обратите внимание, что я вставляю таймаут перед инъекцией переменных – это значит, что херовекс не вводится после моей инъекции, что делает решение бесполезным.

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