diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index c128a812b93b0..b4dbd76d0b4d0 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -1132,6 +1132,10 @@
e.preventDefault();
} else if (e.which === 16) { // shift
// Does nothing, it's just to avoid losing "focus" on the highlighted element.
+ } else if (e.which === 27) { // escape
+ removeClass(actives[currentTab][0], 'highlighted');
+ document.getElementsByClassName('search-input')[0].value = '';
+ defocusSearchBar();
} else if (actives[currentTab].length > 0) {
removeClass(actives[currentTab][0], 'highlighted');
}