Gleichzeitige Eingabe
Silktide sucht nach Styles, die die Touch-Eingabe für die gesamte Seite abschalten, oder nach solchen, die Schaltflächen und Links für Personen mit einer bestimmten Zeigerart – etwa Maus oder Touchscreen – ausblenden. Seiten sollten Besucherinnen und Besuchern die Eingabemethode nutzen lassen, die ihr Gerät anbietet.
Warum das wichtig ist
Menschen wechseln ständig die Eingabemethode: ein Laptop mit Touchscreen, ein Tablet mit angeschlossener Tastatur, ein Desktop mit Stylus. Andere sind aufgrund einer Behinderung auf eine bestimmte Eingabe angewiesen – jemand mit Tremor findet Touch vielleicht einfacher als eine Maus, während eine Person mit Mundstab möglicherweise nur die Tastatur nutzt. Eine Seite, die Touch deaktiviert oder Bedienelemente ausblendet, sofern man nicht mit der Maus darüberfahren kann, schließt diese Personen von Funktionen aus, die der restliche Teil Ihres Publikums nutzen kann.
Dahinter steht das Erfolgskriterium 2.5.6 (Gleichzeitige Eingabemechanismen) der , eine Anforderung der .
So beheben Sie das
- Entfernen Sie
touch-action: nonevom Elementhtmloderbody. Falls Sie es für eine benutzerdefinierte Geste benötigen, wenden Sie es nur auf das konkrete Element an, das die Geste verarbeitet, z. B. eine Karte oder einen Slider – nicht auf die gesamte Seite. - Wenn eine Media Query wie
@media (hover: none)oder@media (pointer: coarse)eine Schaltfläche oder einen Link ausblendet, stellen Sie sicher, dass dieselbe Aktion für diese Besucher auf anderem Weg verfügbar bleibt. Gestalten Sie Bedienelemente für Touch um, statt sie zu entfernen. - Wenn der markierte Stil tatsächlich unbedenklich ist – etwa weil er ein Steuerelement ausblendet, für das es eine für alle sichtbare Entsprechung gibt –, können Sie den Befund .
\/* Problem: deaktiviert die Touch-Eingabe für die gesamte Seite *\/
body {
touch-action: none;
}
\/* Besser: auf das Element beschränken, das benutzerdefinierte Gesten benötigt *\/
.map-canvas {
touch-action: none;
}
So prüft Silktide dies
- Liest das in jeder Seite direkt eingebettete : sowohl
<style>-Blöcke als auchstyle-Attribute der Elementehtmlundbody. - Meldet eine Seite, wenn sie Touch global deaktiviert, also
touch-action: noneaufhtml,bodyoder das Stammelement angewendet ist. - Meldet eine Seite, wenn eine Media Query, die Hover- oder Zeigertyp prüft (z. B.
hover: hoveroderpointer: coarse), ein interaktives Element wie eine Schaltfläche, einen Link oder ein Formularfeld mitdisplay: noneausblendet. - Meldet höchstens einen Befund pro Seite. Da diese Muster mitunter legitime Einsatzzwecke haben, werden Befunde zu Ihrer Bestätigung markiert, statt als bestätigte Fehler gezählt zu werden.
Fehlerbehebung
Der markierte Stil ist beabsichtigt
Manche Seiten haben einen echten Bedarf für diese Muster – ein Zeichenwerkzeug kann native Touch-Gesten deaktivieren, oder eine Nur-Desktop-Funktion blendet ihr Hover-Menü auf Touch-Geräten aus und bietet stattdessen einen anderen Weg zum selben Inhalt. Wenn Sie bestätigen können, dass eine gleichwertige Eingabemöglichkeit existiert, genehmigen Sie den Befund.
Meine Seite schränkt Eingaben ein, wurde aber nicht markiert
Silktide liest nur CSS, das direkt in die Seite eingebettet ist; Regeln in separat verlinkten Stylesheet-Dateien werden von dieser Prüfung nicht erfasst. Ebenso erkennt es keine Eingabebeschränkungen, die über umgesetzt sind, etwa Skripte, die auf bestimmten Geräten Touch-Ereignisse ignorieren. Ein Bestehen dieser Prüfung garantiert nicht, dass die Seite das Kriterium erfüllt.