From 1e8bc6cb2b527cde3ae5444fd03c0ee33fca5e2f Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Tue, 24 Jan 2023 16:08:31 +0000
Subject: [PATCH] use aria-current="page" correctly, closes #1748

Closes #1748

Merge request studip/studip!1338
---
 lib/navigation/Navigation.php |  8 +++++++-
 templates/header.php          |  4 ++--
 templates/index_nobody.php    |  2 +-
 templates/tabs.php            | 22 +---------------------
 4 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/lib/navigation/Navigation.php b/lib/navigation/Navigation.php
index 149210849f9..8c30714b5d7 100644
--- a/lib/navigation/Navigation.php
+++ b/lib/navigation/Navigation.php
@@ -399,7 +399,13 @@ class Navigation implements IteratorAggregate
      */
     public function getLinkAttributes()
     {
-        return $this->link_attributes;
+        $attributes = $this->link_attributes;
+
+        if ($this->isActive()) {
+            $attributes['aria-current'] = 'page';
+        }
+
+        return $attributes;
     }
 
     /**
diff --git a/templates/header.php b/templates/header.php
index 2bd7336f0cb..d49b8efe2bc 100644
--- a/templates/header.php
+++ b/templates/header.php
@@ -210,7 +210,7 @@ if ($navigation) {
     <!-- End top bar -->
 
     <!-- Main navigation and right-hand logo -->
-    <nav id="navigation-level-1" aria-current="page" aria-label="<?= _('Hauptnavigation') ?>">
+    <nav id="navigation-level-1" aria-label="<?= _('Hauptnavigation') ?>">
         <? SkipLinks::addIndex(_('Hauptnavigation'), 'navigation-level-1', 2, false); ?>
         <ul id="navigation-level-1-items" <? if (count($header_nav['hidden']) > 0) echo 'class="overflown"'; ?>>
         <? foreach ($header_nav['visible'] as $path => $nav): ?>
@@ -289,7 +289,7 @@ if ($navigation) {
             <? endif ?>
 
             <? SkipLinks::addIndex(_('Zweite Navigationsebene'), 'navigation-level-2', 910) ?>
-            <nav id="navigation-level-2" aria-current="page" aria-label="<?= _('Zweite Navigationsebene') ?>">
+            <nav id="navigation-level-2" aria-label="<?= _('Zweite Navigationsebene') ?>">
 
                 <? if (PageLayout::isHeaderEnabled() /*&& isset($navigation)*/) : ?>
                     <?= $this->render_partial('tabs', compact('navigation')) ?>
diff --git a/templates/index_nobody.php b/templates/index_nobody.php
index 6b9e4f0fd52..b922822c2c5 100644
--- a/templates/index_nobody.php
+++ b/templates/index_nobody.php
@@ -24,7 +24,7 @@ if ($bg_mobile) {
 
     <div id="background-desktop" style="background: url(<?= $bg_desktop ?>) no-repeat top left/cover;"></div>
     <div id="background-mobile" style="background: url(<?= $bg_mobile ?>) no-repeat top left/cover;"></div>
-    <article id="loginbox" aria-current="page">
+    <article id="loginbox">
         <header>
             <h1><?= htmlReady(Config::get()->UNI_NAME_CLEAN) ?></h1>
         </header>
diff --git a/templates/tabs.php b/templates/tabs.php
index eb5999b719c..0072705cda8 100644
--- a/templates/tabs.php
+++ b/templates/tabs.php
@@ -5,7 +5,6 @@ foreach (Navigation::getItem("/")->getSubNavigation() as $path => $nav) {
         $path1 = $path;
     }
 }
-$ebene3 = [];
 ?>
 <div class="tabs_wrapper">
     <? SkipLinks::addIndex(_('Zweite Navigationsebene'), 'navigation-level-2', 10, false); ?>
@@ -14,7 +13,6 @@ $ebene3 = [];
         <? foreach ($navigation as $path => $nav) : ?>
             <? if ($nav->isVisible()) : ?>
                 <li id="nav_<?= $path1 ?>_<?= $path ?>"<?= $nav->isActive() ? ' class="current"' : '' ?>>
-                    <? if ($nav->isActive()) $path2 = $path; ?>
                     <? if ($nav->isEnabled()): ?>
                         <?
                         $attr = array_merge(['class' => ''], $nav->getLinkAttributes());
@@ -27,26 +25,8 @@ $ebene3 = [];
                             <? if ($image = $nav->getImage()) : ?>
                                 <?= $image->asImg(['class' => "tab-icon", 'title' => $nav->getTitle() ? $nav->getTitle() : $nav->getDescription()]) ?>
                             <? endif ?>
-                            <span title="<?= $nav->getDescription() ? htmlReady($nav->getDescription()) : htmlReady($nav->getTitle())?>" class="tab-title"><?= $nav->getTitle() ? htmlReady($nav->getTitle()) : '&nbsp;' ?></span>
+                            <span title="<?= $nav->getDescription() ? htmlReady($nav->getDescription()) : htmlReady($nav->getTitle())?>" class="tab-title"><?= htmlReady($nav->getTitle()) ?></span>
                         </a>
-                        <? if (count($nav->getSubNavigation()) > 1): ?>
-
-                        <?
-                        if ($nav->isActive()) {
-                            foreach ($nav->getSubNavigation() as $subnav) {
-                                $ebene3[$subnav->getURL()]  = $subnav;
-                            }
-                        }
-                        /*$content_group = ContentGroupMenu::get();
-                            $content_group->setLabel("");
-                            $content_group->setIcon(Icon::create('arr_1down', 'clickable', array()));
-                            foreach ($nav->getSubNavigation() as $subnav) {
-                                $content_group->addLink(URLHelper::getLink($subnav->getURL()), _($subnav->getTitle()), $subnav->getImage());
-                            }*/
-                        ?>
-                        <?//= $content_group->render(); ?>
-
-                        <? endif; ?>
                     <? else: ?>
                         <span class="quiet tab-title">
                             <? if ($image = $nav->getImage()) : ?>
-- 
GitLab