WCAG 2.0 empfiehlt, auch :focus
zu verwenden, wenn :hover
für Linkelemente verwendet wird, um die Tastaturnavigation zu unterstützen. Dies funktioniert gut für Link-Elemente, aber es gibt ein paar Unterschiede zwischen den beiden.Verwendung: Fokus als a: Hover-Ersatz für Tastaturnavigation
- jedes Element den
:hover
Zustand haben kann, während nur sehr wenige - fokussiert werden, wenn über ein Element schweben, schweben Sie auch alle übergeordneten Elemente auf. Dies ist nicht der Fall mit Fokus
Diese Frage ist ausschließlich über CSS. Gibt es eine Möglichkeit, das Verhalten von :hover
(wie oben beschrieben) für die Tastaturnavigation zu simulieren? Oder gibt es starke Gründe, warum man das nicht möchte?
es klar, hier ist ein Beispiel:
html:
<div id="box">
foo bar
<a href="#">click me</a>
</div>
css:
#box {
opacity: 0.3;
}
#box:hover {
opacity: 1;
}
#box a:focus {
opacity: 1;
}
Wenn eine Maus ich über das Verbindungselement schweben wird es vor der Verwendung . Da sich der :hover
-Status nach oben ausbreitet, ist #box
vollständig undurchsichtig.
Bei Verwendung einer Tastatur werde ich das Link-Element vor der Verwendung fokussieren. Da der :focus
Zustand nicht propagiert nach oben #box
wird nicht vollständig undurchsichtig sein.
Sehr interessant .. Aber ich bin mir ziemlich sicher, dass 'opacity' gerade nicht an': focus' arbeitet, und nicht umgekehrt. Basierend auf dem, was ich weiß, können Sie nur einige Eigenschaften für Ereignisse wie ': active' /': focus'/': visited' ändern. Ich könnte mich aber irren, siehe http://jsfiddle.net/8G4bY/... EDIT ... Es scheint, als ob "Opazität" in einigen Fällen funktioniert .. http://jsfiddle.net/GcxMk/ –
[Winkel-Deep-Blur] (https://github.com/ myplanet/angular-deep-blur) ist etwas verwandt.Es prüft, ob sich das fokussierte Element in der angegebenen Teilstruktur befindet und führt bei jedem Unschärfungs-Ereignis aus dieser Teilstruktur einen Code aus. – tobib