From e0a60c29bbc9519bdfe72ca1495ddfaa0aac2d36 Mon Sep 17 00:00:00 2001
From: Eric Kirsner <evilehk@gmail.com>
Date: Sun, 20 Oct 2013 00:10:09 -0500
Subject: [PATCH] patch for chromes hidden required fields for issue #2101427

---
 core/lib/Drupal/Core/Database/Install/Tasks.php | 12 ++++++++++--
 core/misc/states.js                             |  4 ++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/core/lib/Drupal/Core/Database/Install/Tasks.php b/core/lib/Drupal/Core/Database/Install/Tasks.php
index df58c25..04993bd 100644
--- a/core/lib/Drupal/Core/Database/Install/Tasks.php
+++ b/core/lib/Drupal/Core/Database/Install/Tasks.php
@@ -215,16 +215,24 @@ public function getFormOptions($database) {
       '#title' => t('Database name'),
       '#default_value' => empty($database['database']) ? '' : $database['database'],
       '#size' => 45,
-      '#required' => TRUE,
       '#description' => t('The name of the database your @drupal data will be stored in.', array('@drupal' => drupal_install_profile_distribution_name())),
+      '#states' => array(
+        'required' => array(
+          ':input[name=driver]' => array('value' => $this->pdoDriver),
+        ),
+      ),
     );
 
     $form['username'] = array(
       '#type' => 'textfield',
       '#title' => t('Database username'),
       '#default_value' => empty($database['username']) ? '' : $database['username'],
-      '#required' => TRUE,
       '#size' => 45,
+      '#states' => array(
+        'required' => array(
+          ':input[name=driver]' => array('value' => $this->pdoDriver),
+        ),
+      ),
     );
 
     $form['password'] = array(
diff --git a/core/misc/states.js b/core/misc/states.js
index d934ee5..4941ee3 100644
--- a/core/misc/states.js
+++ b/core/misc/states.js
@@ -517,10 +517,10 @@ $(document).bind('state:disabled', function(e) {
 $(document).bind('state:required', function(e) {
   if (e.trigger) {
     if (e.value) {
-      $(e.target).closest('.form-item, .form-wrapper').find('label').append('<abbr class="form-required" title="' + Drupal.t('This field is required.') + '">*</abbr>');
+      $(e.target).attr({'required': 'required', 'aria-required': 'aria-required'}).closest('.form-item, .form-wrapper').find('label').append('<abbr class="form-required" title="' + Drupal.t('This field is required.') + '">*</abbr>');
     }
     else {
-      $(e.target).closest('.form-item, .form-wrapper').find('label .form-required').remove();
+      $(e.target).removeAttr('required aria-required').closest('.form-item, .form-wrapper').find('label .form-required').remove();
     }
   }
 });
-- 
1.8.1.msysgit.1

