2017-04-12 4 views
1

Ich habe daran gearbeitet, unsere App für Benutzer zugänglicher zu machen, die es mit TalkBack verwenden. Ein Problem, auf das ich gestoßen bin, ist die Google SignInButton meldet sich als "Button" über TalkBack (nicht einmal "unmarkiert").Wie man google.android.gms.common.SignInButton über TalkBack zugänglich macht

Ich habe versucht, seine contentDescription sowohl in XML und Code wie andere Ansichten in der App, aber es hat keinen Unterschied zu diesem Verhalten gemacht.

Irgendwelche Ideen, wie Sie diese Ansicht als "Google Button" bekannt machen können, wären sehr willkommen!

Wenn es hilft, ist es das, was die Ansicht wie in der XML aussieht:

<com.google.android.gms.common.SignInButton 
    android:id="@+id/google_sign_in_button" 
    android:layout_width="0dp" 
    android:layout_height="50dp" 
    android:layout_marginEnd="10dp" 
    android:layout_marginTop="0dp" 
    android:layout_weight="1" /> 

Dank!

Antwort

0

Während des Debugging habe ich festgestellt, dass SignInButton ein einzelnes untergeordnetes Element hat. Das Festlegen der contentDescription für dieses untergeordnete Element hat von TalkBack das korrekte Verhalten erhalten. Hier ist der Code:

SignInButton signInButton = (SignInButton) view.findViewById(R.id.google_sign_in_button); 
signInButton.setSize(SignInButton.SIZE_ICON_ONLY); 
signInButton.setScopes(mGso.getScopeArray()); 
signInButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     googleSignIn(); 
    } 
}); 
if (signInButton.getChildCount() > 0) { 
    View signInButtonInnerContent = signInButton.getChildAt(0); 
    signInButtonInnerContent.setContentDescription(getString(R.string.google_button_description)); 
} 
0

Haben Sie versucht, eine Inhaltsbeschreibung hinzuzufügen?

<com.google.android.gms.common.SignInButton 
    android:id="@+id/google_sign_in_button" 
    android:layout_width="0dp" 
    android:layout_height="50dp" 
    android:layout_marginEnd="10dp" 
    android:layout_marginTop="0dp" 
    android:contentDescription="@string/some_localized_string" 
    android:layout_weight="1" /> 
+0

Ja, ich tat, und es hatte immer noch das gleiche Verhalten. – Coopra

+0

Haben Sie versucht, es nach dem Rendern der Ansicht programmgesteuert einzustellen? – ChrisCM

+0

Ich habe die Antwort gefunden! Wird unten posten. – Coopra

Verwandte Themen