diff --git a/README.md b/README.md
index 81479a5..1d33376 100644
--- a/README.md
+++ b/README.md
@@ -268,12 +268,20 @@ page, and will scroll the screen to the position. Using both hashes in URLs and
anchor links on the page is generally not recommended.
### Following links
-By default all clicks on `` tags are handled by the router. If the `href=""`
-attrbibute points to the same `origin` (e.g. the same page), and it doesn't
-have a `rel="nooper"` attribute or similar, we handle the route. This can be
+By default all clicks on `` tags are handled by the router through the
+[nanohref](https://github.com/yoshuawuyts/nanohref) module. This can be
disabled application-wide by passing `{ href: false }` to the application
-constructor. Uses [nanohref](https://github.com/yoshuawuyts/nanohref) under the
-hood.
+constructor. The event is not handled under the following conditions:
+- the click event had `.preventDefault()` called on it
+- the link has a `target="_blank"` attribute with `rel="noopener noreferrer"`
+- a modifier key is enabled (e.g. `ctrl`, `alt`, `shift` or `meta`)
+- the link's href starts with protocol handler such as `mailto:` or `dat:`
+- the link points to a different host
+- the link has a `download` attribute
+
+:warn: Note that we only handle `target=_blank` if they also have
+`rel="noopener noreferrer"` on them. This is needed to [properly sandbox web
+pages](https://mathiasbynens.github.io/rel-noopener/).
### Navigating programmatically
To can navigate routes you can emit `'pushState'`, `'popState'` or
diff --git a/package.json b/package.json
index 0495d26..051b67b 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
"bel": "^5.0.1",
"document-ready": "^2.0.1",
"nanobus": "^4.2.0",
- "nanohref": "^2.0.0",
+ "nanohref": "^3.0.0",
"nanolocation": "^1.0.0",
"nanomorph": "^5.1.2",
"nanoquery": "^1.1.0",