【问题标题】:Android TalkBack reading phone numbers in Webview incorrectlyAndroid TalkBack 在 Webview 中错误地读取电话号码
【发布时间】:2013-03-12 20:05:42
【问题描述】:

在 WebView 中阅读电话号码时,我对 TalkBack 屏幕阅读器服务感到头疼,我似乎找不到解决方案。这是我正在读入 WebView 的一些 html 代码的 sn-p:

<li>Call <a href="tel:18007848669">1-800-QUIT-NOW(1-800-784-8669)</a> for phone support</li>

屏幕阅读器将此读取为“呼叫一到八百现在退出一到八百链接”。有没有办法强制它/信号以不同的方式阅读它?我需要以更自然的格式阅读它,即“一八百”。

【问题讨论】:

  • 你想说什么?
  • 我只需要它停止说“一到八百”,并使用更自然的电话号码格式“一八百”。我更新了帖子。
  • 据我所知不可能
  • 太棒了,谢谢:)。这始终是客户最喜欢的答案:)。
  • 这是文本转语音引擎中的一个错误。应该在较新版本的 Android 中修复。

标签: android webview accessibility talkback


【解决方案1】:

对于这个元素, android:contentDescription="一八百现在退出"

【讨论】:

    【解决方案2】:

    为您的 editText 或 textView 使用以下 Accessibility Deligate

    @Override
    public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
        super.onInitializeAccessibilityNodeInfo(host, info);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
    
            switch (host.getId()) {
                case R.id.tv_bookingID:
                    if (((TextView) host).getText().length() > 1) {
                        sb.delete(0, sb.length());
                        for (char c : ((TextView) host).getText().toString().toCharArray()) {
                            sb.append(c).append(" ");
                        }
                        //change text for talkback
                        info.setText(null);
                        info.setContentDescription(sb.toString().trim());
    
                    }
                    break;
            }//switch
        }//if
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-05
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      相关资源
      最近更新 更多