diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 476e641d7a919c85d024f3579261e8bb2357e440..2692d6bed1d07a985f267b9987aea0363cbda6c3 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -9,6 +9,7 @@
  */
 
 use Drupal\Component\Render\FormattableMarkup;
+use Drupal\Core\StringTranslation\TranslatableMarkup;
 use Drupal\Core\Url;
 use Drupal\Component\Serialization\Json;
 use Drupal\Component\Utility\Crypt;
@@ -1836,6 +1837,7 @@ function template_preprocess_pager(&$variables) {
     $items['pages'][$i]['attributes'] = new Attribute();
     if ($i == $pager_current) {
       $variables['current'] = $i;
+      $items['pages'][$i]['attributes']->setAttribute('aria-current', new TranslatableMarkup('Current page'));
     }
   }
   // Add an ellipsis if there are further next pages.
diff --git a/core/modules/system/tests/src/Unit/Pager/PreprocessPagerTest.php b/core/modules/system/tests/src/Unit/Pager/PreprocessPagerTest.php
index 945657282f652f15a5a634564a845061dd07b43d..4623ffc9c7d44838ab7aa65026c661b8d4d064be 100644
--- a/core/modules/system/tests/src/Unit/Pager/PreprocessPagerTest.php
+++ b/core/modules/system/tests/src/Unit/Pager/PreprocessPagerTest.php
@@ -3,6 +3,7 @@
 namespace Drupal\Tests\system\Unit\Pager;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Drupal\Core\Template\AttributeString;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -39,6 +40,8 @@ protected function setUp(): void {
     $container = new ContainerBuilder();
     $container->set('pager.manager', $pager_manager);
     $container->set('url_generator', $url_generator);
+    // template_preprocess_pager() renders translatable attribute values.
+    $container->set('string_translation', $this->getStringTranslationStub());
     \Drupal::setContainer($container);
   }
 
@@ -63,4 +66,29 @@ public function testQuantityNotSet() {
     $this->assertEquals(['first', 'previous'], array_keys($variables['items']));
   }
 
+  /**
+   * Tests template_preprocess_pager() when a #quantity value is passed.
+   *
+   * @covers ::template_preprocess_pager
+   */
+  public function testQuantitySet() {
+    require_once $this->root . '/core/includes/theme.inc';
+    $variables = [
+      'pager' => [
+        '#element' => '2',
+        '#parameters' => [],
+        '#quantity' => '2',
+        '#route_name' => '',
+        '#tags' => '',
+      ],
+    ];
+    template_preprocess_pager($variables);
+
+    $this->assertEquals(['first', 'previous', 'pages'], array_keys($variables['items']));
+    /** @var \Drupal\Core\Template\AttributeString $attribute */
+    $attribute = $variables['items']['pages']['2']['attributes']->offsetGet('aria-current');
+    $this->assertInstanceOf(AttributeString::class, $attribute);
+    $this->assertEquals('Current page', $attribute->value());
+  }
+
 }