]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
fix: add aria-expanded to the toggler triggers
authorDaniel Ruf <daniel@daniel-ruf.de>
Tue, 13 Mar 2018 20:54:41 +0000 (21:54 +0100)
committerDaniel Ruf <daniel@daniel-ruf.de>
Tue, 13 Mar 2018 22:19:54 +0000 (23:19 +0100)
js/foundation.toggler.js
test/javascript/components/toggler.js

index d8c5744ecab3a6875935723347039c4c498525e8..65effcbbe828818a9762b953cd1092736b5e15ff 100644 (file)
@@ -58,9 +58,10 @@ class Toggler extends Plugin {
     // Add ARIA attributes to triggers
     var id = this.$element[0].id;
     $(`[data-open="${id}"], [data-close="${id}"], [data-toggle="${id}"]`)
-      .attr('aria-controls', id);
-    // If the target is hidden, add aria-hidden
-    this.$element.attr('aria-expanded', this.$element.is(':hidden') ? false : true);
+      .attr({
+        'aria-controls': id,
+        'aria-expanded': this.$element.is(':hidden') ? false : true
+      });
   }
 
   /**
index e55817b370e41d26b1bcc585cadfadbe2725dd86..322bf9e3e4c10bb20f756042711c090022d789b3 100644 (file)
@@ -58,17 +58,31 @@ describe('Toggler', function() {
 
     it('sets aria-expanded to true if the element is visible', function() {
       $html = $('<div id="toggler" data-toggler="class"></div>').appendTo('body');
+      var $triggers = $(`<div>
+          <a data-open="toggler">Open</a>
+          <a data-close="toggler">Close</a>
+          <a data-toggle="toggler">Toggle</a>
+        </div>`).appendTo('body');
       plugin = new Foundation.Toggler($html, {});
 
-      $('#toggler').should.have.attr('aria-expanded', 'true');
+      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'true');
+      $triggers.find('[data-close]').should.have.attr('aria-expanded', 'true');
+      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'true');
     });
 
     it('sets aria-expanded to false if the element is invisible', function() {
       var $css = $('<style>#toggler { display: none }</style>').appendTo('body');
       $html = $('<div id="toggler" data-toggler="class"></div>').appendTo('body');
+      var $triggers = $(`<div>
+          <a data-open="toggler">Open</a>
+          <a data-close="toggler">Close</a>
+          <a data-toggle="toggler">Toggle</a>
+        </div>`).appendTo('body');
       plugin = new Foundation.Toggler($html, {});
 
-      $('#toggler').should.have.attr('aria-expanded', 'false');
+      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'false');
+      $triggers.find('[data-close]').should.have.attr('aria-expanded', 'false');
+      $triggers.find('[data-open]').should.have.attr('aria-expanded', 'false');
       $css.remove();
     });
   });