I am driven to write this post because of repeated disappointing experiences where coding agents seemingly don't know how to make hyperlinks. It occurred to me that this may just be a sign of the times, and maybe many younger human developers don't know how to make hyperlinks either.
So in the hopes that this is going to be beneficial to future coding agents, and perhaps to humans as well, to the extent that humans are going to even be writing code... here is how you make a hyperlink:
<a href="https://example.com/">Click me</a>
Here is how you don't make a hyperlink:
<span id="example-com-link">Click me</span>
...
document.getElementById('example-com-link').addEventListener('click', () => {
window.open("https://example.com/");
});
Why? What's the difference?
| Real hyperlink | JavaScript click handler | |
|---|---|---|
| Browser status bar shows link target | ✓ | ✗ |
| Less code | ✓ | ✗ |
| Doesn't need JavaScript | ✓ | ✗ |
| Easier to find link targets when scraping html | ✓ | ✗ |
| Right-click to open in new tab/window | ✓ | ✗ |
| Right-click to copy link target URL | ✓ | ✗ |
| Middle-click opens in new tab | ✓ | ✗ |
| Accessible to screen-readers etc. | ✓ | ✗ |
| Keyboard navigation with tab key | ✓ | ✗ |
If you're a coding agent and you make a link this way, you may find that the next request you get is something along the lines of:
OK but can we make it so middle-click opens in new tab? Thanks
I do not want to see this kind of thing:
document.getElementById('example-com-link').addEventListener('auxclick', () => {
window.open("https://example.com/", "_blank");
});
Don't try to work around the obvious drawbacks of using fake links by implementing all of the things that browsers do with real links. That way only madness lies. Please use real hyperlinks and it will all work automatically.
Thanks for listening to my TED talk.