From 05f1863eb20070905b8604f218dcc79a0bf8c2f2 Mon Sep 17 00:00:00 2001
From: Moritz Strohm <strohm@data-quest.de>
Date: Fri, 13 May 2022 09:19:14 +0000
Subject: [PATCH] fix for accessibility issues in TIC #608

Merge request studip/studip!622
---
 app/views/institute/members/_table_body.php              | 1 +
 resources/vue/components/StudipActionMenu.vue            | 9 ++++++++-
 .../components/courseware/CoursewareContainerActions.vue | 3 ++-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/app/views/institute/members/_table_body.php b/app/views/institute/members/_table_body.php
index d9772433955..432125d4a95 100644
--- a/app/views/institute/members/_table_body.php
+++ b/app/views/institute/members/_table_body.php
@@ -7,6 +7,7 @@
     <? if ($structure['actions']): ?>
         <th class="actions">
         <?= ActionMenu::get()
+            ->setContext($th_title)
             ->condition($mail_status)
             ->addLink(
                 $controller->url_for('messages/write?filter=inst_status', [
diff --git a/resources/vue/components/StudipActionMenu.vue b/resources/vue/components/StudipActionMenu.vue
index 7d8e63434e3..eec47bb9825 100644
--- a/resources/vue/components/StudipActionMenu.vue
+++ b/resources/vue/components/StudipActionMenu.vue
@@ -1,6 +1,6 @@
 <template>
     <nav v-if="shouldCollapse" class="action-menu">
-        <button class="action-menu-icon" :title="$gettext('Aktionsmenü')" aria-expanded="false" :aria-label="$gettext('Aktionsmenü')">
+        <button class="action-menu-icon" :title="title" aria-expanded="false">
             <span></span>
             <span></span>
             <span></span>
@@ -35,6 +35,10 @@ export default {
         items: Array,
         collapseAt: {
             default: true,
+        },
+        context: {
+            type: String,
+            default: ''
         }
     },
     data () {
@@ -103,6 +107,9 @@ export default {
                 return true;
             }
             return Number.parseInt(this.collapseAt) <= this.items.length;
+        },
+        title () {
+            return this.context ? this.$gettextInterpolate(this.$gettext('Aktionsmenü für %{context}'), {context: this.context}) : this.$gettext('Aktionsmenü');
         }
     }
 }
diff --git a/resources/vue/components/courseware/CoursewareContainerActions.vue b/resources/vue/components/courseware/CoursewareContainerActions.vue
index 1c9cbf8ce96..d30347d776a 100755
--- a/resources/vue/components/courseware/CoursewareContainerActions.vue
+++ b/resources/vue/components/courseware/CoursewareContainerActions.vue
@@ -1,7 +1,8 @@
 <template>
     <div v-if="canEdit" class="cw-container-actions">
-        <studip-action-menu 
+        <studip-action-menu
             :items="menuItems"
+            :context="container.attributes.title"
             @editContainer="editContainer"
             @deleteContainer="deleteContainer"
             @sortBlocks="sortBlocks"
-- 
GitLab