diff --git a/core/css/apps.css b/core/css/apps.css
index e8b33ecba653b984ea1e72dec27e6ea25adcd00f..3ffa7d870984a7932ed8d722a6b6667ceefdd56b 100644
--- a/core/css/apps.css
+++ b/core/css/apps.css
@@ -162,7 +162,6 @@
 		text-overflow: ellipsis;
 		overflow: hidden;
 		display: inline-block;
-		width: 201px; /* fallback for IE8 */
 		width: calc(100% - 49px);
 		line-height: 44px;
 		float: left;
@@ -309,12 +308,6 @@
 .edge #app-navigation .app-navigation-entry-menu:after {
 	border: 1px solid #eee;
 }
-.ie8 .bubble {
-	margin-top: 18px;
-}
-.ie8 .bubble:after {
-	display: none;
-}
 /* miraculous border arrow stuff */
 .bubble:after,
 #app-navigation .app-navigation-entry-menu:after {
@@ -392,7 +385,6 @@
 	#app-navigation .app-navigation-entry-edit input {
 		border-bottom-right-radius: 0;
 		border-top-right-radius: 0;
-		width: 204px; /* fallback for IE8 */
 		width: calc(100% - 36px);
 		padding: 5px;
 		margin-right: 0;
diff --git a/core/css/fixes.css b/core/css/fixes.css
index 71cb09cae76c9f240dbd5010ae1652b17999a3b3..7b4540395a88ecbd374cd833edcb5a2015c17bab 100644
--- a/core/css/fixes.css
+++ b/core/css/fixes.css
@@ -10,131 +10,8 @@ select {
 	height: 32px;
 }
 
-/* reset typeface for IE8 because OpenSans renders too small */
-.ie8 body {
-    font-family: Frutiger, Calibri, 'Myriad Pro', Myriad, Arial, sans-serif;
-}
-
-.lte8 .icon-delete { background-image: url('../img/actions/delete.png'); }
-.lte8 .icon-delete:hover, .icon-delete:focus {
-	background-image: url('../img/actions/delete-hover.png');
-}
-
-.ie8 .icon-checkmark {
-	background-image: url('../img/actions/checkmark.png');
-}
-
-.ie8 .icon-close {
-	background-image: url('../img/actions/close.png');
-}
-
-.lte9 .icon-triangle-e {
-	background-image: url('../img/actions/triangle-e.png');
-}
-.lte9 .icon-triangle-n {
-	background-image: url('../img/actions/triangle-n.png');
-}
-.lte9 .icon-triangle-s {
-	background-image: url('../img/actions/triangle-s.png');
-}
-.lte9 .icon-settings,
-.lte9 .settings-button {
-	background-image: url('../img/actions/settings.png');
-}
-
-.lte9 input[type="submit"], .lte9 input[type="button"],
-.lte9 button, .lte9 .button,
-.lte9 #quota, .lte9 select, .lte9 .pager li a {
-	background-color: #f1f1f1;
-}
-
-/* IE8 needs PNG image for header logo */
-.ie8 #header .logo {
-	background-image: url(../img/logo-icon-175px.png);
-}
-
-/* IE8 needs background to be set to same color to make transparency look good. */
-.lte9 #body-login form input[type="text"] {
-	border: 1px solid lightgrey; /* use border to add 1px line between input fields */
-	background-color: white; /* don't change background on hover */
-}
-.lte9 #body-login form input[type="password"] {
-	/* leave out top border for 1px line between input fields*/
-	border-left: 1px solid lightgrey;
-	border-right: 1px solid lightgrey;
-	border-bottom: 1px solid lightgrey;
-	background-color: white; /* don't change background on hover */
-}
-.ie8 #body-login input[type="submit"] {
-	padding: 10px 5px;
-	margin-top: 3px;
-}
-/* for whatever unexplained reason */
-.ie8 #password {
-	width: 271px !important;
-	min-width: auto !important;
-}
-
-/* disable opacity of info text on gradient
-   since we cannot set a good backround color to use the filter&background hack as with the input labels */
-.lte9 #body-login p.info {
-	filter: initial;
-}
-
 /* deactivate show password toggle for IE. Does not work for 8 and 9+ have their own implementation. */
 .ie #show, .ie #show+label {
 	display: none;
 	visibility: hidden;
 }
-
-/* fix installation screen rendering issue for IE8+9 */
-.lte9 #body-login {
-	min-height: 100%;
-	height: auto !important;
-}
-
-/* oc-dialog only uses box shadow which is not supported by ie8 */
-.ie8 .oc-dialog {
-	border: 1px solid #888888;
-}
-
-/* IE8 doesn't support transparent background - let's emulate black with an opacity of .3 on a dark blue background*/
-.ie8 fieldset .warning, .ie8 #body-login .error {
-	background-color: #1B314D;
-}
-
-/* IE8 isn't able to display transparent background. So it is specified using a gradient */
-.ie8 #nojavascript {
-	filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4c320000', endColorstr='#4c320000');
-}
-
-/* IE8 doesn't have rounded corners, so the strengthify bar should be wider */
-.lte8 #body-login .strengthify-wrapper {
-	width: 271px;
-	left: 6px;
-}
-
-/* fix background of navigation popup in IE8 */
-.ie8 #navigation,
-.ie8 #expanddiv {
-	background-color: #111;
-}
-
-/* needed else IE8 will randomly hide the borders... */
-.ie8 table th#headerDate, table td.date,
-.ie8 table th.column-last, table td.column-last {
-	position: static;
-}
-
-.ie8 #controls {
-	background-color: white;
-}
-
-.ie8 #content-wrapper {
-	overflow-y: auto;
-}
-
-.ie8 #app-navigation .app-navigation-entry-edit input {
-	line-height: 38px;
-}
-
diff --git a/core/css/multiselect.css b/core/css/multiselect.css
index a4b03319156605a40e22bc5c86fdaa90fcdfd3a3..ef56044fd05712e4ba7a18d5e65213f25573d952 100644
--- a/core/css/multiselect.css
+++ b/core/css/multiselect.css
@@ -111,10 +111,3 @@ ul.multiselectoptions > li.creator > input {
 	padding: 5px;
 	margin: -5px;
 }
-
-.ie8 div.multiselect span:first-child {
-	display:block;
-	position:relative;
-	width: 90%;
-	margin-right:-1px;
-}
diff --git a/core/css/styles.css b/core/css/styles.css
index 32d4deb79e3813a309b6fadc16a62ca05344fcf4..e339c888ec7ac6ba8acbf80bfe7ad186fba31af9 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -187,7 +187,6 @@ a.two-factor-cancel {
 .emptycontent {
 	color: #888;
 	text-align: center;
-	margin-top: 100px; /* ie8 */
 	margin-top: 30vh;
 	width: 100%;
 }
@@ -416,14 +415,7 @@ label.infield {
 	-ms-user-select: none;
 	user-select: none;
 }
-html.ie8 #body-login form input[type="checkbox"]+label {
-	margin-left: -28px;
-	margin-top: -3px;
-	vertical-align: auto;
-}
-html.ie8 #body-login form input[type="checkbox"] {
-	margin-top: 5px;
-}
+
 #body-login form .errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 2em; padding:1em; }
 #body-login .success { background:#d7fed7; border:1px solid #0f0; width: 35%; margin: 30px auto; padding:1em; text-align: center;}
 
diff --git a/core/js/js.js b/core/js/js.js
index 1c49d38f9507a7e1e5b7731af2ebd27e4f708585..7f98668dcb277cdea1e839385762b83beb842212 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -788,7 +788,6 @@ var OC={
 			$(document).trigger(new $.Event('ajaxError'), xhr);
 		};
 
-		// FIXME: also needs an IE8 way
 		if (xhr.addEventListener) {
 			xhr.addEventListener('load', loadCallback);
 			xhr.addEventListener('error', errorCallback);
@@ -1857,30 +1856,10 @@ OC.Util = {
 	 * This scales the image to the element's actual size, the URL is
 	 * taken from the "background-image" CSS attribute.
 	 *
+	 * @deprecated IE8 isn't supported since 9.0
 	 * @param {Object} $el image element
 	 */
-	scaleFixForIE8: function($el) {
-		if (!this.isIE8()) {
-			return;
-		}
-		var self = this;
-		$($el).each(function() {
-			var url = $(this).css('background-image');
-			var r = url.match(/url\(['"]?([^'")]*)['"]?\)/);
-			if (!r) {
-				return;
-			}
-			url = r[1];
-			url = self.replaceSVGIcon(url);
-			// TODO: escape
-			url = url.replace(/'/g, '%27');
-			$(this).css({
-				'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + url + '\', sizingMethod=\'scale\')',
-				'background-image': ''
-			});
-		});
-		return $el;
-	},
+	scaleFixForIE8: function($el) {},
 
 	/**
 	 * Returns whether this is IE
@@ -1894,10 +1873,11 @@ OC.Util = {
 	/**
 	 * Returns whether this is IE8
 	 *
-	 * @return {bool} true if this is IE8, false otherwise
+	 * @deprecated IE8 isn't supported since 9.0
+	 * @return {bool} false (IE8 isn't supported anymore)
 	 */
 	isIE8: function() {
-		return $('html').hasClass('ie8');
+		return false;
 	},
 
 	/**
diff --git a/core/templates/layout.base.php b/core/templates/layout.base.php
index 29c2ca6696d6156fa66180606f7fade3c4cb25cc..7301ae690cc3a8f1758d67b099e8277c15565475 100644
--- a/core/templates/layout.base.php
+++ b/core/templates/layout.base.php
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
-<!--[if lte IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
-<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
-<!--[if (gt IE 9)|!(IE)]><!--><html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><!--<![endif]-->
+<html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" >
 	<head data-requesttoken="<?php p($_['requesttoken']); ?>">
 		<meta charset="utf-8">
 		<title>
diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php
index 3f9c47f9aa6a53f9d68aff81192cbc160971cedb..985e95294adcf2df153d91071a7ce7fc675ae7d1 100644
--- a/core/templates/layout.guest.php
+++ b/core/templates/layout.guest.php
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
-<!--[if lte IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
-<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
-<!--[if (gt IE 9)|!(IE)]><!--><html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><!--<![endif]-->
+<html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" >
 	<head data-requesttoken="<?php p($_['requesttoken']); ?>">
 		<meta charset="utf-8">
 		<title>
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index 601af6077f40b408af6ab1cb211e2831d34e6e37..b19095dee8ea6f63b16dfe404589d7fb3c9b9fe5 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -1,7 +1,5 @@
 <!DOCTYPE html>
-<!--[if lte IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
-<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
-<!--[if (gt IE 9)|!(IE)]><!--><html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><!--<![endif]-->
+<html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" >
 	<head data-user="<?php p($_['user_uid']); ?>" data-user-displayname="<?php p($_['user_displayname']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>">
 		<meta charset="utf-8">
 		<title>
diff --git a/settings/css/settings.css b/settings/css/settings.css
index e4ddec9152a645e98fb25685f9d39c5e53f468c9..3bb88b46283d26a8a206afde3f9a99642b4e15ab 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -161,10 +161,6 @@ table.nostyle td { padding: 0.2em 0; }
 	width: 32px;
 }
 
-.ie8 #newgroup-form .icon-add {
-	height: 30px;
-}
-
 .isgroup .groupname {
 	width: 85%;
 	display: block;
@@ -281,10 +277,6 @@ input.userFilter {width: 200px;}
 	width: 32px;
 }
 
-
-.ie8 table.hascontrols{border-collapse:collapse;width: 100%;}
-.ie8 table.hascontrols tbody tr{border-collapse:collapse;border: 1px solid #ddd !important;}
-
 /* used to highlight a user row in red */
 #userlist tr.row-warning {
 	background-color: #FDD;
@@ -540,18 +532,6 @@ span.indeterminate {
 	margin-top: -7px;
 }
 
-.ie8 .strengthify-wrapper {
-	left: 389px;
-}
-
-.onlyInIE8 {
-	display: none;
-}
-
-.ie8 .onlyInIE8 {
-	display: inline;
-}
-
 /* OPERA hack for strengthify*/
 doesnotexist:-o-prefocus, .strengthify-wrapper {
 	left: 185px;
diff --git a/settings/templates/personal.php b/settings/templates/personal.php
index b9b8429d943c49a17d52de568cf162eba18e3ff2..e93155f0f39ab4e838304b354d17d679e40c9bcd 100644
--- a/settings/templates/personal.php
+++ b/settings/templates/personal.php
@@ -121,11 +121,11 @@ if($_['passwordChangeSupported']) {
 	<div class="hidden icon-checkmark" id="password-changed"></div>
 	<div class="hidden" id="password-error"><?php p($l->t('Unable to change your password'));?></div>
 	<br>
-	<label for="pass1" class="onlyInIE8"><?php echo $l->t('Current password');?>: </label>
+	<label for="pass1" class="hidden-visually"><?php echo $l->t('Current password');?>: </label>
 	<input type="password" id="pass1" name="oldpassword"
 		placeholder="<?php echo $l->t('Current password');?>"
 		autocomplete="off" autocapitalize="off" autocorrect="off" />
-	<label for="pass2" class="onlyInIE8"><?php echo $l->t('New password');?>: </label>
+	<label for="pass2" class="hidden-visually"><?php echo $l->t('New password');?>: </label>
 	<input type="password" id="pass2" name="personal-password"
 		placeholder="<?php echo $l->t('New password');?>"
 		data-typetoggle="#personal-show"