From 8c91f5891f339725e99ef7dd0f903b78619d50a6 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Wed, 22 Jun 2022 08:24:10 +0000
Subject: [PATCH] set aria-disabled as well on helper attributes
 [data-(de)activates], fixes #1200

Closes #1200

Merge request studip/studip!711
---
 .../bootstrap/studip_helper_attributes.js     | 21 ++++++++++++-------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/resources/assets/javascripts/bootstrap/studip_helper_attributes.js b/resources/assets/javascripts/bootstrap/studip_helper_attributes.js
index 7af9f9a8e18..fcfa767a2ef 100644
--- a/resources/assets/javascripts/bootstrap/studip_helper_attributes.js
+++ b/resources/assets/javascripts/bootstrap/studip_helper_attributes.js
@@ -98,11 +98,13 @@ $(document).on('change', '[data-activates],[data-deactivates]', function() {
 
         var state = $(this).prop('checked') || $(this).prop('indeterminate') || false;
         $(selector).each(function() {
-            var condition = $(this).data(`${type}Condition`),
-                toggle = state && (!condition || $(condition).length > 0);
-            $(this)
-                .attr('disabled', type === 'activates' ? !toggle : toggle)
-                .trigger('update.proxy');
+            const condition = $(this).data(`${type}Condition`);
+            const toggle = state && (!condition || $(condition).length > 0);
+            const disabled = type === 'activates' ? !toggle : toggle;
+            $(this).attr({
+                disabled: disabled,
+                'aria-disabled': disabled ? 'true' : 'false'
+            }).trigger('update.proxy');
         });
     });
 });
@@ -115,9 +117,12 @@ STUDIP.ready((event) => {
 // element. Define element to disable if select has a value different from
 // an empty string by a css selector in attribute "data-activates".
 $(document).on('change update.proxy', 'select[data-activates]', function() {
-    var activates = $(this).data('activates'),
-        disabled = $(this).is(':disabled') || $(this).val().length === 0;
-    $(activates).attr('disabled', disabled);
+    const activates = $(this).data('activates');
+    const disabled = $(this).is(':disabled') || $(this).val().length === 0;
+    $(activates).attr({
+        disabled: disabled,
+        'aria-disabled': disabled ? 'true' : 'false'
+    });
 });
 
 STUDIP.ready((event) => {
-- 
GitLab