Add aria attributes to selected menu items
This commit is contained in:
parent
493f849aeb
commit
ebe8626ba7
@ -14,7 +14,8 @@ $hasManga = stripos($_SERVER['REQUEST_URI'], 'manga') !== FALSE;
|
||||
<?php if(strpos($route_path, 'collection') === FALSE): ?>
|
||||
<?= $helper->a(
|
||||
$urlGenerator->defaultUrl($url_type),
|
||||
$whose . ucfirst($url_type) . ' List'
|
||||
$whose . ucfirst($url_type) . ' List',
|
||||
['aria-current'=> 'page']
|
||||
) ?>
|
||||
<?php if($config->get("show_{$url_type}_collection")): ?>
|
||||
[<?= $helper->a(
|
||||
@ -35,7 +36,8 @@ $hasManga = stripos($_SERVER['REQUEST_URI'], 'manga') !== FALSE;
|
||||
<?php else: ?>
|
||||
<?= $helper->a(
|
||||
$url->generate("{$url_type}.collection.view") . $extraSegment,
|
||||
$whose . ucfirst($url_type) . ' Collection'
|
||||
$whose . ucfirst($url_type) . ' Collection',
|
||||
['aria-current'=> 'page']
|
||||
) ?>
|
||||
<?php if($config->get("show_{$other_type}_collection")): ?>
|
||||
[<?= $helper->a(
|
||||
@ -79,15 +81,22 @@ $hasManga = stripos($_SERVER['REQUEST_URI'], 'manga') !== FALSE;
|
||||
</span>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<nav>
|
||||
<?php if ($container->get('util')->isViewPage() && ($hasAnime || $hasManga)): ?>
|
||||
<nav>
|
||||
<?= $helper->menu($menu_name) ?>
|
||||
<?php if (stripos($_SERVER['REQUEST_URI'], 'history') === FALSE): ?>
|
||||
<br />
|
||||
<ul>
|
||||
<li class="<?= Util::isNotSelected('list', $lastSegment) ?>"><a href="<?= $urlGenerator->url($route_path) ?>">Cover View</a></li>
|
||||
<li class="<?= Util::isSelected('list', $lastSegment) ?>"><a href="<?= $urlGenerator->url("{$route_path}/list") ?>">List View</a></li>
|
||||
<?php $currentView = Util::eq('list', $lastSegment) ? 'list' : 'cover' ?>
|
||||
<li class="<?= Util::isNotSelected('list', $lastSegment) ?>">
|
||||
<a aria-current="<?= Util::ariaCurrent($currentView === 'cover') ?>"
|
||||
href="<?= $urlGenerator->url($route_path) ?>">Cover View</a>
|
||||
</li>
|
||||
<li class="<?= Util::isSelected('list', $lastSegment) ?>">
|
||||
<a aria-current="<?= Util::ariaCurrent($currentView === 'list') ?>"
|
||||
href="<?= $urlGenerator->url("{$route_path}/list") ?>">List View</a>
|
||||
</li>
|
||||
</ul>
|
||||
<?php endif ?>
|
||||
<?php endif ?>
|
||||
</nav>
|
||||
<?php endif ?>
|
||||
|
@ -105,7 +105,10 @@ final class MenuGenerator extends UrlGenerator {
|
||||
$has = StringType::from($this->path())->contains($path);
|
||||
$selected = ($has && mb_strlen($this->path()) >= mb_strlen($path));
|
||||
|
||||
$link = $this->helper->a($this->url($path), $title);
|
||||
$linkAttrs = ($selected)
|
||||
? ['aria-current' => 'location']
|
||||
: [];
|
||||
$link = $this->helper->a($this->url($path), $title, $linkAttrs);
|
||||
|
||||
$attrs = $selected
|
||||
? ['class' => 'selected']
|
||||
|
@ -54,6 +54,29 @@ class Util {
|
||||
$this->setContainer($container);
|
||||
}
|
||||
|
||||
/**
|
||||
* Absolutely equal?
|
||||
*
|
||||
* @param $left
|
||||
* @param $right
|
||||
* @return bool
|
||||
*/
|
||||
public static function eq($left, $right): bool
|
||||
{
|
||||
return $left === $right;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set aria-current attribute based on a condition check
|
||||
*
|
||||
* @param bool $condition
|
||||
* @return string
|
||||
*/
|
||||
public static function ariaCurrent(bool $condition): string
|
||||
{
|
||||
return $condition ? 'true' : 'false';
|
||||
}
|
||||
|
||||
/**
|
||||
* HTML selection helper function
|
||||
*
|
||||
@ -63,7 +86,7 @@ class Util {
|
||||
*/
|
||||
public static function isSelected(string $left, string $right): string
|
||||
{
|
||||
return ($left === $right) ? 'selected' : '';
|
||||
return static::eq($left, $right) ? 'selected' : '';
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user