Chris@0: /** Chris@0: * @file Chris@0: * Add aria attribute handling for details and summary elements. Chris@0: */ Chris@0: Chris@4: (function($, Drupal) { Chris@0: /** Chris@0: * Handles `aria-expanded` and `aria-pressed` attributes on details elements. Chris@0: * Chris@0: * @type {Drupal~behavior} Chris@0: */ Chris@0: Drupal.behaviors.detailsAria = { Chris@0: attach() { Chris@4: $('body') Chris@4: .once('detailsAria') Chris@4: .on('click.detailsAria', 'summary', event => { Chris@4: const $summary = $(event.currentTarget); Chris@4: const open = Chris@4: $(event.currentTarget.parentNode).attr('open') === 'open' Chris@4: ? 'false' Chris@4: : 'true'; Chris@0: Chris@4: $summary.attr({ Chris@4: 'aria-expanded': open, Chris@4: 'aria-pressed': open, Chris@4: }); Chris@0: }); Chris@0: }, Chris@0: }; Chris@4: })(jQuery, Drupal);