Chris@0: /** Chris@0: * @file Chris@0: * Add aria attribute handling for details and summary elements. Chris@0: */ Chris@0: Chris@17: (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@17: $('body') Chris@17: .once('detailsAria') Chris@17: .on('click.detailsAria', 'summary', event => { Chris@17: const $summary = $(event.currentTarget); Chris@17: const open = Chris@17: $(event.currentTarget.parentNode).attr('open') === 'open' Chris@17: ? 'false' Chris@17: : 'true'; Chris@0: Chris@17: $summary.attr({ Chris@17: 'aria-expanded': open, Chris@17: 'aria-pressed': open, Chris@17: }); Chris@0: }); Chris@0: }, Chris@0: }; Chris@17: })(jQuery, Drupal);