Native Anchors Do More Than You Think When Focused
Eric Bailey recently published research on what happens to anchors when they receive :focus. The short answer: a lot more than most developers realize. What starts as a simple interaction with a focused link turns out to be a dense web of platform-specific keyboard behaviors.
To help visualize the scope, Dave has assembled the findings into a comparative table that breaks down behavior differences between operating systems, plus additional tables for each platform.
That is a substantial list of behaviors. The question is why documenting all of it matters so much.
The answer comes down to maintenance. Every behavior that native, semantic anchors provide for free must be recreated in JavaScript if you take a synthetic link approach. That means a significant amount of code that requires dedicated time and resources to maintain. And even with that investment, there’s no guarantee you can replicate every expected feature—many are simply not possible to rebuild faithfully in JavaScript alone.
There is also the challenge of making a business case for prioritizing engineering effort to re-implement each of those features. That’s the hidden cost of frameworks or custom component systems that abstract away the accessible, native parts of the web, often in the name of developer experience (DX). Eric’s research effectively becomes an argument for staying closer to semantic HTML.
The research also has clear limitations. Eric’s exhaustive list of caveats at the end notes that many other platforms, edge cases, user-agent variations, assistive technologies, and additional considerations exist. That suggests the documented behaviors are just a baseline—the real-world list of behaviors developers could be responsible for maintaining is potentially much longer.



