diff --git a/app/views/course/basicdata/view.php b/app/views/course/basicdata/view.php index 9f7b5b360061f2b0c5171b0eb897ee74727290ab..380fdb48ecfdae75b7f0c1ffa888b5d998b55653 100644 --- a/app/views/course/basicdata/view.php +++ b/app/views/course/basicdata/view.php @@ -24,7 +24,8 @@ $message_types = ['msg' => "success", 'error' => "error", 'info' => "info"]; <?= CSRFProtection::tokenTag() ?> <input id="open_variable" type="hidden" name="open" value="<?= $flash['open'] ?>"> <?= Studip\Button::createAccept(_('Speichern'), 'store', ['style' => 'display: none;']) ?> - <fieldset <?= isset($flash['open']) && $flash['open'] != 'bd_basicsettings' ? 'class="collapsed"' : ''?> data-open="bd_basicsettings"> + <fieldset <?= isset($flash['open']) && $flash['open'] != 'bd_basicsettings' ? 'class="collapsed"' : ''?> data-open="bd_basicsettings" + aria-expanded="<?= isset($flash['open']) && $flash['open'] === 'bd_basicsettings' ? 'true' : 'false' ?>"> <legend><?= _('Grundeinstellungen') ?></legend> <? if (!$attributes): ?> @@ -55,7 +56,8 @@ $message_types = ['msg' => "success", 'error' => "error", 'info' => "info"]; </label> </fieldset> - <fieldset <?= !isset($flash['open']) || $flash['open'] != 'inset' ? 'class="collapsed"' : ''?> data-open="bd_inst"> + <fieldset <?= !isset($flash['open']) || $flash['open'] != 'inset' ? 'class="collapsed"' : ''?> data-open="bd_inst" + aria-expanded="<?= isset($flash['open']) && $flash['open'] === 'inset' ? 'true' : 'false' ?>"> <legend><?= _('Einrichtungen') ?></legend> <? if (!$institutional): ?> @@ -78,7 +80,8 @@ $message_types = ['msg' => "success", 'error' => "error", 'info' => "info"]; <? endif; ?> </fieldset> - <fieldset <?= !isset($flash['open']) || $flash['open'] != 'bd_personal' ? 'class="collapsed"' : ''?>> + <fieldset <?= !isset($flash['open']) || $flash['open'] != 'bd_personal' ? 'class="collapsed"' : ''?> + aria-expanded="<?= isset($flash['open']) && $flash['open'] === 'bd_personal' ? 'true' : 'false' ?>"> <legend><?= _('Personal') ?></legend> <table class="default"> @@ -293,7 +296,8 @@ $message_types = ['msg' => "success", 'error' => "error", 'info' => "info"]; </tbody> </table> </fieldset> - <fieldset <?= !isset($flash['open']) || $flash['open'] != 'bd_description' ? 'class="collapsed"' : ''?> data-open="bd_description"> + <fieldset <?= !isset($flash['open']) || $flash['open'] != 'bd_description' ? 'class="collapsed"' : ''?> data-open="bd_description" + aria-expanded="<?= isset($flash['open']) && $flash['open'] === 'bd_description' ? 'true' : 'false' ?>"> <legend><?= _('Weitere Angaben') ?></legend> <? if (!$descriptions): ?> diff --git a/resources/assets/javascripts/bootstrap/application.js b/resources/assets/javascripts/bootstrap/application.js index a9f53dfb2c5d608ec027ba680acc62e593c57129..4ad248f4e9f07cb81d5df1a891400c98a698e5ee 100644 --- a/resources/assets/javascripts/bootstrap/application.js +++ b/resources/assets/javascripts/bootstrap/application.js @@ -353,6 +353,7 @@ jQuery(document).on('click', 'a[data-behaviour~="ajax-toggle"]', function (event (function ($) { $(document).on('click', 'form[name=course-details] fieldset legend', function () { $('#open_variable').attr('value', $(this).parent('fieldset').data('open')); + $(this).parent('fieldset').attr('aria-expanded', $(this).parent('fieldset').attr('aria-expanded') == 'true' ? 'false' : 'true'); }); }(jQuery)); diff --git a/resources/assets/javascripts/bootstrap/article.js b/resources/assets/javascripts/bootstrap/article.js index fbfc1317e5824f1475cfd091fd2d56cfaa86024f..04316f5f18b26d53e4421a05b274ddf1bd49d837 100644 --- a/resources/assets/javascripts/bootstrap/article.js +++ b/resources/assets/javascripts/bootstrap/article.js @@ -13,6 +13,7 @@ // Open the contentbox article.toggleClass('open').removeClass('new'); + article.attr('aria-expanded', article.attr('aria-expanded') === 'true' ? 'false' : 'true'); }); // Open closed article contents when location hash matches diff --git a/resources/assets/javascripts/bootstrap/contentbox.js b/resources/assets/javascripts/bootstrap/contentbox.js index 42c5df18ca30863687a94d6c7401d62f99b5143e..3f05331047de7a1f6c7e5a75d1f844c13960f53a 100644 --- a/resources/assets/javascripts/bootstrap/contentbox.js +++ b/resources/assets/javascripts/bootstrap/contentbox.js @@ -13,5 +13,6 @@ $(document).on('click', 'section.contentbox article header h1 a', function(e) { // Open the contentbox article.toggleClass('open').removeClass('new'); + article.attr('aria-expanded', article.attr('aria-expanded') === 'true' ? 'false' : 'true'); } }); diff --git a/resources/assets/javascripts/lib/personal_notifications.js b/resources/assets/javascripts/lib/personal_notifications.js index 90f10536536c6becf3e617dccfc867605cc041af..392e8b0615b5c7c314f37b224bb700f85e1b5295 100644 --- a/resources/assets/javascripts/lib/personal_notifications.js +++ b/resources/assets/javascripts/lib/personal_notifications.js @@ -116,6 +116,11 @@ const PersonalNotifications = { .click(STUDIP.PersonalNotifications.activate); } } + + // Special handling for personal notifications: + $('#notification-container').on('mouseover mouseout', function (event) { + $(this).attr('aria-expanded', $(this).attr('aria-expanded') === 'true' ? 'false' : 'true'); + }); }, activate () { Promise.resolve(Notification.requestPermission()).then(permission => { diff --git a/templates/header.php b/templates/header.php index f11b23c47927a1838d0155629f50a7746c4bea85..5a935b3f60cb97ad67c4d0ecc4dad6341a2bf6d4 100644 --- a/templates/header.php +++ b/templates/header.php @@ -141,7 +141,8 @@ if ($navigation) { ngettext('%u Benachrichtigung', '%u Benachrichtigungen', count($notifications)), count($notifications) ) ?>" data-lastvisit="<?= $lastvisit ?>" - <?= count($notifications) == 0 ? 'disabled' : '' ?>> + <?= count($notifications) == 0 ? 'disabled' : '' ?> aria-controls="notification-list" + aria-expanded="false"> <span class="count" aria-hidden="true"><?= count($notifications) ?></span> </button> <input type="checkbox" id="notification_checkbox">