Bug 243289
| Summary: | :focus-visible matches when an element is focused in an anchor’s click listener | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | harry-moore |
| Component: | CSS | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED INVALID | ||
| Severity: | Normal | CC: | brian, harry-moore, ntim, rego, Rican7, simon.fraser, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
harry-moore
When using a mouse to click an anchor which triggers a script that sets focus to another element, the focused element matches :focus-visible.
On a single page application this is really noticeable and arguably not desired behaviour.
See https://codepen.io/HazzMan2409/pen/rNdYNpa
Note this is very similar to this bug https://bugs.webkit.org/show_bug.cgi?id=236782
Maybe this issue occurs with other elements (not just anchors).
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/98113373>
Brian Birtles
Not just clicking with a mouse, but tapping on iOS too.
harry-moore
I am closing this off because after looking into it this is not a bug.
A couple of notes:
* on iOS and macOS ports of WebKit, an anchor element does not get focus on pointing device click.
* :focus-visible should only match on script focus if the previously focused element matched :focus-visible. This is based on the spec guidelines which WebKit strives to implement -> https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo
When loading a page and then clicking an anchor element like in the linked code pen, since the anchor element never gets focus, there is no previously focused element and so all bets are off. :focus-visible matching is acceptable!
If, however, the anchor is made focusable by adding a tabindex then :focus-visible should not match. This is the current behavior!