Skip to content
Snippets Groups Projects
Verified Commit 38e90839 authored by Dave Long's avatar Dave Long
Browse files

Issue #2952488 by smustgrave, pminf, dcgoodwin, andypost, pau1_m, sim_1,...

Issue #2952488 by smustgrave, pminf, dcgoodwin, andypost, pau1_m, sim_1, boulaffasae, idebr, jmickela, barone, mgifford, jgloverattronedotcom, andrewmacpherson, DuaelFr, larowlan, lauriii, RachelOlivero: Use aria-current=page in pagination links
parent b90b2e30
No related branches found
No related tags found
No related merge requests found
......@@ -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.
......
......@@ -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());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment