diff --git a/src/addon/messages/pages/conversation-info/conversation-info.html b/src/addon/messages/pages/conversation-info/conversation-info.html
index 36af28369..393b078b6 100644
--- a/src/addon/messages/pages/conversation-info/conversation-info.html
+++ b/src/addon/messages/pages/conversation-info/conversation-info.html
@@ -27,7 +27,7 @@
             <ion-avatar core-user-avatar [user]="member" [linkProfile]="false" [checkOnline]="member.showonlinestatus" item-start></ion-avatar>
             <h2>
                 <core-format-text [text]="member.fullname"></core-format-text>
-                <core-icon name="fa-ban" *ngIf="member.isblocked" [attr.aria-label]="'addon.messages.contactblocked' | translate"></core-icon>
+                <core-icon name="fa-ban" *ngIf="member.isblocked" [label]="'addon.messages.contactblocked' | translate"></core-icon>
             </h2>
         </a>
 
diff --git a/src/addon/messages/pages/group-conversations/group-conversations.html b/src/addon/messages/pages/group-conversations/group-conversations.html
index e4d916c38..10d5c3052 100644
--- a/src/addon/messages/pages/group-conversations/group-conversations.html
+++ b/src/addon/messages/pages/group-conversations/group-conversations.html
@@ -100,7 +100,7 @@
 
         <h2>
             <core-format-text [text]="conversation.name"></core-format-text>
-            <core-icon name="fa-ban" *ngIf="conversation.isblocked" [attr.aria-label]="'addon.messages.contactblocked' | translate"></core-icon>
+            <core-icon name="fa-ban" *ngIf="conversation.isblocked" [label]="'addon.messages.contactblocked' | translate"></core-icon>
         </h2>
         <ion-note *ngIf="conversation.lastmessagedate > 0 || conversation.unreadcount">
             <ion-badge *ngIf="conversation.unreadcount > 0">{{ conversation.unreadcount }}</ion-badge>
diff --git a/src/addon/messages/pages/search/search.html b/src/addon/messages/pages/search/search.html
index 43dfbd4c5..4a9ba7621 100644
--- a/src/addon/messages/pages/search/search.html
+++ b/src/addon/messages/pages/search/search.html
@@ -34,7 +34,7 @@
         <ion-avatar item-start core-user-avatar [user]="result" [checkOnline]="true" [linkProfile]="false"></ion-avatar>
         <h2>
             <core-format-text [text]="result.fullname"></core-format-text>
-            <core-icon name="fa-ban" *ngIf="result.isblocked" [attr.aria-label]="'addon.messages.contactblocked' | translate"></core-icon>
+            <core-icon name="fa-ban" *ngIf="result.isblocked" [label]="'addon.messages.contactblocked' | translate"></core-icon>
         </h2>
         <ion-note *ngIf="result.lastmessagedate > 0">
             {{result.lastmessagedate | coreDateDayOrTime}}
diff --git a/src/addon/mod/quiz/pages/navigation-modal/navigation-modal.html b/src/addon/mod/quiz/pages/navigation-modal/navigation-modal.html
index ded960206..a68cdaa43 100644
--- a/src/addon/mod/quiz/pages/navigation-modal/navigation-modal.html
+++ b/src/addon/mod/quiz/pages/navigation-modal/navigation-modal.html
@@ -25,9 +25,10 @@
                 <span *ngIf="question.number">{{ 'core.question.questionno' | translate:{$a: question.number} }}</span>
                 <span *ngIf="!question.number">{{ 'core.question.information' | translate }}</span>
                 <core-icon item-content *ngIf="!question.number" name="information-circle" color="info"></core-icon>
-                <core-icon item-content *ngIf="question.stateClass == 'core-question-correct'" name="fa-check" color="success"></core-icon>
-                <core-icon item-content *ngIf="question.stateClass == 'core-question-partiallycorrect'" name="fa-check-square" color="warning"></core-icon>
-                <core-icon item-content *ngIf="question.stateClass == 'core-question-incorrect' || question.stateClass == 'core-question-notanswered'" name="fa-remove" color="danger"></core-icon>
+                <core-icon item-content *ngIf="question.stateClass == 'core-question-requiresgrading'" name="fa-question-circle" color="gray" [label]="question.status"></core-icon>
+                <core-icon item-content *ngIf="question.stateClass == 'core-question-correct'" name="fa-check" color="success" [label]="question.status"></core-icon>
+                <core-icon item-content *ngIf="question.stateClass == 'core-question-partiallycorrect'" name="fa-check-square" color="warning" [label]="question.status"></core-icon>
+                <core-icon item-content *ngIf="question.stateClass == 'core-question-incorrect' || question.stateClass == 'core-question-notanswered'" name="fa-remove" color="danger" [label]="question.status"></core-icon>
             </a>
 
             <!-- In player, show button to finish attempt. -->
diff --git a/src/addon/mod/quiz/pages/navigation-modal/navigation-modal.scss b/src/addon/mod/quiz/pages/navigation-modal/navigation-modal.scss
index f732e2949..5b3b72890 100644
--- a/src/addon/mod/quiz/pages/navigation-modal/navigation-modal.scss
+++ b/src/addon/mod/quiz/pages/navigation-modal/navigation-modal.scss
@@ -14,49 +14,16 @@ ion-app.app-root page-addon-mod-quiz-navigation-modal {
         }
     }
 
-    .item.core-question-correct {
-        &.addon-mod_quiz-selected {
-            @include border-start(5px, solid, $core-question-correct-color);
-        }
-
-        .item-inner {
-            @include push-arrow-color($core-question-correct-color);
-            border-bottom-color: $core-question-correct-color;
-        }
-    }
-
+    .item.core-question-correct,
     .item.core-question-incorrect,
-    .item.core-question-notanswered {
-        &.addon-mod_quiz-selected {
-            @include border-start(5px, solid, $core-question-incorrect-color);
-        }
-
-        .item-inner {
-            @include push-arrow-color($core-question-incorrect-color);
-            border-bottom-color: $core-question-incorrect-color;
-        }
-    }
-
-    .item.core-question-partiallycorrect {
-        &.addon-mod_quiz-selected {
-            @include border-start(5px, solid, $core-question-state-partial-text);
-        }
-
-        .item-inner {
-            @include push-arrow-color($core-question-state-partial-text);
-            border-bottom-color: $core-question-state-partial-text;
-        }
-    }
-
+    .item.core-question-notanswered,
+    .item.core-question-partiallycorrect,
     .item.core-question-requiresgrading,
     .item.core-question-answersaved {
-        &.addon-mod_quiz-selected {
-            @include border-start(5px, solid, $text-color);
-        }
-
-        .item-inner {
-            @include push-arrow-color($text-color);
-            border-bottom-color: $text-color;
+        ion-label.label {
+            color: $text-color;
         }
+        color: $text-color;
+        background-color: $white;
     }
 }
diff --git a/src/addon/mod/quiz/pages/review/review.ts b/src/addon/mod/quiz/pages/review/review.ts
index 03c894cf6..bd5825901 100644
--- a/src/addon/mod/quiz/pages/review/review.ts
+++ b/src/addon/mod/quiz/pages/review/review.ts
@@ -69,7 +69,7 @@ export class AddonModQuizReviewPage implements OnInit {
         this.navigationModal = modalCtrl.create('AddonModQuizNavigationModalPage', {
             isReview: true,
             page: this
-        });
+        }, { cssClass: 'core-modal-lateral' });
     }
 
     /**
diff --git a/src/components/context-menu/core-context-menu-popover.html b/src/components/context-menu/core-context-menu-popover.html
index f3c0d2323..18905549d 100644
--- a/src/components/context-menu/core-context-menu-popover.html
+++ b/src/components/context-menu/core-context-menu-popover.html
@@ -1,7 +1,7 @@
 <ion-list [id]="uniqueId" role="menu">
     <ion-list-header *ngIf="title">{{title}}</ion-list-header>
     <a ion-item text-wrap *ngFor="let item of items" core-link [capture]="item.captureLink" [autoLogin]="item.autoLogin" [href]="item.href" (click)="itemClicked($event, item)" [attr.aria-label]="item.ariaAction" [hidden]="item.hidden" [attr.detail-none]="!item.href || item.iconAction" role="menuitem" [attr.aria-controls]="uniqueId">
-        <core-icon *ngIf="item.iconDescription" [name]="item.iconDescription" [attr.aria-label]="item.ariaDescription" item-start></core-icon>
+        <core-icon *ngIf="item.iconDescription" [name]="item.iconDescription" [label]="item.ariaDescription" item-start></core-icon>
         <core-format-text [clean]="true" [text]="item.content"></core-format-text>
         <core-icon *ngIf="(item.href || item.action) && item.iconAction && item.iconAction != 'spinner'" [name]="item.iconAction" item-end></core-icon>
         <ion-spinner *ngIf="(item.href || item.action) && item.iconAction == 'spinner'" item-end></ion-spinner>
diff --git a/src/components/icon/core-icon.html b/src/components/icon/core-icon.html
index 54452fe8f..8e4a85f3a 100644
--- a/src/components/icon/core-icon.html
+++ b/src/components/icon/core-icon.html
@@ -1 +1 @@
-<ion-icon [name]="name" [isActive]="isActive" [md]="md" [ios]="ios" [color]="color" aria-hidden="true" role="presentation"></ion-icon>
\ No newline at end of file
+<ion-icon [name]="name" [isActive]="isActive" [md]="md" [ios]="ios" [color]="color"></ion-icon>
\ No newline at end of file
diff --git a/src/components/icon/icon.ts b/src/components/icon/icon.ts
index 50351f582..0321a6485 100644
--- a/src/components/icon/icon.ts
+++ b/src/components/icon/icon.ts
@@ -37,6 +37,8 @@ export class CoreIconComponent implements OnInit, OnDestroy {
     // FontAwesome params.
     @Input('fixed-width') fixedWidth: string;
 
+    @Input('label') ariaLabel?: string;
+
     protected element: HTMLElement;
     protected newElement: HTMLElement;
 
@@ -54,8 +56,6 @@ export class CoreIconComponent implements OnInit, OnDestroy {
             this.newElement.classList.add('icon');
             this.newElement.classList.add('fa');
             this.newElement.classList.add(this.name);
-            this.newElement.setAttribute('aria-hidden', 'true');
-            this.newElement.setAttribute('role', 'img');
             if (this.isTrueProperty(this.fixedWidth)) {
                 this.newElement.classList.add('fa-fw');
             }
@@ -66,6 +66,10 @@ export class CoreIconComponent implements OnInit, OnDestroy {
             this.newElement = <HTMLElement> this.element.firstElementChild;
         }
 
+        !this.ariaLabel && this.newElement.setAttribute('aria-hidden', 'true');
+        !this.ariaLabel && this.newElement.setAttribute('role', 'presentation');
+        this.ariaLabel && this.newElement.setAttribute('aria-label', this.ariaLabel);
+
         const attrs = this.element.attributes;
         for (let i = attrs.length - 1; i >= 0; i--) {
             if (attrs[i].name == 'class') {