Textwert bearbeiten
Textfeldwerte für Screenreader verfügbar machen
Was wir überprüfen
Wenn ein Benutzer in ein Textfeld eingibt, muss der eingegebene Wert programmatisch für unterstützende Technologien wie TalkBack und Voice Access verfügbar gemacht werden.
Fehlendes Beispiel ❌
value = „E-Mail-Feld“
TalkBack gibt die `contentDescription` anstelle des getippten Textes aus
„E-Mail-Feld, Bearbeitungsfeld“
Der Benutzer kann nicht bestätigen, überprüfen oder korrigieren, was er getippt hat
Bestehendes Beispiel ✅
value = „jsmith@emaik.com“ (der getippte Text)
TalkBack gibt das Label und den eingegebenen Wert aus
„E-Mail, jsmith@emaik.com, Bearbeitungsfeld“
Der Benutzer kann bestätigen und korrigieren, was er getippt hat
Setzen Sie contentDescription nicht auf ein EditText-Element. Wenn vorhanden, liest TalkBack die Inhaltsbeschreibung anstelle des getippten Wertes vor, was Benutzer daran hindert, ihre Eingaben zu bestätigen, zu überprüfen oder zu korrigieren. Verwenden Sie setLabelFor, um stattdessen ein sichtbares Label mit dem Feld zu verknüpfen.
Auf einen Blick
- Diese Regel hat eine kritische Auswirkung auf Benutzer
- Benutzer müssen hören, was sie getippt haben, um ihre Eingaben zu bestätigen und zu korrigieren
EditText-Elemente müssen ihren aktueller Wert für unterstützende Technologien übermitteln — nicht nur ihr Label- Setzen Sie keinen
contentDescriptionauf einEditText-Element; dies überschreibt den getippten Wert und stört die Ankündigungen von TalkBack - Verknüpfen Sie das Feld mit einem Label mithilfe von
setLabelFor(), sodass sowohl der Feldname als auch der Wert verfügbar sind
Auswirkungen auf Benutzer
Personen, die auf TalkBack angewiesen sind, sind von diesem Problem am stärksten betroffen. Wenn ein Texteingabefeld seinen Wert nicht übermittelt, können Benutzer nicht hören, was sie getippt haben. Dies macht es unmöglich, Formulareingaben — wie Benutzernamen, Passwörter oder Adressen — ohne sehende Hilfe zu bestätigen, zu überprüfen oder zu korrigieren.
EditText-Elemente sollten konsequent ihren aktuellen Wert bereitstellen. Wenn der Wert korrekt übermittelt wird, können unterstützende Technologien Eingaben vorhersehbar vermitteln.
Problem mit Textwert bearbeiten bestätigen
- TalkBack einschalten
- Den Fokus auf das Texteingabeelement richten
- Geben Sie etwas Text in das Feld ein
- Eines der folgenden Dinge wird geschehen:
- Barrierefrei: TalkBack gibt den eingegebenen Text zusammen mit dem zugehörigen Label aus
- Nicht barrierefrei: TalkBack gibt eine Inhaltsbeschreibung anstelle des eingegebenen Wertes oder überhaupt keinen Wert aus
Probleme beheben
Der häufigste Grund für das Versagen von Textwert bearbeiten ist das direkte Setzen eines contentDescription auf ein EditText, was den Wert überschreibt, den TalkBack sonst vorlesen würde. Entfernen Sie alle contentDescription vom Eingabeelement selbst, und verknüpfen Sie stattdessen ein sichtbares Label, damit sowohl der Feldname als auch der eingegebene Wert für Screenreader verfügbar sind.
XML
Verknüpfen Sie ein TextView-Label mit dem EditText-Element mithilfe von setLabelFor(). Setzen Sie keinen contentDescription auf das EditText selbst, da dies verhindert, dass TalkBack den getippten Wert vorliest.
EditText editText = .......; // Role: EditText
TextView label = .......; // Role: Label
label.setLabelFor(editText.getId()); // Associate the label with the fieldCompose
Verwenden Sie den label-Parameter auf OutlinedTextField, um ein sichtbares Label mit der Eingabe zu verknüpfen. Setzen Sie keinen contentDescription auf das TextField selbst, da dies den getippten Wert überschreibt.
@Composable
fun ZipCodeInput() {
OutlinedTextField(
value = zipCode,
onValueChange = { zipCode = it },
label = { Text("Zip Code") }
)
}React Native
Vermeiden Sie es, die accessibilityLabel-Eigenschaft auf den aktuellen Wert des Eingabefelds zu setzen. Nutzen Sie sie, um das Feld zu beschreiben, und verwenden Sie die placeholder-Eigenschaft für Beispielwerte. Dies stellt sicher, dass Feldlabel und getippter Wert getrennt und beide zugänglich bleiben.
<TextInput
accessibilityLabel='Username'
accessible={true}
placeholder='John'
style={{height: 45, width: 200, backgroundColor: 'azure', fontSize: 20, margin:20}}
/> Kann ich diese Regel ignorieren?
Das Bearbeiten von Textwerten hat eine Kritische Auswirkung für Benutzer, und wir empfehlen dringend, alle durch diese Regel gefundenen Probleme zu beheben. Benutzer, die auf TalkBack angewiesen sind, können nicht bestätigen oder korrigieren, was sie getippt haben, wenn der Wert nicht übermittelt wird – was das Ausfüllen von Formularen unzugänglich macht. Erfahren Sie mehr über Regeln ignorieren.
Ressourcen
Deque University Kursseiten
Hinweis: Der vollständige Zugriff auf die Ressourcen der Deque University erfordert ein Abonnement.
Weitere Ressourcen
- Richtlinien für barrierefreie Webinhalte (WCAG) 2.0, W3C-Empfehlung
- WCAG 2.0 Verständnisdokumente
