首页 > 解决方案 > Google 发布前报告 - 多个项目具有相同的描述

问题描述

当应用程序的新 Beta 版上传到 Play 商店时,Google 现在会提供“发布前报告”。我上次发布前的报告包含一个完整的对话框,里面充满了“多个项目具有相同的描述”。我现在已经找出了在我的情况下是什么导致了问题和我的解决方案。仍然显示问题的对话框的简化布局如下:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="fill_parent">
   <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical">
      <LinearLayout
         android:id="@+id/displayHeightLayout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal">
         <TextView
            android:id="@+id/displayHeightLbl"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="@string/displayInfoEms"
            android:labelFor="@id/displayHeight"
            android:text="@string/displayHeightLbl" />
        <TextView
                android:id="@+id/displayHeight"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="@string/displayInfoEms" />
      </LinearLayout>
      <Button
         android:id="@+id/displayInfoOkBtn"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:onClick="dismissDisplayInfos"
         android:text="@string/btnOk" />
   </LinearLayout>
</ScrollView>

Google 文档建议安装 TalkBack 和 Accessibility Scanner,这使我能够测试和重现问题。该解决方案记录在下面。

标签: androidaccessibilityandroid-dialogandroid-accessibility

解决方案


解决方案在于添加

android:importantForAccessibility="no"

给第二个TextView的定义,如下:

        <TextView
                android:id="@+id/displayHeight"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:importantForAccessibility="no"
                android:ems="@string/displayInfoEms" />

我假设报告的原因是第一个 TextView 包含一个android:labelFor属性,引用第二个 TextView,并且 Accessibility Scanner 会查看两者并认为描述相同。这是辅助功能扫描仪中的错误吗?


推荐阅读