diff --git a/core/modules/user/css/user.module.css b/core/modules/user/css/user.module.css
index 0b6afcf..676c3e8 100644
--- a/core/modules/user/css/user.module.css
+++ b/core/modules/user/css/user.module.css
@@ -2,10 +2,6 @@
  * @file
  * Module styling for user module.
  */
-.password-strength__title,
-.password-strength__text {
-  display: inline;
-}
 .password-strength__meter {
   height: 0.75em;
   margin-top: 0.5em;
@@ -19,3 +15,12 @@
 .password-confirm-match {
   visibility: hidden;
 }
+.password-strength {
+  width: 55%;
+  margin-top: -0.3em;
+}
+div.password-confirm {
+  visibility: hidden;
+  width: 55%;
+  height: 0;
+}
\ No newline at end of file
diff --git a/core/modules/user/user.js b/core/modules/user/user.js
index 615689c..cbd387d 100644
--- a/core/modules/user/user.js
+++ b/core/modules/user/user.js
@@ -39,6 +39,12 @@
           $passwordSuggestions = $passwordInputParentWrapper.find('div.password-suggestions').hide();
         }
 
+        // Add the password confirmation layer.
+        var passwordConfirm = '<div class="password-confirm"><span class="password-confirm__title">' + translate.confirmTitle + ' </span><span class="password-confirm__text"></span></div></div>';
+        outerWrapper.find('input.password-confirm').parent().append(passwordConfirm).addClass('confirm-parent');
+        var confirmResult = outerWrapper.find('div.password-confirm');
+        var confirmChild = confirmResult.find('span.password-confirm__text');
+
         // Check that password and confirmation inputs match.
         var passwordCheckMatch = function (confirmInputVal) {
           var success = $passwordInput.val() === confirmInputVal;
diff --git a/core/modules/user/user.libraries.yml b/core/modules/user/user.libraries.yml
index e11cbfa..7c17427 100644
--- a/core/modules/user/user.libraries.yml
+++ b/core/modules/user/user.libraries.yml
@@ -11,6 +11,7 @@ drupal.user:
     - core/jquery
     - core/drupal
     - core/jquery.once
+    - core/drupal.announce
 
 drupal.user.admin:
   version: VERSION
